Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "get_stream", "list_connection_profiles" and "list_streams"
before
{"$defs":{"AppendOnly":{"description":"AppendOnly mode defines that all changes to a table will be written to the destination table.","properties":{},"type":"object"},"AvroFileFormat":{"description":"AVRO file format configuration.","properties":{},"type":"object"},"BackfillAllStrategy":{"description":"Backfill strategy to automatically backfill the Stream's objects. Specific objects can be excluded.","properties":{"mongodbExcludedObjects":{"$ref":"#/$defs/MongodbCluster","description":"MongoDB data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"mysqlExcludedObjects":{"$ref":"#/$defs/MysqlRdbms","description":"MySQL data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"oracleExcludedObjects":{"$ref":"#/$defs/OracleRdbms","description":"Oracle data source objects to avoid backfilling. Only one of the following fields should be set: this field, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"postgresqlExcludedObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"PostgreSQL data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"saasExcludedObjects":{"$ref":"#/$defs/SourceCatalog","description":"Source catalog data source objects to avoid backfilling. This is mainly used to represent SaaS applications objects. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects."},"salesforceExcludedObjects":{"$ref":"#/$defs/SalesforceOrg","description":"Salesforce data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"spannerExcludedObjects":{"$ref":"#/$defs/SpannerDatabase","description":"Spanner data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, saasExcludedObjects."},"sqlServerExcludedObjects":{"$ref":"#/$defs/SqlServerRdbms","description":"SQLServer data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."}},"type":"object"},"BackfillNoneStrategy":{"description":"Backfill strategy to disable automatic backfill for the Stream's objects.","properties":{},"type":"object"},"BigQueryClustering":{"description":"BigQuery clustering configuration.","properties":{"columns":{"description":"Required. Column names to set as clustering columns.","items":{"type":"string"},"type":"array"}},"type":"object"},"BigQueryDestinationConfig":{"description":"BigQuery destination configuration","properties":{"appendOnly":{"$ref":"#/$defs/AppendOnly","description":"Append only mode. Only one of this field or merge should be set."},"blmtConfig":{"$ref":"#/$defs/BlmtConfig","description":"Optional. Big Lake Managed Tables (BLMT) configuration."},"dataFreshness":{"description":"The guaranteed data freshness (in seconds) when querying tables created by the stream. Editing this field will only affect new tables created in the future, but existing tables will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost.","format":"google-duration","type":"string"},"merge":{"$ref":"#/$defs/Merge","description":"The standard mode. Only one of this field or appendOnly should be set."},"singleTargetDataset":{"$ref":"#/$defs/SingleTargetDataset","description":"Single destination dataset. Only one of this field or sourceHierarchyDatasets should be set."},"sourceHierarchyDatasets":{"$ref":"#/$defs/SourceHierarchyDatasets","description":"Source hierarchy datasets. Only one of this field or singleTargetDataset should be set."}},"type":"object"},"BigQueryPartitioning":{"description":"BigQuery partitioning configuration.","properties":{"ingestionTimePartition":{"$ref":"#/$defs/IngestionTimePartition","description":"Ingestion time partitioning. Only one of the following fields should be set: this field, integerRangePartition, timeUnitPartition."},"integerRangePartition":{"$ref":"#/$defs/IntegerRangePartition","description":"Integer range partitioning. Only one of the following fields should be set: this field, timeUnitPartition, ingestionTimePartition."},"requirePartitionFilter":{"description":"Optional. If true, queries over the table require a partition filter.","type":"boolean"},"timeUnitPartition":{"$ref":"#/$defs/TimeUnitPartition","description":"Time unit column partitioning. Only one of the following fields should be set: this field, integerRangePartition, ingestionTimePartition."}},"type":"object"},"BinaryLogParser":{"description":"Configuration to use Binary Log Parser CDC technique.","properties":{"logFileDirectories":{"$ref":"#/$defs/LogFileDirectories","description":"Use Oracle directories. Only one of this field or oracleAsmLogFileAccess should be set."},"oracleAsmLogFileAccess":{"$ref":"#/$defs/OracleAsmLogFileAccess","description":"Use Oracle ASM. Only one of this field or logFileDirectories should be set."}},"type":"object"},"BinaryLogPosition":{"description":"Use Binary log position based replication.","properties":{},"type":"object"},"BlmtConfig":{"description":"The configuration for BLMT.","properties":{"bucket":{"description":"Required. The Cloud Storage bucket name.","type":"string"},"connectionName":{"description":"Required. The bigquery connection. Format: `{project}.{location}.{name}`","type":"string"},"fileFormat":{"description":"Required. The file format.","enum":["FILE_FORMAT_UNSPECIFIED","PARQUET"],"type":"string","x-google-enum-descriptions":["Default value.","Parquet file format."]},"rootPath":{"description":"The root path inside the Cloud Storage bucket.","type":"string"},"tableFormat":{"description":"Required. The table format.","enum":["TABLE_FORMAT_UNSPECIFIED","ICEBERG"],"type":"string","x-google-enum-descriptions":["Default value.","Iceberg table format."]}},"type":"object"},"CustomizationRule":{"description":"A customization rule to apply to a set of objects.","properties":{"bigqueryClustering":{"$ref":"#/$defs/BigQueryClustering","description":"BigQuery clustering rule. Only one of this field or bigqueryPartitioning should be set."},"bigqueryPartitioning":{"$ref":"#/$defs/BigQueryPartitioning","description":"BigQuery partitioning rule. Only one of this field or bigqueryClustering should be set."}},"type":"object"},"DatasetTemplate":{"description":"Dataset template used for dynamic dataset creation.","properties":{"datasetIdPrefix":{"description":"If supplied, every created dataset will have its name prefixed by the provided value. The prefix and name will be separated by an underscore. i.e. _.","type":"string"},"kmsKeyName":{"description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information.","type":"string"},"location":{"description":"Required. The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.","type":"string"}},"type":"object"},"DataverseSourceConfig":{"description":"Configuration for syncing data from a Dataverse source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"DestinationConfig":{"description":"The configuration of the stream destination.","properties":{"bigqueryDestinationConfig":{"$ref":"#/$defs/BigQueryDestinationConfig","description":"BigQuery destination configuration. Only one of this field or gcsDestinationConfig should be set."},"destinationConnectionProfile":{"description":"Required. Destination connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`","type":"string"},"gcsDestinationConfig":{"$ref":"#/$defs/GcsDestinationConfig","description":"A configuration for how data should be loaded to Cloud Storage. Only one of this field or bigqueryDestinationConfig should be set."}},"type":"object"},"DropLargeObjects":{"description":"Configuration to drop large object values.","properties":{},"type":"object"},"Error":{"description":"Represent a user-facing Error.","properties":{"details":{"additionalProperties":{"type":"string"},"description":"Additional information about the error.","type":"object"},"errorTime":{"description":"The time when the error occurred.","format":"date-time","type":"string"},"errorUuid":{"description":"A unique identifier for this specific error, allowing it to be traced throughout the system in logs and API responses.","type":"string"},"message":{"description":"A message containing more information about the error that occurred.","type":"string"},"reason":{"description":"A title that explains the reason for the error.","type":"string"}},"type":"object"},"GcsDestinationConfig":{"description":"Google Cloud Storage destination configuration","properties":{"avroFileFormat":{"$ref":"#/$defs/AvroFileFormat","description":"AVRO file format configuration. Only one of this field or jsonFileFormat should be set."},"fileRotationInterval":{"description":"The maximum duration for which new events are added before a file is closed and a new file is created. Values within the range of 15-60 seconds are allowed.","format":"google-duration","type":"string"},"fileRotationMb":{"description":"The maximum file size to be saved in the bucket.","format":"int32","type":"integer"},"jsonFileFormat":{"$ref":"#/$defs/JsonFileFormat","description":"JSON file format configuration. Only one of this field or avroFileFormat should be set."},"path":{"description":"Path inside the Cloud Storage bucket to write data to.","type":"string"}},"type":"object"},"Gtid":{"description":"Use GTID based replication.","properties":{},"type":"object"},"IngestionTimePartition":{"description":"Ingestion time partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#ingestion_time","properties":{"partitioningTimeGranularity":{"description":"Optional. Partition granularity","enum":["PARTITIONING_TIME_GRANULARITY_UNSPECIFIED","PARTITIONING_TIME_GRANULARITY_HOUR","PARTITIONING_TIME_GRANULARITY_DAY","PARTITIONING_TIME_GRANULARITY_MONTH","PARTITIONING_TIME_GRANULARITY_YEAR"],"type":"string","x-google-enum-descriptions":["Unspecified partitioing interval.","Hourly partitioning.","Daily partitioning.","Monthly partitioning.","Yearly partitioning."]}},"type":"object"},"IntegerRangePartition":{"description":"Integer range partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#integer_range","properties":{"column":{"description":"Required. The partitioning column.","type":"string"},"end":{"description":"Required. The ending value for range partitioning (exclusive).","format":"int64","type":"string"},"interval":{"description":"Required. The interval of each range within the partition.","format":"int64","type":"string"},"start":{"description":"Required. The starting value for range partitioning (inclusive).","format":"int64","type":"string"}},"type":"object"},"JsonFileFormat":{"description":"JSON file format configuration.","properties":{"compression":{"description":"Compression of the loaded JSON file.","enum":["JSON_COMPRESSION_UNSPECIFIED","NO_COMPRESSION","GZIP"],"type":"string","x-google-enum-descriptions":["Unspecified json file compression.","Do not compress JSON file.","Gzip compression."]},"schemaFileFormat":{"description":"The schema file format along JSON data files.","enum":["SCHEMA_FILE_FORMAT_UNSPECIFIED","NO_SCHEMA_FILE","AVRO_SCHEMA_FILE"],"type":"string","x-google-enum-descriptions":["Unspecified schema file format.","Do not attach schema file.","Avro schema format."]}},"type":"object"},"LogFileDirectories":{"description":"Configuration to specify the Oracle directories to access the log files.","properties":{"archivedLogDirectory":{"description":"Required. Oracle directory for archived logs.","type":"string"},"onlineLogDirectory":{"description":"Required. Oracle directory for online logs.","type":"string"}},"type":"object"},"LogMiner":{"description":"Configuration to use LogMiner CDC method.","properties":{},"type":"object"},"Merge":{"description":"Merge mode defines that all changes to a table will be merged at the destination table.","properties":{},"type":"object"},"MongodbCluster":{"description":"MongoDB Cluster structure.","properties":{"databases":{"description":"MongoDB databases in the cluster.","items":{"$ref":"#/$defs/MongodbDatabase"},"type":"array"}},"type":"object"},"MongodbCollection":{"description":"MongoDB Collection.","properties":{"collection":{"description":"The collection name.","type":"string"},"fields":{"description":"Fields in the collection.","items":{"$ref":"#/$defs/MongodbField"},"type":"array"}},"type":"object"},"MongodbDatabase":{"description":"MongoDB Database.","properties":{"collections":{"description":"Collections in the database.","items":{"$ref":"#/$defs/MongodbCollection"},"type":"array"},"database":{"description":"The database name.","type":"string"}},"type":"object"},"MongodbField":{"description":"MongoDB Field.","properties":{"field":{"description":"The field name.","type":"string"}},"type":"object"},"MongodbObjectIdentifier":{"description":"MongoDB data source object identifier.","properties":{"collection":{"description":"Required. The collection name.","type":"string"},"database":{"description":"Required. The database name.","type":"string"}},"type":"object"},"MongodbSourceConfig":{"description":"Configuration for syncing data from a MongoDB source.","properties":{"excludeObjects":{"$ref":"#/$defs/MongodbCluster","description":"The MongoDB collections to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/MongodbCluster","description":"The MongoDB collections to include in the stream."},"jsonMode":{"description":"Optional. MongoDB JSON mode to use for the stream.","enum":["MONGODB_JSON_MODE_UNSPECIFIED","STRICT","CANONICAL"],"type":"string","x-google-enum-descriptions":["Unspecified JSON mode.","Strict JSON mode.","Canonical JSON mode."]},"maxConcurrentBackfillTasks":{"description":"Optional. Maximum number of concurrent backfill tasks. The number should be non-negative and less than or equal to 50. If not set (or set to 0), the system's default value is used","format":"int32","type":"integer"}},"type":"object"},"MysqlColumn":{"description":"MySQL Column.","properties":{"collation":{"description":"Column collation.","type":"string"},"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The MySQL data type. Full data types list can be found here: https://dev.mysql.com/doc/refman/8.0/en/data-types.html","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"MysqlDatabase":{"description":"MySQL database.","properties":{"database":{"description":"The database name.","type":"string"},"mysqlTables":{"description":"Tables in the database.","items":{"$ref":"#/$defs/MysqlTable"},"type":"array"}},"type":"object"},"MysqlObjectIdentifier":{"description":"Mysql data source object identifier.","properties":{"database":{"description":"Required. The database name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"MysqlRdbms":{"description":"MySQL database structure","properties":{"mysqlDatabases":{"description":"Mysql databases on the server","items":{"$ref":"#/$defs/MysqlDatabase"},"type":"array"}},"type":"object"},"MysqlSourceConfig":{"description":"Configuration for syncing data from a MySQL source.","properties":{"binaryLogPosition":{"$ref":"#/$defs/BinaryLogPosition","description":"Use Binary log position based replication. Only one of this field or gtid should be set."},"excludeObjects":{"$ref":"#/$defs/MysqlRdbms","description":"The MySQL objects to exclude from the stream."},"gtid":{"$ref":"#/$defs/Gtid","description":"Use GTID based replication. Only one of this field or binaryLogPosition should be set."},"includeObjects":{"$ref":"#/$defs/MysqlRdbms","description":"The MySQL objects to retrieve from the source."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Maximum number of concurrent CDC tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"}},"type":"object"},"MysqlTable":{"description":"MySQL table.","properties":{"mysqlColumns":{"description":"MySQL columns in the database. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/MysqlColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"ObjectFilter":{"description":"Object filter to apply the rules to.","properties":{"sourceObjectIdentifier":{"$ref":"#/$defs/SourceObjectIdentifier","description":"Specific source object identifier."}},"type":"object"},"OracleAsmLogFileAccess":{"description":"Configuration to use Oracle ASM to access the log files.","properties":{},"type":"object"},"OracleColumn":{"description":"Oracle Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The Oracle data type.","type":"string"},"encoding":{"description":"Column encoding.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"OracleObjectIdentifier":{"description":"Oracle data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"OracleRdbms":{"description":"Oracle database structure.","properties":{"oracleSchemas":{"description":"Oracle schemas/databases in the database server.","items":{"$ref":"#/$defs/OracleSchema"},"type":"array"}},"type":"object"},"OracleSchema":{"description":"Oracle schema.","properties":{"oracleTables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/OracleTable"},"type":"array"},"schema":{"description":"The schema name.","type":"string"}},"type":"object"},"OracleSourceConfig":{"description":"Configuration for syncing data from an Oracle source.","properties":{"binaryLogParser":{"$ref":"#/$defs/BinaryLogParser","description":"Use Binary Log Parser. Only one of this field or logMiner should be set."},"dropLargeObjects":{"$ref":"#/$defs/DropLargeObjects","description":"Drop large object values. Only one of this field or streamLargeObjects should be set."},"excludeObjects":{"$ref":"#/$defs/OracleRdbms","description":"The Oracle objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/OracleRdbms","description":"The Oracle objects to include in the stream."},"logMiner":{"$ref":"#/$defs/LogMiner","description":"Use LogMiner. Only one of this field or binaryLogParser should be set."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Maximum number of concurrent CDC tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.","format":"int32","type":"integer"},"streamLargeObjects":{"$ref":"#/$defs/StreamLargeObjects","description":"Stream large object values. Only one of this field or dropLargeObjects should be set."}},"type":"object"},"OracleTable":{"description":"Oracle table.","properties":{"oracleColumns":{"description":"Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/OracleColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"PostgresqlColumn":{"description":"PostgreSQL Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The PostgreSQL data type.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"PostgresqlObjectIdentifier":{"description":"PostgreSQL data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"PostgresqlRdbms":{"description":"PostgreSQL database structure.","properties":{"postgresqlSchemas":{"description":"PostgreSQL schemas in the database server.","items":{"$ref":"#/$defs/PostgresqlSchema"},"type":"array"}},"type":"object"},"PostgresqlSchema":{"description":"PostgreSQL schema.","properties":{"postgresqlTables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/PostgresqlTable"},"type":"array"},"schema":{"description":"The schema name.","type":"string"}},"type":"object"},"PostgresqlSourceConfig":{"description":"Configuration for syncing data from a PostgreSQL source.","properties":{"excludeObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"The PostgreSQL objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"The PostgreSQL objects to include in the stream."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"},"publication":{"description":"Required. The name of the publication that includes the set of all tables that are defined in the stream's include_objects.","type":"string"},"replicationSlot":{"description":"Required. Immutable. The name of the logical replication slot that's configured with the pgoutput plugin.","type":"string","x-google-immutable":true}},"type":"object"},"PostgresqlTable":{"description":"PostgreSQL table.","properties":{"postgresqlColumns":{"description":"PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/PostgresqlColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"RuleSet":{"description":"A set of rules to apply to a set of objects.","properties":{"customizationRules":{"description":"Required. List of customization rules to apply.","items":{"$ref":"#/$defs/CustomizationRule"},"type":"array"},"objectFilter":{"$ref":"#/$defs/ObjectFilter","description":"Required. Object filter to apply the customization rules to."}},"type":"object"},"SalesforceField":{"description":"Salesforce field.","properties":{"dataType":{"description":"The data type.","type":"string"},"name":{"description":"The field name.","type":"string"},"nillable":{"description":"Indicates whether the field can accept nil values.","type":"boolean"}},"type":"object"},"SalesforceMarketingCloudSourceConfig":{"description":"Configuration for syncing data from a Salesforce Marketing Cloud source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"fullRefreshPollingInterval":{"description":"Required. Specifies the polling interval for a full refresh of objects that do not support incremental sync. If not set, a default value of 24 hours is used. The duration must be between 1 and 24 hours, inclusive.","format":"google-duration","type":"string"},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"SalesforceObject":{"description":"Salesforce object.","properties":{"fields":{"description":"Salesforce fields. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SalesforceField"},"type":"array"},"objectName":{"description":"The object name.","type":"string"}},"type":"object"},"SalesforceObjectIdentifier":{"description":"Salesforce data source object identifier.","properties":{"objectName":{"description":"Required. The object name.","type":"string"}},"type":"object"},"SalesforceOrg":{"description":"Salesforce organization structure.","properties":{"objects":{"description":"Salesforce objects in the database server.","items":{"$ref":"#/$defs/SalesforceObject"},"type":"array"}},"type":"object"},"SalesforceSourceConfig":{"description":"Configuration for syncing data from a Salesforce source.","properties":{"excludeObjects":{"$ref":"#/$defs/SalesforceOrg","description":"The Salesforce objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SalesforceOrg","description":"The Salesforce objects to retrieve from the source."},"pollingInterval":{"description":"Required. Salesforce objects polling interval. The interval at which new changes will be polled for each object. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"ServiceNowSourceConfig":{"description":"Configuration for syncing data from a ServiceNow source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"SingleTargetDataset":{"description":"A single target dataset to which all data will be streamed.","properties":{"datasetId":{"description":"The dataset ID of the target dataset. DatasetIds allowed characters: https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets#datasetreference.","type":"string"}},"type":"object"},"SourceCatalog":{"description":"Source catalog.","properties":{"objects":{"description":"Optional. Source objects in the catalog.","items":{"$ref":"#/$defs/SourceObject"},"type":"array"}},"type":"object"},"SourceConfig":{"description":"The configuration of the stream source.","properties":{"dataverseSourceConfig":{"$ref":"#/$defs/DataverseSourceConfig","description":"Dataverse data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"mongodbSourceConfig":{"$ref":"#/$defs/MongodbSourceConfig","description":"MongoDB data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"mysqlSourceConfig":{"$ref":"#/$defs/MysqlSourceConfig","description":"MySQL data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"oracleSourceConfig":{"$ref":"#/$defs/OracleSourceConfig","description":"Oracle data source configuration. Only one of the following fields should be set: this field, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"postgresqlSourceConfig":{"$ref":"#/$defs/PostgresqlSourceConfig","description":"PostgreSQL data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"salesforceMarketingCloudSourceConfig":{"$ref":"#/$defs/SalesforceMarketingCloudSourceConfig","description":"Salesforce Marketing Cloud data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"salesforceSourceConfig":{"$ref":"#/$defs/SalesforceSourceConfig","description":"Salesforce data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"serviceNowSourceConfig":{"$ref":"#/$defs/ServiceNowSourceConfig","description":"ServiceNow data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, workdaySourceConfig."},"sourceConnectionProfile":{"description":"Required. Source connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`","type":"string"},"spannerSourceConfig":{"$ref":"#/$defs/SpannerSourceConfig","description":"Spanner data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"sqlServerSourceConfig":{"$ref":"#/$defs/SqlServerSourceConfig","description":"SQLServer data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"workdaySourceConfig":{"$ref":"#/$defs/WorkdaySourceConfig","description":"Optional. Workday data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig."}},"type":"object"},"SourceHierarchyDatasets":{"description":"Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy.","properties":{"datasetTemplate":{"$ref":"#/$defs/DatasetTemplate","description":"The dataset template to use for dynamic dataset creation."},"projectId":{"description":"Optional. The project id of the BigQuery dataset. If not specified, the project will be inferred from the stream resource.","type":"string"}},"type":"object"},"SourceObject":{"description":"Source object.","properties":{"objectName":{"description":"Required. The object name.","type":"string"},"properties":{"description":"Optional. Source properties. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SourceProperty"},"type":"array"}},"type":"object"},"SourceObjectIdentifier":{"description":"Represents an identifier of an object in the data source.","properties":{"mongodbIdentifier":{"$ref":"#/$defs/MongodbObjectIdentifier","description":"MongoDB data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, spannerIdentifier."},"mysqlIdentifier":{"$ref":"#/$defs/MysqlObjectIdentifier","description":"Mysql data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"oracleIdentifier":{"$ref":"#/$defs/OracleObjectIdentifier","description":"Oracle data source object identifier. Only one of the following fields should be set: this field, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"postgresqlIdentifier":{"$ref":"#/$defs/PostgresqlObjectIdentifier","description":"PostgreSQL data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"salesforceIdentifier":{"$ref":"#/$defs/SalesforceObjectIdentifier","description":"Salesforce data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, mongodbIdentifier, spannerIdentifier."},"spannerIdentifier":{"$ref":"#/$defs/SpannerObjectIdentifier","description":"Spanner data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier."},"sqlServerIdentifier":{"$ref":"#/$defs/SqlServerObjectIdentifier","description":"SQLServer data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."}},"type":"object"},"SourceProperty":{"description":"Source property.","properties":{"primaryKey":{"description":"Optional. Whether or not the property is a primary key.","type":"boolean"},"properties":{"description":"Optional. Source properties. When specified, it means that the current property contains nested properties of its own. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SourceProperty"},"type":"array"},"propertyName":{"description":"Required. The property name.","type":"string"}},"type":"object"},"SpannerColumn":{"description":"Spanner column.","properties":{"column":{"description":"Required. The column name.","type":"string"},"dataType":{"description":"Optional. Spanner data type.","type":"string"},"isPrimaryKey":{"description":"Optional. Whether or not the column is a primary key.","type":"boolean"},"ordinalPosition":{"description":"Optional. The ordinal position of the column in the table.","format":"int64","type":"string"}},"type":"object"},"SpannerDatabase":{"description":"Spanner database structure.","properties":{"schemas":{"description":"Optional. Spanner schemas in the database.","items":{"$ref":"#/$defs/SpannerSchema"},"type":"array"}},"type":"object"},"SpannerObjectIdentifier":{"description":"Spanner data source object identifier.","properties":{"schema":{"description":"Optional. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"SpannerSchema":{"description":"Spanner schema.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"tables":{"description":"Optional. Spanner tables in the schema.","items":{"$ref":"#/$defs/SpannerTable"},"type":"array"}},"type":"object"},"SpannerSourceConfig":{"description":"Configuration for syncing data from a Spanner source.","properties":{"backfillDataBoostEnabled":{"description":"Optional. Whether to use Data Boost for Spanner backfills. Defaults to false if not set.","type":"boolean"},"changeStreamName":{"description":"Required. Immutable. The change stream name to use for the stream.","type":"string","x-google-immutable":true},"excludeObjects":{"$ref":"#/$defs/SpannerDa…after
{"$defs":{"AppendOnly":{"description":"AppendOnly mode defines that all changes to a table will be written to the destination table.","properties":{},"type":"object"},"AvroFileFormat":{"description":"AVRO file format configuration.","properties":{},"type":"object"},"BackfillAllStrategy":{"description":"Backfill strategy to automatically backfill the Stream's objects. Specific objects can be excluded.","properties":{"mongodbExcludedObjects":{"$ref":"#/$defs/MongodbCluster","description":"MongoDB data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"mysqlExcludedObjects":{"$ref":"#/$defs/MysqlRdbms","description":"MySQL data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"oracleExcludedObjects":{"$ref":"#/$defs/OracleRdbms","description":"Oracle data source objects to avoid backfilling. Only one of the following fields should be set: this field, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"postgresqlExcludedObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"PostgreSQL data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"saasExcludedObjects":{"$ref":"#/$defs/SourceCatalog","description":"Source catalog data source objects to avoid backfilling. This is mainly used to represent SaaS applications objects. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects."},"salesforceExcludedObjects":{"$ref":"#/$defs/SalesforceOrg","description":"Salesforce data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"spannerExcludedObjects":{"$ref":"#/$defs/SpannerDatabase","description":"Spanner data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, saasExcludedObjects."},"sqlServerExcludedObjects":{"$ref":"#/$defs/SqlServerRdbms","description":"SQLServer data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."}},"type":"object"},"BackfillNoneStrategy":{"description":"Backfill strategy to disable automatic backfill for the Stream's objects.","properties":{},"type":"object"},"BigQueryClustering":{"description":"BigQuery clustering configuration.","properties":{"columns":{"description":"Required. Column names to set as clustering columns.","items":{"type":"string"},"type":"array"}},"type":"object"},"BigQueryDestinationConfig":{"description":"BigQuery destination configuration","properties":{"appendOnly":{"$ref":"#/$defs/AppendOnly","description":"Append only mode. Only one of this field or merge should be set."},"blmtConfig":{"$ref":"#/$defs/BlmtConfig","description":"Optional. Big Lake Managed Tables (BLMT) configuration."},"dataFreshness":{"description":"The guaranteed data freshness (in seconds) when querying tables created by the stream. Editing this field will only affect new tables created in the future, but existing tables will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost.","format":"google-duration","type":"string"},"merge":{"$ref":"#/$defs/Merge","description":"The standard mode. Only one of this field or appendOnly should be set."},"singleTargetDataset":{"$ref":"#/$defs/SingleTargetDataset","description":"Single destination dataset. Only one of this field or sourceHierarchyDatasets should be set."},"sourceHierarchyDatasets":{"$ref":"#/$defs/SourceHierarchyDatasets","description":"Source hierarchy datasets. Only one of this field or singleTargetDataset should be set."}},"type":"object"},"BigQueryPartitioning":{"description":"BigQuery partitioning configuration.","properties":{"ingestionTimePartition":{"$ref":"#/$defs/IngestionTimePartition","description":"Ingestion time partitioning. Only one of the following fields should be set: this field, integerRangePartition, timeUnitPartition."},"integerRangePartition":{"$ref":"#/$defs/IntegerRangePartition","description":"Integer range partitioning. Only one of the following fields should be set: this field, timeUnitPartition, ingestionTimePartition."},"requirePartitionFilter":{"description":"Optional. If true, queries over the table require a partition filter.","type":"boolean"},"timeUnitPartition":{"$ref":"#/$defs/TimeUnitPartition","description":"Time unit column partitioning. Only one of the following fields should be set: this field, integerRangePartition, ingestionTimePartition."}},"type":"object"},"BinaryLogParser":{"description":"Configuration to use Binary Log Parser CDC technique.","properties":{"logFileDirectories":{"$ref":"#/$defs/LogFileDirectories","description":"Use Oracle directories. Only one of this field or oracleAsmLogFileAccess should be set."},"oracleAsmLogFileAccess":{"$ref":"#/$defs/OracleAsmLogFileAccess","description":"Use Oracle ASM. Only one of this field or logFileDirectories should be set."}},"type":"object"},"BinaryLogPosition":{"description":"Use Binary log position based replication.","properties":{},"type":"object"},"BlmtConfig":{"description":"The configuration for BLMT.","properties":{"bucket":{"description":"Required. The Cloud Storage bucket name.","type":"string"},"connectionName":{"description":"Required. The bigquery connection. Format: `{project}.{location}.{name}`","type":"string"},"fileFormat":{"description":"Required. The file format.","enum":["FILE_FORMAT_UNSPECIFIED","PARQUET"],"type":"string","x-google-enum-descriptions":["Default value.","Parquet file format."]},"rootPath":{"description":"The root path inside the Cloud Storage bucket.","type":"string"},"tableFormat":{"description":"Required. The table format.","enum":["TABLE_FORMAT_UNSPECIFIED","ICEBERG"],"type":"string","x-google-enum-descriptions":["Default value.","Iceberg table format."]}},"type":"object"},"CustomizationRule":{"description":"A customization rule to apply to a set of objects.","properties":{"bigqueryClustering":{"$ref":"#/$defs/BigQueryClustering","description":"BigQuery clustering rule. Only one of this field or bigqueryPartitioning should be set."},"bigqueryPartitioning":{"$ref":"#/$defs/BigQueryPartitioning","description":"BigQuery partitioning rule. Only one of this field or bigqueryClustering should be set."}},"type":"object"},"DatasetTemplate":{"description":"Dataset template used for dynamic dataset creation.","properties":{"datasetIdPrefix":{"description":"If supplied, every created dataset will have its name prefixed by the provided value. The prefix and name will be separated by an underscore. i.e. <prefix>_<dataset_name>.","type":"string"},"kmsKeyName":{"description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information.","type":"string"},"location":{"description":"Required. The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.","type":"string"}},"type":"object"},"DataverseSourceConfig":{"description":"Configuration for syncing data from a Dataverse source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"DestinationConfig":{"description":"The configuration of the stream destination.","properties":{"bigqueryDestinationConfig":{"$ref":"#/$defs/BigQueryDestinationConfig","description":"BigQuery destination configuration. Only one of this field or gcsDestinationConfig should be set."},"destinationConnectionProfile":{"description":"Required. Destination connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`","type":"string"},"gcsDestinationConfig":{"$ref":"#/$defs/GcsDestinationConfig","description":"A configuration for how data should be loaded to Cloud Storage. Only one of this field or bigqueryDestinationConfig should be set."}},"type":"object"},"DropLargeObjects":{"description":"Configuration to drop large object values.","properties":{},"type":"object"},"Error":{"description":"Represent a user-facing Error.","properties":{"details":{"additionalProperties":{"type":"string"},"description":"Additional information about the error.","type":"object"},"errorTime":{"description":"The time when the error occurred.","format":"date-time","type":"string"},"errorUuid":{"description":"A unique identifier for this specific error, allowing it to be traced throughout the system in logs and API responses.","type":"string"},"message":{"description":"A message containing more information about the error that occurred.","type":"string"},"reason":{"description":"A title that explains the reason for the error.","type":"string"}},"type":"object"},"GcsDestinationConfig":{"description":"Google Cloud Storage destination configuration","properties":{"avroFileFormat":{"$ref":"#/$defs/AvroFileFormat","description":"AVRO file format configuration. Only one of this field or jsonFileFormat should be set."},"fileRotationInterval":{"description":"The maximum duration for which new events are added before a file is closed and a new file is created. Values within the range of 15-60 seconds are allowed.","format":"google-duration","type":"string"},"fileRotationMb":{"description":"The maximum file size to be saved in the bucket.","format":"int32","type":"integer"},"jsonFileFormat":{"$ref":"#/$defs/JsonFileFormat","description":"JSON file format configuration. Only one of this field or avroFileFormat should be set."},"path":{"description":"Path inside the Cloud Storage bucket to write data to.","type":"string"}},"type":"object"},"Gtid":{"description":"Use GTID based replication.","properties":{},"type":"object"},"IngestionTimePartition":{"description":"Ingestion time partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#ingestion_time","properties":{"partitioningTimeGranularity":{"description":"Optional. Partition granularity","enum":["PARTITIONING_TIME_GRANULARITY_UNSPECIFIED","PARTITIONING_TIME_GRANULARITY_HOUR","PARTITIONING_TIME_GRANULARITY_DAY","PARTITIONING_TIME_GRANULARITY_MONTH","PARTITIONING_TIME_GRANULARITY_YEAR"],"type":"string","x-google-enum-descriptions":["Unspecified partitioing interval.","Hourly partitioning.","Daily partitioning.","Monthly partitioning.","Yearly partitioning."]}},"type":"object"},"IntegerRangePartition":{"description":"Integer range partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#integer_range","properties":{"column":{"description":"Required. The partitioning column.","type":"string"},"end":{"description":"Required. The ending value for range partitioning (exclusive).","format":"int64","type":"string"},"interval":{"description":"Required. The interval of each range within the partition.","format":"int64","type":"string"},"start":{"description":"Required. The starting value for range partitioning (inclusive).","format":"int64","type":"string"}},"type":"object"},"JsonFileFormat":{"description":"JSON file format configuration.","properties":{"compression":{"description":"Compression of the loaded JSON file.","enum":["JSON_COMPRESSION_UNSPECIFIED","NO_COMPRESSION","GZIP"],"type":"string","x-google-enum-descriptions":["Unspecified json file compression.","Do not compress JSON file.","Gzip compression."]},"schemaFileFormat":{"description":"The schema file format along JSON data files.","enum":["SCHEMA_FILE_FORMAT_UNSPECIFIED","NO_SCHEMA_FILE","AVRO_SCHEMA_FILE"],"type":"string","x-google-enum-descriptions":["Unspecified schema file format.","Do not attach schema file.","Avro schema format."]}},"type":"object"},"LogFileDirectories":{"description":"Configuration to specify the Oracle directories to access the log files.","properties":{"archivedLogDirectory":{"description":"Required. Oracle directory for archived logs.","type":"string"},"onlineLogDirectory":{"description":"Required. Oracle directory for online logs.","type":"string"}},"type":"object"},"LogMiner":{"description":"Configuration to use LogMiner CDC method.","properties":{},"type":"object"},"Merge":{"description":"Merge mode defines that all changes to a table will be merged at the destination table.","properties":{},"type":"object"},"MongodbCluster":{"description":"MongoDB Cluster structure.","properties":{"databases":{"description":"MongoDB databases in the cluster.","items":{"$ref":"#/$defs/MongodbDatabase"},"type":"array"}},"type":"object"},"MongodbCollection":{"description":"MongoDB Collection.","properties":{"collection":{"description":"The collection name.","type":"string"},"fields":{"description":"Fields in the collection.","items":{"$ref":"#/$defs/MongodbField"},"type":"array"}},"type":"object"},"MongodbDatabase":{"description":"MongoDB Database.","properties":{"collections":{"description":"Collections in the database.","items":{"$ref":"#/$defs/MongodbCollection"},"type":"array"},"database":{"description":"The database name.","type":"string"}},"type":"object"},"MongodbField":{"description":"MongoDB Field.","properties":{"field":{"description":"The field name.","type":"string"}},"type":"object"},"MongodbObjectIdentifier":{"description":"MongoDB data source object identifier.","properties":{"collection":{"description":"Required. The collection name.","type":"string"},"database":{"description":"Required. The database name.","type":"string"}},"type":"object"},"MongodbSourceConfig":{"description":"Configuration for syncing data from a MongoDB source.","properties":{"excludeObjects":{"$ref":"#/$defs/MongodbCluster","description":"The MongoDB collections to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/MongodbCluster","description":"The MongoDB collections to include in the stream."},"jsonMode":{"description":"Optional. MongoDB JSON mode to use for the stream.","enum":["MONGODB_JSON_MODE_UNSPECIFIED","STRICT","CANONICAL"],"type":"string","x-google-enum-descriptions":["Unspecified JSON mode.","Strict JSON mode.","Canonical JSON mode."]},"maxConcurrentBackfillTasks":{"description":"Optional. Maximum number of concurrent backfill tasks. The number should be non-negative and less than or equal to 50. If not set (or set to 0), the system's default value is used","format":"int32","type":"integer"}},"type":"object"},"MysqlColumn":{"description":"MySQL Column.","properties":{"collation":{"description":"Column collation.","type":"string"},"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The MySQL data type. Full data types list can be found here: https://dev.mysql.com/doc/refman/8.0/en/data-types.html","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"MysqlDatabase":{"description":"MySQL database.","properties":{"database":{"description":"The database name.","type":"string"},"mysqlTables":{"description":"Tables in the database.","items":{"$ref":"#/$defs/MysqlTable"},"type":"array"}},"type":"object"},"MysqlObjectIdentifier":{"description":"Mysql data source object identifier.","properties":{"database":{"description":"Required. The database name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"MysqlRdbms":{"description":"MySQL database structure","properties":{"mysqlDatabases":{"description":"Mysql databases on the server","items":{"$ref":"#/$defs/MysqlDatabase"},"type":"array"}},"type":"object"},"MysqlSourceConfig":{"description":"Configuration for syncing data from a MySQL source.","properties":{"binaryLogPosition":{"$ref":"#/$defs/BinaryLogPosition","description":"Use Binary log position based replication. Only one of this field or gtid should be set."},"excludeObjects":{"$ref":"#/$defs/MysqlRdbms","description":"The MySQL objects to exclude from the stream."},"gtid":{"$ref":"#/$defs/Gtid","description":"Use GTID based replication. Only one of this field or binaryLogPosition should be set."},"includeObjects":{"$ref":"#/$defs/MysqlRdbms","description":"The MySQL objects to retrieve from the source."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Maximum number of concurrent CDC tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"}},"type":"object"},"MysqlTable":{"description":"MySQL table.","properties":{"mysqlColumns":{"description":"MySQL columns in the database. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/MysqlColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"ObjectFilter":{"description":"Object filter to apply the rules to.","properties":{"sourceObjectIdentifier":{"$ref":"#/$defs/SourceObjectIdentifier","description":"Specific source object identifier."}},"type":"object"},"OracleAsmLogFileAccess":{"description":"Configuration to use Oracle ASM to access the log files.","properties":{},"type":"object"},"OracleColumn":{"description":"Oracle Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The Oracle data type.","type":"string"},"encoding":{"description":"Column encoding.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"OracleObjectIdentifier":{"description":"Oracle data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"OracleRdbms":{"description":"Oracle database structure.","properties":{"oracleSchemas":{"description":"Oracle schemas/databases in the database server.","items":{"$ref":"#/$defs/OracleSchema"},"type":"array"}},"type":"object"},"OracleSchema":{"description":"Oracle schema.","properties":{"oracleTables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/OracleTable"},"type":"array"},"schema":{"description":"The schema name.","type":"string"}},"type":"object"},"OracleSourceConfig":{"description":"Configuration for syncing data from an Oracle source.","properties":{"binaryLogParser":{"$ref":"#/$defs/BinaryLogParser","description":"Use Binary Log Parser. Only one of this field or logMiner should be set."},"dropLargeObjects":{"$ref":"#/$defs/DropLargeObjects","description":"Drop large object values. Only one of this field or streamLargeObjects should be set."},"excludeObjects":{"$ref":"#/$defs/OracleRdbms","description":"The Oracle objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/OracleRdbms","description":"The Oracle objects to include in the stream."},"logMiner":{"$ref":"#/$defs/LogMiner","description":"Use LogMiner. Only one of this field or binaryLogParser should be set."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Maximum number of concurrent CDC tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.","format":"int32","type":"integer"},"streamLargeObjects":{"$ref":"#/$defs/StreamLargeObjects","description":"Stream large object values. Only one of this field or dropLargeObjects should be set."}},"type":"object"},"OracleTable":{"description":"Oracle table.","properties":{"oracleColumns":{"description":"Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/OracleColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"PostgresqlColumn":{"description":"PostgreSQL Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The PostgreSQL data type.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"PostgresqlObjectIdentifier":{"description":"PostgreSQL data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"PostgresqlRdbms":{"description":"PostgreSQL database structure.","properties":{"postgresqlSchemas":{"description":"PostgreSQL schemas in the database server.","items":{"$ref":"#/$defs/PostgresqlSchema"},"type":"array"}},"type":"object"},"PostgresqlSchema":{"description":"PostgreSQL schema.","properties":{"postgresqlTables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/PostgresqlTable"},"type":"array"},"schema":{"description":"The schema name.","type":"string"}},"type":"object"},"PostgresqlSourceConfig":{"description":"Configuration for syncing data from a PostgreSQL source.","properties":{"excludeObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"The PostgreSQL objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"The PostgreSQL objects to include in the stream."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"},"publication":{"description":"Required. The name of the publication that includes the set of all tables that are defined in the stream's include_objects.","type":"string"},"replicationSlot":{"description":"Required. Immutable. The name of the logical replication slot that's configured with the pgoutput plugin.","type":"string","x-google-immutable":true}},"type":"object"},"PostgresqlTable":{"description":"PostgreSQL table.","properties":{"postgresqlColumns":{"description":"PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/PostgresqlColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"RuleSet":{"description":"A set of rules to apply to a set of objects.","properties":{"customizationRules":{"description":"Required. List of customization rules to apply.","items":{"$ref":"#/$defs/CustomizationRule"},"type":"array"},"objectFilter":{"$ref":"#/$defs/ObjectFilter","description":"Required. Object filter to apply the customization rules to."}},"type":"object"},"SalesforceField":{"description":"Salesforce field.","properties":{"dataType":{"description":"The data type.","type":"string"},"name":{"description":"The field name.","type":"string"},"nillable":{"description":"Indicates whether the field can accept nil values.","type":"boolean"}},"type":"object"},"SalesforceMarketingCloudSourceConfig":{"description":"Configuration for syncing data from a Salesforce Marketing Cloud source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"fullRefreshPollingInterval":{"description":"Required. Specifies the polling interval for a full refresh of objects that do not support incremental sync. If not set, a default value of 24 hours is used. The duration must be between 1 and 24 hours, inclusive.","format":"google-duration","type":"string"},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"SalesforceObject":{"description":"Salesforce object.","properties":{"fields":{"description":"Salesforce fields. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SalesforceField"},"type":"array"},"objectName":{"description":"The object name.","type":"string"}},"type":"object"},"SalesforceObjectIdentifier":{"description":"Salesforce data source object identifier.","properties":{"objectName":{"description":"Required. The object name.","type":"string"}},"type":"object"},"SalesforceOrg":{"description":"Salesforce organization structure.","properties":{"objects":{"description":"Salesforce objects in the database server.","items":{"$ref":"#/$defs/SalesforceObject"},"type":"array"}},"type":"object"},"SalesforceSourceConfig":{"description":"Configuration for syncing data from a Salesforce source.","properties":{"excludeObjects":{"$ref":"#/$defs/SalesforceOrg","description":"The Salesforce objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SalesforceOrg","description":"The Salesforce objects to retrieve from the source."},"pollingInterval":{"description":"Required. Salesforce objects polling interval. The interval at which new changes will be polled for each object. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"ServiceNowSourceConfig":{"description":"Configuration for syncing data from a ServiceNow source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"SingleTargetDataset":{"description":"A single target dataset to which all data will be streamed.","properties":{"datasetId":{"description":"The dataset ID of the target dataset. DatasetIds allowed characters: https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets#datasetreference.","type":"string"}},"type":"object"},"SourceCatalog":{"description":"Source catalog.","properties":{"objects":{"description":"Optional. Source objects in the catalog.","items":{"$ref":"#/$defs/SourceObject"},"type":"array"}},"type":"object"},"SourceConfig":{"description":"The configuration of the stream source.","properties":{"dataverseSourceConfig":{"$ref":"#/$defs/DataverseSourceConfig","description":"Dataverse data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"mongodbSourceConfig":{"$ref":"#/$defs/MongodbSourceConfig","description":"MongoDB data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"mysqlSourceConfig":{"$ref":"#/$defs/MysqlSourceConfig","description":"MySQL data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"oracleSourceConfig":{"$ref":"#/$defs/OracleSourceConfig","description":"Oracle data source configuration. Only one of the following fields should be set: this field, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"postgresqlSourceConfig":{"$ref":"#/$defs/PostgresqlSourceConfig","description":"PostgreSQL data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"salesforceMarketingCloudSourceConfig":{"$ref":"#/$defs/SalesforceMarketingCloudSourceConfig","description":"Salesforce Marketing Cloud data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"salesforceSourceConfig":{"$ref":"#/$defs/SalesforceSourceConfig","description":"Salesforce data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"serviceNowSourceConfig":{"$ref":"#/$defs/ServiceNowSourceConfig","description":"ServiceNow data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, workdaySourceConfig."},"sourceConnectionProfile":{"description":"Required. Source connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`","type":"string"},"spannerSourceConfig":{"$ref":"#/$defs/SpannerSourceConfig","description":"Spanner data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"sqlServerSourceConfig":{"$ref":"#/$defs/SqlServerSourceConfig","description":"SQLServer data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"workdaySourceConfig":{"$ref":"#/$defs/WorkdaySourceConfig","description":"Optional. Workday data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig."}},"type":"object"},"SourceHierarchyDatasets":{"description":"Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy.","properties":{"datasetTemplate":{"$ref":"#/$defs/DatasetTemplate","description":"The dataset template to use for dynamic dataset creation."},"projectId":{"description":"Optional. The project id of the BigQuery dataset. If not specified, the project will be inferred from the stream resource.","type":"string"}},"type":"object"},"SourceObject":{"description":"Source object.","properties":{"objectName":{"description":"Required. The object name.","type":"string"},"properties":{"description":"Optional. Source properties. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SourceProperty"},"type":"array"}},"type":"object"},"SourceObjectIdentifier":{"description":"Represents an identifier of an object in the data source.","properties":{"mongodbIdentifier":{"$ref":"#/$defs/MongodbObjectIdentifier","description":"MongoDB data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, spannerIdentifier."},"mysqlIdentifier":{"$ref":"#/$defs/MysqlObjectIdentifier","description":"Mysql data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"oracleIdentifier":{"$ref":"#/$defs/OracleObjectIdentifier","description":"Oracle data source object identifier. Only one of the following fields should be set: this field, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"postgresqlIdentifier":{"$ref":"#/$defs/PostgresqlObjectIdentifier","description":"PostgreSQL data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"salesforceIdentifier":{"$ref":"#/$defs/SalesforceObjectIdentifier","description":"Salesforce data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, mongodbIdentifier, spannerIdentifier."},"spannerIdentifier":{"$ref":"#/$defs/SpannerObjectIdentifier","description":"Spanner data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier."},"sqlServerIdentifier":{"$ref":"#/$defs/SqlServerObjectIdentifier","description":"SQLServer data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."}},"type":"object"},"SourceProperty":{"description":"Source property.","properties":{"primaryKey":{"description":"Optional. Whether or not the property is a primary key.","type":"boolean"},"properties":{"description":"Optional. Source properties. When specified, it means that the current property contains nested properties of its own. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SourceProperty"},"type":"array"},"propertyName":{"description":"Required. The property name.","type":"string"}},"type":"object"},"SpannerColumn":{"description":"Spanner column.","properties":{"column":{"description":"Required. The column name.","type":"string"},"dataType":{"description":"Optional. Spanner data type.","type":"string"},"isPrimaryKey":{"description":"Optional. Whether or not the column is a primary key.","type":"boolean"},"ordinalPosition":{"description":"Optional. The ordinal position of the column in the table.","format":"int64","type":"string"}},"type":"object"},"SpannerDatabase":{"description":"Spanner database structure.","properties":{"schemas":{"description":"Optional. Spanner schemas in the database.","items":{"$ref":"#/$defs/SpannerSchema"},"type":"array"}},"type":"object"},"SpannerObjectIdentifier":{"description":"Spanner data source object identifier.","properties":{"schema":{"description":"Optional. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"SpannerSchema":{"description":"Spanner schema.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"tables":{"description":"Optional. Spanner tables in the schema.","items":{"$ref":"#/$defs/SpannerTable"},"type":"array"}},"type":"object"},"SpannerSourceConfig":{"description":"Configuration for syncing data from a Spanner source.","properties":{"backfillDataBoostEnabled":{"description":"Optional. Whether to use Data Boost for Spanner backfills. Defaults to false if not set.","type":"boolean"},"changeStreamName":{"description":"Required. Immutable. The change stream name to use for the stream.","type":"string","x-google-immutable":true},"excludeObjects":{"$r…before
{"$defs":{"BasicEncryption":{"description":"Message to represent the option where Datastream will enforce encryption without authenticating server identity. Server certificates will be trusted by default.","properties":{},"type":"object"},"BigQueryProfile":{"description":"Profile for connecting to a BigQuery destination.","properties":{},"type":"object"},"ConnectionProfile":{"description":"A set of reusable connection configurations to be used as a source or destination for a stream.","properties":{"bigqueryProfile":{"$ref":"#/$defs/BigQueryProfile","description":"Profile for connecting to a BigQuery destination. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"createTime":{"description":"Output only. The create time of the resource.","format":"date-time","readOnly":true,"type":"string"},"dataverseProfile":{"$ref":"#/$defs/DataverseProfile","description":"Profile for connecting to a Dataverse source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"displayName":{"description":"Required. Display name.","type":"string"},"forwardSshConnectivity":{"$ref":"#/$defs/ForwardSshTunnelConnectivity","description":"Forward SSH tunnel connectivity. Only one of the following fields should be set: this field, staticServiceIpConnectivity, privateConnectivity."},"gcsProfile":{"$ref":"#/$defs/GcsProfile","description":"Profile for connecting to a Cloud Storage destination. Only one of the following fields should be set: this field, oracleProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"labels":{"additionalProperties":{"type":"string"},"description":"Labels.","type":"object"},"mongodbProfile":{"$ref":"#/$defs/MongodbProfile","description":"Profile for connecting to a MongoDB source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"mysqlProfile":{"$ref":"#/$defs/MysqlProfile","description":"Profile for connecting to a MySQL source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"name":{"description":"Output only. Identifier. The resource's name.","readOnly":true,"type":"string","x-google-identifier":true},"oracleProfile":{"$ref":"#/$defs/OracleProfile","description":"Profile for connecting to an Oracle source. Only one of the following fields should be set: this field, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"postgresqlProfile":{"$ref":"#/$defs/PostgresqlProfile","description":"Profile for connecting to a PostgreSQL source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"privateConnectivity":{"$ref":"#/$defs/PrivateConnectivity","description":"Private connectivity. Only one of the following fields should be set: this field, staticServiceIpConnectivity, forwardSshConnectivity."},"salesforceMarketingCloudProfile":{"$ref":"#/$defs/SalesforceMarketingCloudProfile","description":"Profile for connecting to a Salesforce Marketing Cloud source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, serviceNowProfile, workdayProfile."},"salesforceProfile":{"$ref":"#/$defs/SalesforceProfile","description":"Profile for connecting to a Salesforce source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"satisfiesPzi":{"description":"Output only. Reserved for future use.","readOnly":true,"type":"boolean"},"satisfiesPzs":{"description":"Output only. Reserved for future use.","readOnly":true,"type":"boolean"},"serviceNowProfile":{"$ref":"#/$defs/ServiceNowProfile","description":"Profile for connecting to a ServiceNow source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, workdayProfile."},"spannerProfile":{"$ref":"#/$defs/SpannerProfile","description":"Profile for connecting to a Spanner source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"sqlServerProfile":{"$ref":"#/$defs/SqlServerProfile","description":"Profile for connecting to a SQLServer source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"staticServiceIpConnectivity":{"$ref":"#/$defs/StaticServiceIpConnectivity","description":"Static Service IP connectivity. Only one of the following fields should be set: this field, forwardSshConnectivity, privateConnectivity."},"updateTime":{"description":"Output only. The update time of the resource.","format":"date-time","readOnly":true,"type":"string"},"workdayProfile":{"$ref":"#/$defs/WorkdayProfile","description":"Optional. Profile for connecting to a Workday source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile."}},"type":"object"},"DataverseProfile":{"description":"Profile for connecting to a Dataverse source.","properties":{"environmentUrl":{"description":"Required. Environment URL of the Microsoft Dataverse instance. Example: `.crm.dynamics.com`","type":"string"},"oauthClientCredentials":{"$ref":"#/$defs/OauthClientCredentials","description":"Required. Credentials for authenticating with the Dataverse API."},"tenantId":{"description":"Required. Tenant id of the Microsoft Dataverse instance.","type":"string"}},"type":"object"},"EncryptionAndServerValidation":{"description":"Message to represent the option where Datastream will enforce encryption and authenticate server identity. ca_certificate must be set if user selects this option.","properties":{"caCertificate":{"description":"Optional. Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.","type":"string","writeOnly":true},"serverCertificateHostname":{"description":"Optional. The hostname mentioned in the Subject or SAN extension of the server certificate. This field is used for bypassing the hostname validation while verifying server certificate. This is required for scenarios where the host name that datastream connects to is different from the certificate's subject. This specifically happens for private connectivity. It could also happen when the customer provides a public IP in connection profile but the same is not present in the server certificate.","type":"string"}},"type":"object"},"EncryptionNotEnforced":{"description":"Message to represent the option where encryption is not enforced. An empty message right now to allow future extensibility.","properties":{},"type":"object"},"ForwardSshTunnelConnectivity":{"description":"Forward SSH Tunnel connectivity.","properties":{"hostname":{"description":"Required. Hostname for the SSH tunnel.","type":"string"},"password":{"description":"Input only. SSH password. Only one of this field or privateKey should be set.","type":"string","writeOnly":true},"port":{"description":"Port for the SSH tunnel, default value is 22.","format":"int32","type":"integer"},"privateKey":{"description":"Input only. SSH private key. Only one of this field or password should be set.","type":"string","writeOnly":true},"username":{"description":"Required. Username for the SSH tunnel.","type":"string"}},"type":"object"},"GcsProfile":{"description":"Profile for connecting to a Cloud Storage destination.","properties":{"bucket":{"description":"Required. The Cloud Storage bucket name.","type":"string"},"rootPath":{"description":"Optional. The root path inside the Cloud Storage bucket.","type":"string"}},"type":"object"},"HostAddress":{"description":"A HostAddress represents a transport end point, which is the combination of an IP address or hostname and a port number.","properties":{"hostname":{"description":"Required. Hostname for the connection.","type":"string"},"port":{"description":"Optional. Port for the connection.","format":"int32","type":"integer"}},"type":"object"},"MongodbProfile":{"description":"Profile for connecting to a MongoDB source.","properties":{"additionalOptions":{"additionalProperties":{"type":"string"},"description":"Optional. Specifies additional options for the MongoDB connection. The options should be sent as key-value pairs, for example: `additional_options = {\"serverSelectionTimeoutMS\": \"10000\", \"directConnection\": \"true\"}`. Keys are case-sensitive and should match the official MongoDB connection string options: https://www.mongodb.com/docs/manual/reference/connection-string-options/ The server will not modify the values provided by the user.","type":"object"},"hostAddresses":{"description":"Required. List of host addresses for a MongoDB cluster. For SRV connection format, this list must contain exactly one DNS host without a port. For Standard connection format, this list must contain all the required hosts in the cluster with their respective ports.","items":{"$ref":"#/$defs/HostAddress"},"type":"array"},"password":{"description":"Optional. Password for the MongoDB connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"replicaSet":{"description":"Optional. Name of the replica set. Only needed for self hosted replica set type MongoDB cluster. For SRV connection format, this field must be empty. For Standard connection format, this field must be specified.","type":"string"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the SQLServer connection password. Mutually exclusive with the `password` field.","type":"string"},"srvConnectionFormat":{"$ref":"#/$defs/SrvConnectionFormat","description":"Srv connection format. Only one of this field or standardConnectionFormat should be set."},"sslConfig":{"$ref":"#/$defs/MongodbSslConfig","description":"Optional. SSL configuration for the MongoDB connection."},"standardConnectionFormat":{"$ref":"#/$defs/StandardConnectionFormat","description":"Standard connection format. Only one of this field or srvConnectionFormat should be set."},"username":{"description":"Required. Username for the MongoDB connection.","type":"string"}},"type":"object"},"MongodbSslConfig":{"description":"MongoDB SSL configuration information.","properties":{"caCertificate":{"description":"Optional. Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.","type":"string","writeOnly":true},"caCertificateSet":{"description":"Output only. Indicates whether the ca_certificate field is set.","readOnly":true,"type":"boolean"},"clientCertificate":{"description":"Optional. Input only. PEM-encoded certificate that will be used by the replica to authenticate against the source database server. If this field is used then the 'client_key' and the 'ca_certificate' fields are mandatory.","type":"string","writeOnly":true},"clientCertificateSet":{"description":"Output only. Indicates whether the client_certificate field is set.","readOnly":true,"type":"boolean"},"clientKey":{"description":"Optional. Input only. PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory.","type":"string","writeOnly":true},"clientKeySet":{"description":"Output only. Indicates whether the client_key field is set.","readOnly":true,"type":"boolean"},"secretManagerStoredClientKey":{"description":"Optional. Input only. A reference to a Secret Manager resource name storing the PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory. Mutually exclusive with the `client_key` field.","type":"string","writeOnly":true}},"type":"object"},"MysqlProfile":{"description":"Profile for connecting to a MySQL source.","properties":{"hostname":{"description":"Required. Hostname for the MySQL connection.","type":"string"},"password":{"description":"Optional. Input only. Password for the MySQL connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string","writeOnly":true},"port":{"description":"Port for the MySQL connection, default value is 3306.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the MySQL connection password. Mutually exclusive with the `password` field.","type":"string"},"sslConfig":{"$ref":"#/$defs/MysqlSslConfig","description":"SSL configuration for the MySQL connection."},"username":{"description":"Required. Username for the MySQL connection.","type":"string"}},"type":"object"},"MysqlSslConfig":{"description":"MySQL SSL configuration information.","properties":{"caCertificate":{"description":"Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.","type":"string","writeOnly":true},"caCertificateSet":{"description":"Output only. Indicates whether the ca_certificate field is set.","readOnly":true,"type":"boolean"},"clientCertificate":{"description":"Optional. Input only. PEM-encoded certificate that will be used by the replica to authenticate against the source database server. If this field is used then the 'client_key' and the 'ca_certificate' fields are mandatory.","type":"string","writeOnly":true},"clientCertificateSet":{"description":"Output only. Indicates whether the client_certificate field is set.","readOnly":true,"type":"boolean"},"clientKey":{"description":"Optional. Input only. PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory.","type":"string","writeOnly":true},"clientKeySet":{"description":"Output only. Indicates whether the client_key field is set.","readOnly":true,"type":"boolean"}},"type":"object"},"Oauth2ClientCredentials":{"description":"OAuth2 Client Credentials.","properties":{"clientId":{"description":"Required. Client ID for Salesforce OAuth2 Client Credentials.","type":"string"},"clientSecret":{"description":"Optional. Client secret for Salesforce OAuth2 Client Credentials. Mutually exclusive with the `secret_manager_stored_client_secret` field.","type":"string"},"secretManagerStoredClientSecret":{"description":"Optional. A reference to a Secret Manager resource name storing the Salesforce OAuth2 client_secret. Mutually exclusive with the `client_secret` field.","type":"string"}},"type":"object"},"OauthClientCredentials":{"description":"OAuth Client Credentials.","properties":{"clientId":{"description":"Required. Client ID for OAuth Client Credentials.","type":"string"},"clientSecret":{"$ref":"#/$defs/Secret","description":"Required. Client secret for OAuth Client Credentials."}},"type":"object"},"OauthRefreshTokenCredentials":{"description":"OAuth Refresh Token Credentials.","properties":{"oauthClientCredentials":{"$ref":"#/$defs/OauthClientCredentials","description":"Required. Specifies the OAuth Client Credentials."},"refreshToken":{"$ref":"#/$defs/Secret","description":"Required. Specifies the OAuth Refresh Token."}},"type":"object"},"OracleAsmConfig":{"description":"Configuration for Oracle Automatic Storage Management (ASM) connection.","properties":{"asmService":{"description":"Required. ASM service name for the Oracle ASM connection.","type":"string"},"connectionAttributes":{"additionalProperties":{"type":"string"},"description":"Optional. Connection string attributes","type":"object"},"hostname":{"description":"Required. Hostname for the Oracle ASM connection.","type":"string"},"oracleSslConfig":{"$ref":"#/$defs/OracleSslConfig","description":"Optional. SSL configuration for the Oracle connection."},"password":{"description":"Optional. Password for the Oracle ASM connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"port":{"description":"Required. Port for the Oracle ASM connection.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the Oracle ASM connection password. Mutually exclusive with the `password` field.","type":"string"},"username":{"description":"Required. Username for the Oracle ASM connection.","type":"string"}},"type":"object"},"OracleProfile":{"description":"Profile for connecting to an Oracle source.","properties":{"connectionAttributes":{"additionalProperties":{"type":"string"},"description":"Connection string attributes","type":"object"},"databaseService":{"description":"Required. Database for the Oracle connection.","type":"string"},"hostname":{"description":"Required. Hostname for the Oracle connection.","type":"string"},"oracleAsmConfig":{"$ref":"#/$defs/OracleAsmConfig","description":"Optional. Configuration for Oracle ASM connection."},"oracleSslConfig":{"$ref":"#/$defs/OracleSslConfig","description":"Optional. SSL configuration for the Oracle connection."},"password":{"description":"Optional. Password for the Oracle connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"port":{"description":"Port for the Oracle connection, default value is 1521.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the Oracle connection password. Mutually exclusive with the `password` field.","type":"string"},"username":{"description":"Required. Username for the Oracle connection.","type":"string"}},"type":"object"},"OracleSslConfig":{"description":"Oracle SSL configuration information.","properties":{"caCertificate":{"description":"Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.","type":"string","writeOnly":true},"caCertificateSet":{"description":"Output only. Indicates whether the ca_certificate field has been set for this Connection-Profile.","readOnly":true,"type":"boolean"},"serverCertificateDistinguishedName":{"description":"Optional. The distinguished name (DN) mentioned in the server certificate. This corresponds to SSL_SERVER_CERT_DN sqlnet parameter. Refer https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-70AB0695-A9AA-4A94-B141-4C605236EEB7 If this field is not provided, the DN matching is not enforced.","type":"string"}},"type":"object"},"PostgresqlProfile":{"description":"Profile for connecting to a PostgreSQL source.","properties":{"database":{"description":"Required. Database for the PostgreSQL connection.","type":"string"},"hostname":{"description":"Required. Hostname for the PostgreSQL connection.","type":"string"},"password":{"description":"Optional. Password for the PostgreSQL connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"port":{"description":"Port for the PostgreSQL connection, default value is 5432.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the PostgreSQL connection password. Mutually exclusive with the `password` field.","type":"string"},"sslConfig":{"$ref":"#/$defs/PostgresqlSslConfig","description":"Optional. SSL configuration for the PostgreSQL connection. In case PostgresqlSslConfig is not set, the connection will use the default SSL mode, which is `prefer` (i.e. this mode will only use encryption if enabled from database side, otherwise will use unencrypted communication)"},"username":{"description":"Required. Username for the PostgreSQL connection.","type":"string"}},"type":"object"},"PostgresqlSslConfig":{"description":"PostgreSQL SSL configuration information.","properties":{"serverAndClientVerification":{"$ref":"#/$defs/ServerAndClientVerification","description":"If this field is set, the communication will be encrypted with TLS encryption and both the server identity and the client identity will be authenticated. Only one of this field or serverVerification should be set."},"serverVerification":{"$ref":"#/$defs/ServerVerification","description":"If this field is set, the communication will be encrypted with TLS encryption and the server identity will be authenticated. Only one of this field or serverAndClientVerification should be set."}},"type":"object"},"PrivateConnectivity":{"description":"Private Connectivity","properties":{"privateConnection":{"description":"Required. A reference to a private connection resource. Format: `projects/{project}/locations/{location}/privateConnections/{name}`","type":"string"}},"type":"object"},"SalesforceMarketingCloudProfile":{"description":"Profile for connecting to a Salesforce Marketing Cloud source.","properties":{"oauthClientCredentials":{"$ref":"#/$defs/OauthClientCredentials","description":"Required. Input only. Credentials for authenticating with the Salesforce Marketing Cloud API.","writeOnly":true},"subdomain":{"description":"Required. Subdomain for the Salesforce Marketing Cloud connection. Example: if your specific endpoint is `https://{your-specific-subdomain}.rest.marketingcloudapis.com/`, the subdomain is `{your-specific-subdomain}`. Must be 1-63 characters, start and end with an alphanumeric character, and contain only lowercase letters, numbers, and hyphens (-).","type":"string"}},"type":"object"},"SalesforceProfile":{"description":"Profile for connecting to a Salesforce source.","properties":{"domain":{"description":"Required. Domain endpoint for the Salesforce connection.","type":"string"},"oauth2ClientCredentials":{"$ref":"#/$defs/Oauth2ClientCredentials","description":"Connected app authentication. Only one of this field or userCredentials should be set."},"userCredentials":{"$ref":"#/$defs/UserCredentials","deprecated":true,"description":"Deprecated: Salesforce is retiring Username-Password authentication. Use `oauth2_client_credentials` instead. Only one of this field or oauth2ClientCredentials should be set."}},"type":"object"},"Secret":{"description":"A confidential piece of information where the actual value is either directly specified in the message as a raw string or stored in GCP secret manager.","properties":{"rawValue":{"description":"Optional. Input only. The actual raw value of the secret as plain text. Only one of this field or secretVersion should be set.","type":"string","writeOnly":true},"secretVersion":{"description":"Optional. A Secret Manager resource name storing the actual value of the secret. Supported formats: * projects/{project}/locations/{location}/secrets/{secret}/versions/{version} * projects/{project}/secrets/{secret}/versions/{version}. Only one of this field or rawValue should be set.","type":"string"}},"type":"object"},"ServerAndClientVerification":{"description":"Message represents the option where Datastream will enforce the encryption and authenticate the server identity as well as the client identity. ca_certificate, client_certificate and client_key must be set if user selects this option.","properties":{"caCertificate":{"description":"Required. Input only. PEM-encoded server root CA certificate.","type":"string","writeOnly":true},"clientCertificate":{"description":"Required. Input only. PEM-encoded certificate used by the source database to authenticate the client identity (i.e., the Datastream's identity). This certificate is signed by either a root certificate trusted by the server or one or more intermediate certificates (which is stored with the leaf certificate) to link the this certificate to the trusted root certificate.","type":"string","writeOnly":true},"clientKey":{"description":"Optional. Input only. PEM-encoded private key associated with the client certificate. This value will be used during the SSL/TLS handshake, allowing the PostgreSQL server to authenticate the client's identity, i.e. identity of the Datastream.","type":"string","writeOnly":true},"serverCertificateHostname":{"description":"Optional. The hostname mentioned in the Subject or SAN extension of the server certificate. If this field is not provided, the hostname in the server certificate is not validated.","type":"string"}},"type":"object"},"ServerVerification":{"description":"Message represents the option where Datastream will enforce the encryption and authenticate the server identity. ca_certificate must be set if user selects this option.","properties":{"caCertificate":{"description":"Required. Input only. PEM-encoded server root CA certificate.","type":"string","writeOnly":true},"serverCertificateHostname":{"description":"Optional. The hostname mentioned in the Subject or SAN extension of the server certificate. If this field is not provided, the hostname in the server certificate is not validated.","type":"string"}},"type":"object"},"ServiceNowProfile":{"description":"Profile for connecting to a ServiceNow source.","properties":{"instance":{"description":"Required. The instance of the ServiceNow account. This is the `` part of the URL `https://.service-now.com`.","type":"string"},"oauthClientCredentials":{"$ref":"#/$defs/OauthClientCredentials","description":"Credentials for authenticating with the ServiceNow API. Only one of this field or userPasswordCredentials should be set."},"userPasswordCredentials":{"$ref":"#/$defs/UserPasswordCredentials","description":"User-password authentication. Only one of this field or oauthClientCredentials should be set."}},"type":"object"},"SpannerProfile":{"description":"Profile for connecting to a Spanner source.","properties":{"database":{"description":"Required. Immutable. Cloud Spanner database resource. This field is immutable. Must be in the format: projects/{project}/instances/{instance}/databases/{database_id}.","type":"string","x-google-immutable":true},"host":{"description":"Optional. The Spanner endpoint to connect to. Defaults to the global endpoint (https://spanner.googleapis.com). Must be in the format: https://spanner.{region}.rep.googleapis.com.","type":"string"}},"type":"object"},"SqlServerProfile":{"description":"Profile for connecting to a SQLServer source.","properties":{"database":{"description":"Required. Database for the SQLServer connection.","type":"string"},"hostname":{"description":"Required. Hostname for the SQLServer connection.","type":"string"},"password":{"description":"Optional. Password for the SQLServer connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"port":{"description":"Port for the SQLServer connection, default value is 1433.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the SQLServer connection password. Mutually exclusive with the `password` field.","type":"string"},"sslConfig":{"$ref":"#/$defs/SqlServerSslConfig","description":"Optional. SSL configuration for the SQLServer connection."},"username":{"description":"Required. Username for the SQLServer connection.","type":"string"}},"type":"object"},"SqlServerSslConfig":{"description":"SQL Server SSL configuration information.","properties":{"basicEncryption":{"$ref":"#/$defs/BasicEncryption","description":"If set, Datastream will enforce encryption without authenticating server identity. Server certificates will be trusted by default. Only one of the following fields should be set: this field, encryptionNotEnforced, encryptionAndServerValidation."},"encryptionAndServerValidation":{"$ref":"#/$defs/EncryptionAndServerValidation","description":"If set, Datastream will enforce encryption and authenticate server identity. Only one of the following fields should be set: this field, encryptionNotEnforced, basicEncryption."},"encryptionNotEnforced":{"$ref":"#/$defs/EncryptionNotEnforced","description":"If set, Datastream will not enforce encryption. If the DB server mandates encryption, then connection will be encrypted but server identity will not be authenticated. Only one of the following fields should be set: this field, basicEncryption, encryptionAndServerValidation."}},"type":"object"},"SrvConnectionFormat":{"description":"Srv connection format.","properties":{},"type":"object"},"StandardConnectionFormat":{"description":"Standard connection format.","properties":{"directConnection":{"deprecated":true,"description":"Optional. Deprecated: Use the `additional_options` map to specify the `directConnection` parameter instead. For example: `additional_options = {\"directConnection\": \"true\"}`. Specifies whether the client connects directly to the host[:port] in the connection URI.","type":"boolean"}},"type":"object"},"StaticServiceIpConnectivity":{"description":"Static IP address connectivity. Used when the source database is configured to allow incoming connections from the Datastream public IP addresses for the region specified in the connection profile.","properties":{},"type":"object"},"UserCredentials":{"description":"Deprecated: Salesforce is retiring Username-Password authentication. Use `Oauth2ClientCredentials` instead.","properties":{"password":{"description":"Optional. Password for the Salesforce connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the Salesforce connection's password. Mutually exclusive with the `password` field.","type":"string"},"secretManagerStoredSecurityToken":{"description":"Optional. A reference to a Secret Manager resource name storing the Salesforce connection's security token. Mutually exclusive with the `security_token` field.","type":"string"},"securityToken":{"description":"Optional. Security token for the Salesforce connection. Mutually exclusive with the `secret_manager_stored_security_token` field.","type":"string"},"username":{"description":"Required. Username for the Salesforce connection.","type":"string"}},"type":"object"},"UserPasswordCredentials":{"description":"User-password credentials.","properties":{"password":{"$ref":"#/$defs/Secret","description":"Required. Password for the connection."},"username":{"description":"Required. Username for the connection.","type":"string"}},"type":"object"},"WorkdayProfile":{"description":"Profile for connecting to a Workday source.","properties":{"host":{"description":"Required. Host for the Workday connection. Must be a valid hostname (e.g., `wd3-impl-services1.workday.com`).","type":"string"},"oauthRefreshTokenCredentials":{"$ref":"#/$defs/OauthRefreshTokenCredentials","description":"Required. Credentials for authenticating with the Workday API. OAuth Refresh Token credentials for authenticating with the Workday API."},"tenant":{"description":"Required. Tenant for the Workday connection (e.g., `google12`).","type":"string"}},"type":"object"}},"description":"Response message for listing connection profiles.","properties":{"connectionProfiles":{"description":"List of connection profiles.","items":{"$ref":"#/$defs/ConnectionProfile"},"type":"array"},"nextPageToken":{"description":"A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.","type":"string"},"unreachable":{"description":"Locations that could not be reached.","items":{"type":"string"},"type":"array"}},"type":"object"}before
{"$defs":{"AppendOnly":{"description":"AppendOnly mode defines that all changes to a table will be written to the destination table.","properties":{},"type":"object"},"AvroFileFormat":{"description":"AVRO file format configuration.","properties":{},"type":"object"},"BackfillAllStrategy":{"description":"Backfill strategy to automatically backfill the Stream's objects. Specific objects can be excluded.","properties":{"mongodbExcludedObjects":{"$ref":"#/$defs/MongodbCluster","description":"MongoDB data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"mysqlExcludedObjects":{"$ref":"#/$defs/MysqlRdbms","description":"MySQL data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"oracleExcludedObjects":{"$ref":"#/$defs/OracleRdbms","description":"Oracle data source objects to avoid backfilling. Only one of the following fields should be set: this field, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"postgresqlExcludedObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"PostgreSQL data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"saasExcludedObjects":{"$ref":"#/$defs/SourceCatalog","description":"Source catalog data source objects to avoid backfilling. This is mainly used to represent SaaS applications objects. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects."},"salesforceExcludedObjects":{"$ref":"#/$defs/SalesforceOrg","description":"Salesforce data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"spannerExcludedObjects":{"$ref":"#/$defs/SpannerDatabase","description":"Spanner data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, saasExcludedObjects."},"sqlServerExcludedObjects":{"$ref":"#/$defs/SqlServerRdbms","description":"SQLServer data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."}},"type":"object"},"BackfillNoneStrategy":{"description":"Backfill strategy to disable automatic backfill for the Stream's objects.","properties":{},"type":"object"},"BigQueryClustering":{"description":"BigQuery clustering configuration.","properties":{"columns":{"description":"Required. Column names to set as clustering columns.","items":{"type":"string"},"type":"array"}},"type":"object"},"BigQueryDestinationConfig":{"description":"BigQuery destination configuration","properties":{"appendOnly":{"$ref":"#/$defs/AppendOnly","description":"Append only mode. Only one of this field or merge should be set."},"blmtConfig":{"$ref":"#/$defs/BlmtConfig","description":"Optional. Big Lake Managed Tables (BLMT) configuration."},"dataFreshness":{"description":"The guaranteed data freshness (in seconds) when querying tables created by the stream. Editing this field will only affect new tables created in the future, but existing tables will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost.","format":"google-duration","type":"string"},"merge":{"$ref":"#/$defs/Merge","description":"The standard mode. Only one of this field or appendOnly should be set."},"singleTargetDataset":{"$ref":"#/$defs/SingleTargetDataset","description":"Single destination dataset. Only one of this field or sourceHierarchyDatasets should be set."},"sourceHierarchyDatasets":{"$ref":"#/$defs/SourceHierarchyDatasets","description":"Source hierarchy datasets. Only one of this field or singleTargetDataset should be set."}},"type":"object"},"BigQueryPartitioning":{"description":"BigQuery partitioning configuration.","properties":{"ingestionTimePartition":{"$ref":"#/$defs/IngestionTimePartition","description":"Ingestion time partitioning. Only one of the following fields should be set: this field, integerRangePartition, timeUnitPartition."},"integerRangePartition":{"$ref":"#/$defs/IntegerRangePartition","description":"Integer range partitioning. Only one of the following fields should be set: this field, timeUnitPartition, ingestionTimePartition."},"requirePartitionFilter":{"description":"Optional. If true, queries over the table require a partition filter.","type":"boolean"},"timeUnitPartition":{"$ref":"#/$defs/TimeUnitPartition","description":"Time unit column partitioning. Only one of the following fields should be set: this field, integerRangePartition, ingestionTimePartition."}},"type":"object"},"BinaryLogParser":{"description":"Configuration to use Binary Log Parser CDC technique.","properties":{"logFileDirectories":{"$ref":"#/$defs/LogFileDirectories","description":"Use Oracle directories. Only one of this field or oracleAsmLogFileAccess should be set."},"oracleAsmLogFileAccess":{"$ref":"#/$defs/OracleAsmLogFileAccess","description":"Use Oracle ASM. Only one of this field or logFileDirectories should be set."}},"type":"object"},"BinaryLogPosition":{"description":"Use Binary log position based replication.","properties":{},"type":"object"},"BlmtConfig":{"description":"The configuration for BLMT.","properties":{"bucket":{"description":"Required. The Cloud Storage bucket name.","type":"string"},"connectionName":{"description":"Required. The bigquery connection. Format: `{project}.{location}.{name}`","type":"string"},"fileFormat":{"description":"Required. The file format.","enum":["FILE_FORMAT_UNSPECIFIED","PARQUET"],"type":"string","x-google-enum-descriptions":["Default value.","Parquet file format."]},"rootPath":{"description":"The root path inside the Cloud Storage bucket.","type":"string"},"tableFormat":{"description":"Required. The table format.","enum":["TABLE_FORMAT_UNSPECIFIED","ICEBERG"],"type":"string","x-google-enum-descriptions":["Default value.","Iceberg table format."]}},"type":"object"},"CustomizationRule":{"description":"A customization rule to apply to a set of objects.","properties":{"bigqueryClustering":{"$ref":"#/$defs/BigQueryClustering","description":"BigQuery clustering rule. Only one of this field or bigqueryPartitioning should be set."},"bigqueryPartitioning":{"$ref":"#/$defs/BigQueryPartitioning","description":"BigQuery partitioning rule. Only one of this field or bigqueryClustering should be set."}},"type":"object"},"DatasetTemplate":{"description":"Dataset template used for dynamic dataset creation.","properties":{"datasetIdPrefix":{"description":"If supplied, every created dataset will have its name prefixed by the provided value. The prefix and name will be separated by an underscore. i.e. _.","type":"string"},"kmsKeyName":{"description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information.","type":"string"},"location":{"description":"Required. The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.","type":"string"}},"type":"object"},"DataverseSourceConfig":{"description":"Configuration for syncing data from a Dataverse source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"DestinationConfig":{"description":"The configuration of the stream destination.","properties":{"bigqueryDestinationConfig":{"$ref":"#/$defs/BigQueryDestinationConfig","description":"BigQuery destination configuration. Only one of this field or gcsDestinationConfig should be set."},"destinationConnectionProfile":{"description":"Required. Destination connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`","type":"string"},"gcsDestinationConfig":{"$ref":"#/$defs/GcsDestinationConfig","description":"A configuration for how data should be loaded to Cloud Storage. Only one of this field or bigqueryDestinationConfig should be set."}},"type":"object"},"DropLargeObjects":{"description":"Configuration to drop large object values.","properties":{},"type":"object"},"Error":{"description":"Represent a user-facing Error.","properties":{"details":{"additionalProperties":{"type":"string"},"description":"Additional information about the error.","type":"object"},"errorTime":{"description":"The time when the error occurred.","format":"date-time","type":"string"},"errorUuid":{"description":"A unique identifier for this specific error, allowing it to be traced throughout the system in logs and API responses.","type":"string"},"message":{"description":"A message containing more information about the error that occurred.","type":"string"},"reason":{"description":"A title that explains the reason for the error.","type":"string"}},"type":"object"},"GcsDestinationConfig":{"description":"Google Cloud Storage destination configuration","properties":{"avroFileFormat":{"$ref":"#/$defs/AvroFileFormat","description":"AVRO file format configuration. Only one of this field or jsonFileFormat should be set."},"fileRotationInterval":{"description":"The maximum duration for which new events are added before a file is closed and a new file is created. Values within the range of 15-60 seconds are allowed.","format":"google-duration","type":"string"},"fileRotationMb":{"description":"The maximum file size to be saved in the bucket.","format":"int32","type":"integer"},"jsonFileFormat":{"$ref":"#/$defs/JsonFileFormat","description":"JSON file format configuration. Only one of this field or avroFileFormat should be set."},"path":{"description":"Path inside the Cloud Storage bucket to write data to.","type":"string"}},"type":"object"},"Gtid":{"description":"Use GTID based replication.","properties":{},"type":"object"},"IngestionTimePartition":{"description":"Ingestion time partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#ingestion_time","properties":{"partitioningTimeGranularity":{"description":"Optional. Partition granularity","enum":["PARTITIONING_TIME_GRANULARITY_UNSPECIFIED","PARTITIONING_TIME_GRANULARITY_HOUR","PARTITIONING_TIME_GRANULARITY_DAY","PARTITIONING_TIME_GRANULARITY_MONTH","PARTITIONING_TIME_GRANULARITY_YEAR"],"type":"string","x-google-enum-descriptions":["Unspecified partitioing interval.","Hourly partitioning.","Daily partitioning.","Monthly partitioning.","Yearly partitioning."]}},"type":"object"},"IntegerRangePartition":{"description":"Integer range partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#integer_range","properties":{"column":{"description":"Required. The partitioning column.","type":"string"},"end":{"description":"Required. The ending value for range partitioning (exclusive).","format":"int64","type":"string"},"interval":{"description":"Required. The interval of each range within the partition.","format":"int64","type":"string"},"start":{"description":"Required. The starting value for range partitioning (inclusive).","format":"int64","type":"string"}},"type":"object"},"JsonFileFormat":{"description":"JSON file format configuration.","properties":{"compression":{"description":"Compression of the loaded JSON file.","enum":["JSON_COMPRESSION_UNSPECIFIED","NO_COMPRESSION","GZIP"],"type":"string","x-google-enum-descriptions":["Unspecified json file compression.","Do not compress JSON file.","Gzip compression."]},"schemaFileFormat":{"description":"The schema file format along JSON data files.","enum":["SCHEMA_FILE_FORMAT_UNSPECIFIED","NO_SCHEMA_FILE","AVRO_SCHEMA_FILE"],"type":"string","x-google-enum-descriptions":["Unspecified schema file format.","Do not attach schema file.","Avro schema format."]}},"type":"object"},"LogFileDirectories":{"description":"Configuration to specify the Oracle directories to access the log files.","properties":{"archivedLogDirectory":{"description":"Required. Oracle directory for archived logs.","type":"string"},"onlineLogDirectory":{"description":"Required. Oracle directory for online logs.","type":"string"}},"type":"object"},"LogMiner":{"description":"Configuration to use LogMiner CDC method.","properties":{},"type":"object"},"Merge":{"description":"Merge mode defines that all changes to a table will be merged at the destination table.","properties":{},"type":"object"},"MongodbCluster":{"description":"MongoDB Cluster structure.","properties":{"databases":{"description":"MongoDB databases in the cluster.","items":{"$ref":"#/$defs/MongodbDatabase"},"type":"array"}},"type":"object"},"MongodbCollection":{"description":"MongoDB Collection.","properties":{"collection":{"description":"The collection name.","type":"string"},"fields":{"description":"Fields in the collection.","items":{"$ref":"#/$defs/MongodbField"},"type":"array"}},"type":"object"},"MongodbDatabase":{"description":"MongoDB Database.","properties":{"collections":{"description":"Collections in the database.","items":{"$ref":"#/$defs/MongodbCollection"},"type":"array"},"database":{"description":"The database name.","type":"string"}},"type":"object"},"MongodbField":{"description":"MongoDB Field.","properties":{"field":{"description":"The field name.","type":"string"}},"type":"object"},"MongodbObjectIdentifier":{"description":"MongoDB data source object identifier.","properties":{"collection":{"description":"Required. The collection name.","type":"string"},"database":{"description":"Required. The database name.","type":"string"}},"type":"object"},"MongodbSourceConfig":{"description":"Configuration for syncing data from a MongoDB source.","properties":{"excludeObjects":{"$ref":"#/$defs/MongodbCluster","description":"The MongoDB collections to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/MongodbCluster","description":"The MongoDB collections to include in the stream."},"jsonMode":{"description":"Optional. MongoDB JSON mode to use for the stream.","enum":["MONGODB_JSON_MODE_UNSPECIFIED","STRICT","CANONICAL"],"type":"string","x-google-enum-descriptions":["Unspecified JSON mode.","Strict JSON mode.","Canonical JSON mode."]},"maxConcurrentBackfillTasks":{"description":"Optional. Maximum number of concurrent backfill tasks. The number should be non-negative and less than or equal to 50. If not set (or set to 0), the system's default value is used","format":"int32","type":"integer"}},"type":"object"},"MysqlColumn":{"description":"MySQL Column.","properties":{"collation":{"description":"Column collation.","type":"string"},"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The MySQL data type. Full data types list can be found here: https://dev.mysql.com/doc/refman/8.0/en/data-types.html","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"MysqlDatabase":{"description":"MySQL database.","properties":{"database":{"description":"The database name.","type":"string"},"mysqlTables":{"description":"Tables in the database.","items":{"$ref":"#/$defs/MysqlTable"},"type":"array"}},"type":"object"},"MysqlObjectIdentifier":{"description":"Mysql data source object identifier.","properties":{"database":{"description":"Required. The database name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"MysqlRdbms":{"description":"MySQL database structure","properties":{"mysqlDatabases":{"description":"Mysql databases on the server","items":{"$ref":"#/$defs/MysqlDatabase"},"type":"array"}},"type":"object"},"MysqlSourceConfig":{"description":"Configuration for syncing data from a MySQL source.","properties":{"binaryLogPosition":{"$ref":"#/$defs/BinaryLogPosition","description":"Use Binary log position based replication. Only one of this field or gtid should be set."},"excludeObjects":{"$ref":"#/$defs/MysqlRdbms","description":"The MySQL objects to exclude from the stream."},"gtid":{"$ref":"#/$defs/Gtid","description":"Use GTID based replication. Only one of this field or binaryLogPosition should be set."},"includeObjects":{"$ref":"#/$defs/MysqlRdbms","description":"The MySQL objects to retrieve from the source."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Maximum number of concurrent CDC tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"}},"type":"object"},"MysqlTable":{"description":"MySQL table.","properties":{"mysqlColumns":{"description":"MySQL columns in the database. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/MysqlColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"ObjectFilter":{"description":"Object filter to apply the rules to.","properties":{"sourceObjectIdentifier":{"$ref":"#/$defs/SourceObjectIdentifier","description":"Specific source object identifier."}},"type":"object"},"OracleAsmLogFileAccess":{"description":"Configuration to use Oracle ASM to access the log files.","properties":{},"type":"object"},"OracleColumn":{"description":"Oracle Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The Oracle data type.","type":"string"},"encoding":{"description":"Column encoding.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"OracleObjectIdentifier":{"description":"Oracle data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"OracleRdbms":{"description":"Oracle database structure.","properties":{"oracleSchemas":{"description":"Oracle schemas/databases in the database server.","items":{"$ref":"#/$defs/OracleSchema"},"type":"array"}},"type":"object"},"OracleSchema":{"description":"Oracle schema.","properties":{"oracleTables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/OracleTable"},"type":"array"},"schema":{"description":"The schema name.","type":"string"}},"type":"object"},"OracleSourceConfig":{"description":"Configuration for syncing data from an Oracle source.","properties":{"binaryLogParser":{"$ref":"#/$defs/BinaryLogParser","description":"Use Binary Log Parser. Only one of this field or logMiner should be set."},"dropLargeObjects":{"$ref":"#/$defs/DropLargeObjects","description":"Drop large object values. Only one of this field or streamLargeObjects should be set."},"excludeObjects":{"$ref":"#/$defs/OracleRdbms","description":"The Oracle objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/OracleRdbms","description":"The Oracle objects to include in the stream."},"logMiner":{"$ref":"#/$defs/LogMiner","description":"Use LogMiner. Only one of this field or binaryLogParser should be set."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Maximum number of concurrent CDC tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.","format":"int32","type":"integer"},"streamLargeObjects":{"$ref":"#/$defs/StreamLargeObjects","description":"Stream large object values. Only one of this field or dropLargeObjects should be set."}},"type":"object"},"OracleTable":{"description":"Oracle table.","properties":{"oracleColumns":{"description":"Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/OracleColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"PostgresqlColumn":{"description":"PostgreSQL Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The PostgreSQL data type.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"PostgresqlObjectIdentifier":{"description":"PostgreSQL data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"PostgresqlRdbms":{"description":"PostgreSQL database structure.","properties":{"postgresqlSchemas":{"description":"PostgreSQL schemas in the database server.","items":{"$ref":"#/$defs/PostgresqlSchema"},"type":"array"}},"type":"object"},"PostgresqlSchema":{"description":"PostgreSQL schema.","properties":{"postgresqlTables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/PostgresqlTable"},"type":"array"},"schema":{"description":"The schema name.","type":"string"}},"type":"object"},"PostgresqlSourceConfig":{"description":"Configuration for syncing data from a PostgreSQL source.","properties":{"excludeObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"The PostgreSQL objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"The PostgreSQL objects to include in the stream."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"},"publication":{"description":"Required. The name of the publication that includes the set of all tables that are defined in the stream's include_objects.","type":"string"},"replicationSlot":{"description":"Required. Immutable. The name of the logical replication slot that's configured with the pgoutput plugin.","type":"string","x-google-immutable":true}},"type":"object"},"PostgresqlTable":{"description":"PostgreSQL table.","properties":{"postgresqlColumns":{"description":"PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/PostgresqlColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"RuleSet":{"description":"A set of rules to apply to a set of objects.","properties":{"customizationRules":{"description":"Required. List of customization rules to apply.","items":{"$ref":"#/$defs/CustomizationRule"},"type":"array"},"objectFilter":{"$ref":"#/$defs/ObjectFilter","description":"Required. Object filter to apply the customization rules to."}},"type":"object"},"SalesforceField":{"description":"Salesforce field.","properties":{"dataType":{"description":"The data type.","type":"string"},"name":{"description":"The field name.","type":"string"},"nillable":{"description":"Indicates whether the field can accept nil values.","type":"boolean"}},"type":"object"},"SalesforceMarketingCloudSourceConfig":{"description":"Configuration for syncing data from a Salesforce Marketing Cloud source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"fullRefreshPollingInterval":{"description":"Required. Specifies the polling interval for a full refresh of objects that do not support incremental sync. If not set, a default value of 24 hours is used. The duration must be between 1 and 24 hours, inclusive.","format":"google-duration","type":"string"},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"SalesforceObject":{"description":"Salesforce object.","properties":{"fields":{"description":"Salesforce fields. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SalesforceField"},"type":"array"},"objectName":{"description":"The object name.","type":"string"}},"type":"object"},"SalesforceObjectIdentifier":{"description":"Salesforce data source object identifier.","properties":{"objectName":{"description":"Required. The object name.","type":"string"}},"type":"object"},"SalesforceOrg":{"description":"Salesforce organization structure.","properties":{"objects":{"description":"Salesforce objects in the database server.","items":{"$ref":"#/$defs/SalesforceObject"},"type":"array"}},"type":"object"},"SalesforceSourceConfig":{"description":"Configuration for syncing data from a Salesforce source.","properties":{"excludeObjects":{"$ref":"#/$defs/SalesforceOrg","description":"The Salesforce objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SalesforceOrg","description":"The Salesforce objects to retrieve from the source."},"pollingInterval":{"description":"Required. Salesforce objects polling interval. The interval at which new changes will be polled for each object. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"ServiceNowSourceConfig":{"description":"Configuration for syncing data from a ServiceNow source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"SingleTargetDataset":{"description":"A single target dataset to which all data will be streamed.","properties":{"datasetId":{"description":"The dataset ID of the target dataset. DatasetIds allowed characters: https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets#datasetreference.","type":"string"}},"type":"object"},"SourceCatalog":{"description":"Source catalog.","properties":{"objects":{"description":"Optional. Source objects in the catalog.","items":{"$ref":"#/$defs/SourceObject"},"type":"array"}},"type":"object"},"SourceConfig":{"description":"The configuration of the stream source.","properties":{"dataverseSourceConfig":{"$ref":"#/$defs/DataverseSourceConfig","description":"Dataverse data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"mongodbSourceConfig":{"$ref":"#/$defs/MongodbSourceConfig","description":"MongoDB data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"mysqlSourceConfig":{"$ref":"#/$defs/MysqlSourceConfig","description":"MySQL data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"oracleSourceConfig":{"$ref":"#/$defs/OracleSourceConfig","description":"Oracle data source configuration. Only one of the following fields should be set: this field, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"postgresqlSourceConfig":{"$ref":"#/$defs/PostgresqlSourceConfig","description":"PostgreSQL data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"salesforceMarketingCloudSourceConfig":{"$ref":"#/$defs/SalesforceMarketingCloudSourceConfig","description":"Salesforce Marketing Cloud data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"salesforceSourceConfig":{"$ref":"#/$defs/SalesforceSourceConfig","description":"Salesforce data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"serviceNowSourceConfig":{"$ref":"#/$defs/ServiceNowSourceConfig","description":"ServiceNow data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, workdaySourceConfig."},"sourceConnectionProfile":{"description":"Required. Source connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`","type":"string"},"spannerSourceConfig":{"$ref":"#/$defs/SpannerSourceConfig","description":"Spanner data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"sqlServerSourceConfig":{"$ref":"#/$defs/SqlServerSourceConfig","description":"SQLServer data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"workdaySourceConfig":{"$ref":"#/$defs/WorkdaySourceConfig","description":"Optional. Workday data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig."}},"type":"object"},"SourceHierarchyDatasets":{"description":"Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy.","properties":{"datasetTemplate":{"$ref":"#/$defs/DatasetTemplate","description":"The dataset template to use for dynamic dataset creation."},"projectId":{"description":"Optional. The project id of the BigQuery dataset. If not specified, the project will be inferred from the stream resource.","type":"string"}},"type":"object"},"SourceObject":{"description":"Source object.","properties":{"objectName":{"description":"Required. The object name.","type":"string"},"properties":{"description":"Optional. Source properties. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SourceProperty"},"type":"array"}},"type":"object"},"SourceObjectIdentifier":{"description":"Represents an identifier of an object in the data source.","properties":{"mongodbIdentifier":{"$ref":"#/$defs/MongodbObjectIdentifier","description":"MongoDB data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, spannerIdentifier."},"mysqlIdentifier":{"$ref":"#/$defs/MysqlObjectIdentifier","description":"Mysql data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"oracleIdentifier":{"$ref":"#/$defs/OracleObjectIdentifier","description":"Oracle data source object identifier. Only one of the following fields should be set: this field, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"postgresqlIdentifier":{"$ref":"#/$defs/PostgresqlObjectIdentifier","description":"PostgreSQL data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"salesforceIdentifier":{"$ref":"#/$defs/SalesforceObjectIdentifier","description":"Salesforce data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, mongodbIdentifier, spannerIdentifier."},"spannerIdentifier":{"$ref":"#/$defs/SpannerObjectIdentifier","description":"Spanner data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier."},"sqlServerIdentifier":{"$ref":"#/$defs/SqlServerObjectIdentifier","description":"SQLServer data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."}},"type":"object"},"SourceProperty":{"description":"Source property.","properties":{"primaryKey":{"description":"Optional. Whether or not the property is a primary key.","type":"boolean"},"properties":{"description":"Optional. Source properties. When specified, it means that the current property contains nested properties of its own. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SourceProperty"},"type":"array"},"propertyName":{"description":"Required. The property name.","type":"string"}},"type":"object"},"SpannerColumn":{"description":"Spanner column.","properties":{"column":{"description":"Required. The column name.","type":"string"},"dataType":{"description":"Optional. Spanner data type.","type":"string"},"isPrimaryKey":{"description":"Optional. Whether or not the column is a primary key.","type":"boolean"},"ordinalPosition":{"description":"Optional. The ordinal position of the column in the table.","format":"int64","type":"string"}},"type":"object"},"SpannerDatabase":{"description":"Spanner database structure.","properties":{"schemas":{"description":"Optional. Spanner schemas in the database.","items":{"$ref":"#/$defs/SpannerSchema"},"type":"array"}},"type":"object"},"SpannerObjectIdentifier":{"description":"Spanner data source object identifier.","properties":{"schema":{"description":"Optional. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"SpannerSchema":{"description":"Spanner schema.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"tables":{"description":"Optional. Spanner tables in the schema.","items":{"$ref":"#/$defs/SpannerTable"},"type":"array"}},"type":"object"},"SpannerSourceConfig":{"description":"Configuration for syncing data from a Spanner source.","properties":{"backfillDataBoostEnabled":{"description":"Optional. Whether to use Data Boost for Spanner backfills. Defaults to false if not set.","type":"boolean"},"changeStreamName":{"description":"Required. Immutable. The change stream name to use for the stream.","type":"string","x-google-immutable":true},"excludeObjects":{"$ref":"#/$defs/SpannerDa…Authorization not required, issuer https://accounts.google.com
Certificate changed, valid to 2026-12-30
Authorization not required, issuer https://accounts.google.com
Authorization not required, issuer https://accounts.google.com
Authorization not required, issuer https://accounts.google.com
Authorization not required, issuer https://accounts.google.com
Certificate changed, valid to 2026-12-21
Authorization not required, issuer https://accounts.google.com
Authorization not required, issuer https://accounts.google.com
Authorization not required, issuer https://accounts.google.com
Authorization not required, issuer https://accounts.google.com
Certificate changed, valid to 2026-12-11
Authorization not required, issuer https://accounts.google.com
Authorization not required, issuer https://accounts.google.com
Authorization not required, issuer https://accounts.google.com
Authorization not required, issuer https://accounts.google.com
Authorization not required, issuer https://accounts.google.com
Changed the definition of "get_stream" and "list_streams"
⟨4082 unchanged words⟩ ⟨4082 unchanged words⟩ Authorization not required, issuer https://accounts.google.com
Changed the definition of "get_stream" and "list_streams"
⟨4082 unchanged words⟩ ⟨4082 unchanged words⟩ Changed the definition of "get_stream" and "list_streams"
⟨4082 unchanged words⟩ ⟨4082 unchanged words⟩ Authorization not required, issuer https://accounts.google.com
Certificate changed, valid to 2026-12-03
Authorization not required, issuer https://accounts.google.com
Changed the definition of "delete_stream", "get_operation", "get_stream" and 6 more
⟨216 unchanged words⟩ the operation in case of failure or cancellation. Only one of this field or response should be set."},"metadata":{"additionalProperties":{"description" ⟨166 unchanged words⟩ ()`, the inferred response type is `TakeSnapshotResponse`. Only one of this field or error should be set.","type":"object"}},"type":"object"}
⟨216 unchanged words⟩ the operation in case of failure or cancellation. Only one of this field or response should be set."},"metadata":{"additionalProperties":{"description" ⟨166 unchanged words⟩
Authorization not required, issuer https://accounts.google.com
Authorization not required, issuer https://accounts.google.com
Authorization not required, issuer https://accounts.google.com
Certificate changed, valid to 2026-11-27
Authorization not required, issuer https://accounts.google.com
Authorization not required, issuer https://accounts.google.com
Authorization not required, issuer https://accounts.google.com
Authorization not required, issuer https://accounts.google.com
Certificate recorded, valid to 2026-11-02
Authorization not required, issuer https://accounts.google.com
First tool surface recorded: 10 tools (server version ESF)
Showing the latest 37 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
after
{"$defs":{"BasicEncryption":{"description":"Message to represent the option where Datastream will enforce encryption without authenticating server identity. Server certificates will be trusted by default.","properties":{},"type":"object"},"BigQueryProfile":{"description":"Profile for connecting to a BigQuery destination.","properties":{},"type":"object"},"ConnectionProfile":{"description":"A set of reusable connection configurations to be used as a source or destination for a stream.","properties":{"bigqueryProfile":{"$ref":"#/$defs/BigQueryProfile","description":"Profile for connecting to a BigQuery destination. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"createTime":{"description":"Output only. The create time of the resource.","format":"date-time","readOnly":true,"type":"string"},"dataverseProfile":{"$ref":"#/$defs/DataverseProfile","description":"Profile for connecting to a Dataverse source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"displayName":{"description":"Required. Display name.","type":"string"},"forwardSshConnectivity":{"$ref":"#/$defs/ForwardSshTunnelConnectivity","description":"Forward SSH tunnel connectivity. Only one of the following fields should be set: this field, staticServiceIpConnectivity, privateConnectivity."},"gcsProfile":{"$ref":"#/$defs/GcsProfile","description":"Profile for connecting to a Cloud Storage destination. Only one of the following fields should be set: this field, oracleProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"labels":{"additionalProperties":{"type":"string"},"description":"Labels.","type":"object"},"mongodbProfile":{"$ref":"#/$defs/MongodbProfile","description":"Profile for connecting to a MongoDB source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"mysqlProfile":{"$ref":"#/$defs/MysqlProfile","description":"Profile for connecting to a MySQL source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"name":{"description":"Output only. Identifier. The resource's name.","readOnly":true,"type":"string","x-google-identifier":true},"oracleProfile":{"$ref":"#/$defs/OracleProfile","description":"Profile for connecting to an Oracle source. Only one of the following fields should be set: this field, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"postgresqlProfile":{"$ref":"#/$defs/PostgresqlProfile","description":"Profile for connecting to a PostgreSQL source or destination. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"privateConnectivity":{"$ref":"#/$defs/PrivateConnectivity","description":"Private connectivity. Only one of the following fields should be set: this field, staticServiceIpConnectivity, forwardSshConnectivity."},"salesforceMarketingCloudProfile":{"$ref":"#/$defs/SalesforceMarketingCloudProfile","description":"Profile for connecting to a Salesforce Marketing Cloud source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, serviceNowProfile, workdayProfile."},"salesforceProfile":{"$ref":"#/$defs/SalesforceProfile","description":"Profile for connecting to a Salesforce source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"satisfiesPzi":{"description":"Output only. Reserved for future use.","readOnly":true,"type":"boolean"},"satisfiesPzs":{"description":"Output only. Reserved for future use.","readOnly":true,"type":"boolean"},"serviceNowProfile":{"$ref":"#/$defs/ServiceNowProfile","description":"Profile for connecting to a ServiceNow source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, workdayProfile."},"spannerProfile":{"$ref":"#/$defs/SpannerProfile","description":"Profile for connecting to a Spanner source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"sqlServerProfile":{"$ref":"#/$defs/SqlServerProfile","description":"Profile for connecting to a SQLServer source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"staticServiceIpConnectivity":{"$ref":"#/$defs/StaticServiceIpConnectivity","description":"Static Service IP connectivity. Only one of the following fields should be set: this field, forwardSshConnectivity, privateConnectivity."},"updateTime":{"description":"Output only. The update time of the resource.","format":"date-time","readOnly":true,"type":"string"},"workdayProfile":{"$ref":"#/$defs/WorkdayProfile","description":"Optional. Profile for connecting to a Workday source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile."}},"type":"object"},"DataverseProfile":{"description":"Profile for connecting to a Dataverse source.","properties":{"environmentUrl":{"description":"Required. Environment URL of the Microsoft Dataverse instance. Example: `<subdomain>.crm.dynamics.com`","type":"string"},"oauthClientCredentials":{"$ref":"#/$defs/OauthClientCredentials","description":"Required. Credentials for authenticating with the Dataverse API."},"tenantId":{"description":"Required. Tenant id of the Microsoft Dataverse instance.","type":"string"}},"type":"object"},"EncryptionAndServerValidation":{"description":"Message to represent the option where Datastream will enforce encryption and authenticate server identity. ca_certificate must be set if user selects this option.","properties":{"caCertificate":{"description":"Optional. Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.","type":"string","writeOnly":true},"serverCertificateHostname":{"description":"Optional. The hostname mentioned in the Subject or SAN extension of the server certificate. This field is used for bypassing the hostname validation while verifying server certificate. This is required for scenarios where the host name that datastream connects to is different from the certificate's subject. This specifically happens for private connectivity. It could also happen when the customer provides a public IP in connection profile but the same is not present in the server certificate.","type":"string"}},"type":"object"},"EncryptionNotEnforced":{"description":"Message to represent the option where encryption is not enforced. An empty message right now to allow future extensibility.","properties":{},"type":"object"},"ForwardSshTunnelConnectivity":{"description":"Forward SSH Tunnel connectivity.","properties":{"hostname":{"description":"Required. Hostname for the SSH tunnel.","type":"string"},"password":{"description":"Input only. SSH password. Only one of this field or privateKey should be set.","type":"string","writeOnly":true},"port":{"description":"Port for the SSH tunnel, default value is 22.","format":"int32","type":"integer"},"privateKey":{"description":"Input only. SSH private key. Only one of this field or password should be set.","type":"string","writeOnly":true},"username":{"description":"Required. Username for the SSH tunnel.","type":"string"}},"type":"object"},"GcsProfile":{"description":"Profile for connecting to a Cloud Storage destination.","properties":{"bucket":{"description":"Required. The Cloud Storage bucket name.","type":"string"},"rootPath":{"description":"Optional. The root path inside the Cloud Storage bucket.","type":"string"}},"type":"object"},"HostAddress":{"description":"A HostAddress represents a transport end point, which is the combination of an IP address or hostname and a port number.","properties":{"hostname":{"description":"Required. Hostname for the connection.","type":"string"},"port":{"description":"Optional. Port for the connection.","format":"int32","type":"integer"}},"type":"object"},"MongodbProfile":{"description":"Profile for connecting to a MongoDB source.","properties":{"additionalOptions":{"additionalProperties":{"type":"string"},"description":"Optional. Specifies additional options for the MongoDB connection. The options should be sent as key-value pairs, for example: `additional_options = {\"serverSelectionTimeoutMS\": \"10000\", \"directConnection\": \"true\"}`. Keys are case-sensitive and should match the official MongoDB connection string options: https://www.mongodb.com/docs/manual/reference/connection-string-options/ The server will not modify the values provided by the user.","type":"object"},"hostAddresses":{"description":"Required. List of host addresses for a MongoDB cluster. For SRV connection format, this list must contain exactly one DNS host without a port. For Standard connection format, this list must contain all the required hosts in the cluster with their respective ports.","items":{"$ref":"#/$defs/HostAddress"},"type":"array"},"password":{"description":"Optional. Password for the MongoDB connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"replicaSet":{"description":"Optional. Name of the replica set. Only needed for self hosted replica set type MongoDB cluster. For SRV connection format, this field must be empty. For Standard connection format, this field must be specified.","type":"string"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the SQLServer connection password. Mutually exclusive with the `password` field.","type":"string"},"srvConnectionFormat":{"$ref":"#/$defs/SrvConnectionFormat","description":"Srv connection format. Only one of this field or standardConnectionFormat should be set."},"sslConfig":{"$ref":"#/$defs/MongodbSslConfig","description":"Optional. SSL configuration for the MongoDB connection."},"standardConnectionFormat":{"$ref":"#/$defs/StandardConnectionFormat","description":"Standard connection format. Only one of this field or srvConnectionFormat should be set."},"username":{"description":"Required. Username for the MongoDB connection.","type":"string"}},"type":"object"},"MongodbSslConfig":{"description":"MongoDB SSL configuration information.","properties":{"caCertificate":{"description":"Optional. Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.","type":"string","writeOnly":true},"caCertificateSet":{"description":"Output only. Indicates whether the ca_certificate field is set.","readOnly":true,"type":"boolean"},"clientCertificate":{"description":"Optional. Input only. PEM-encoded certificate that will be used by the replica to authenticate against the source database server. If this field is used then the 'client_key' and the 'ca_certificate' fields are mandatory.","type":"string","writeOnly":true},"clientCertificateSet":{"description":"Output only. Indicates whether the client_certificate field is set.","readOnly":true,"type":"boolean"},"clientKey":{"description":"Optional. Input only. PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory.","type":"string","writeOnly":true},"clientKeySet":{"description":"Output only. Indicates whether the client_key field is set.","readOnly":true,"type":"boolean"},"secretManagerStoredClientKey":{"description":"Optional. Input only. A reference to a Secret Manager resource name storing the PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory. Mutually exclusive with the `client_key` field.","type":"string","writeOnly":true}},"type":"object"},"MysqlProfile":{"description":"Profile for connecting to a MySQL source.","properties":{"hostname":{"description":"Required. Hostname for the MySQL connection.","type":"string"},"password":{"description":"Optional. Input only. Password for the MySQL connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string","writeOnly":true},"port":{"description":"Port for the MySQL connection, default value is 3306.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the MySQL connection password. Mutually exclusive with the `password` field.","type":"string"},"sslConfig":{"$ref":"#/$defs/MysqlSslConfig","description":"SSL configuration for the MySQL connection."},"username":{"description":"Required. Username for the MySQL connection.","type":"string"}},"type":"object"},"MysqlSslConfig":{"description":"MySQL SSL configuration information.","properties":{"caCertificate":{"description":"Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.","type":"string","writeOnly":true},"caCertificateSet":{"description":"Output only. Indicates whether the ca_certificate field is set.","readOnly":true,"type":"boolean"},"clientCertificate":{"description":"Optional. Input only. PEM-encoded certificate that will be used by the replica to authenticate against the source database server. If this field is used then the 'client_key' and the 'ca_certificate' fields are mandatory.","type":"string","writeOnly":true},"clientCertificateSet":{"description":"Output only. Indicates whether the client_certificate field is set.","readOnly":true,"type":"boolean"},"clientKey":{"description":"Optional. Input only. PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory.","type":"string","writeOnly":true},"clientKeySet":{"description":"Output only. Indicates whether the client_key field is set.","readOnly":true,"type":"boolean"}},"type":"object"},"Oauth2ClientCredentials":{"description":"OAuth2 Client Credentials.","properties":{"clientId":{"description":"Required. Client ID for Salesforce OAuth2 Client Credentials.","type":"string"},"clientSecret":{"description":"Optional. Client secret for Salesforce OAuth2 Client Credentials. Mutually exclusive with the `secret_manager_stored_client_secret` field.","type":"string"},"secretManagerStoredClientSecret":{"description":"Optional. A reference to a Secret Manager resource name storing the Salesforce OAuth2 client_secret. Mutually exclusive with the `client_secret` field.","type":"string"}},"type":"object"},"OauthClientCredentials":{"description":"OAuth Client Credentials.","properties":{"clientId":{"description":"Required. Client ID for OAuth Client Credentials.","type":"string"},"clientSecret":{"$ref":"#/$defs/Secret","description":"Required. Client secret for OAuth Client Credentials."}},"type":"object"},"OauthRefreshTokenCredentials":{"description":"OAuth Refresh Token Credentials.","properties":{"oauthClientCredentials":{"$ref":"#/$defs/OauthClientCredentials","description":"Required. Specifies the OAuth Client Credentials."},"refreshToken":{"$ref":"#/$defs/Secret","description":"Required. Specifies the OAuth Refresh Token."}},"type":"object"},"OracleAsmConfig":{"description":"Configuration for Oracle Automatic Storage Management (ASM) connection.","properties":{"asmService":{"description":"Required. ASM service name for the Oracle ASM connection.","type":"string"},"connectionAttributes":{"additionalProperties":{"type":"string"},"description":"Optional. Connection string attributes","type":"object"},"hostname":{"description":"Required. Hostname for the Oracle ASM connection.","type":"string"},"oracleSslConfig":{"$ref":"#/$defs/OracleSslConfig","description":"Optional. SSL configuration for the Oracle connection."},"password":{"description":"Optional. Password for the Oracle ASM connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"port":{"description":"Required. Port for the Oracle ASM connection.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the Oracle ASM connection password. Mutually exclusive with the `password` field.","type":"string"},"username":{"description":"Required. Username for the Oracle ASM connection.","type":"string"}},"type":"object"},"OracleProfile":{"description":"Profile for connecting to an Oracle source.","properties":{"connectionAttributes":{"additionalProperties":{"type":"string"},"description":"Connection string attributes","type":"object"},"databaseService":{"description":"Required. Database for the Oracle connection.","type":"string"},"hostname":{"description":"Required. Hostname for the Oracle connection.","type":"string"},"oracleAsmConfig":{"$ref":"#/$defs/OracleAsmConfig","description":"Optional. Configuration for Oracle ASM connection."},"oracleSslConfig":{"$ref":"#/$defs/OracleSslConfig","description":"Optional. SSL configuration for the Oracle connection."},"password":{"description":"Optional. Password for the Oracle connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"port":{"description":"Port for the Oracle connection, default value is 1521.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the Oracle connection password. Mutually exclusive with the `password` field.","type":"string"},"username":{"description":"Required. Username for the Oracle connection.","type":"string"}},"type":"object"},"OracleSslConfig":{"description":"Oracle SSL configuration information.","properties":{"caCertificate":{"description":"Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.","type":"string","writeOnly":true},"caCertificateSet":{"description":"Output only. Indicates whether the ca_certificate field has been set for this Connection-Profile.","readOnly":true,"type":"boolean"},"serverCertificateDistinguishedName":{"description":"Optional. The distinguished name (DN) mentioned in the server certificate. This corresponds to SSL_SERVER_CERT_DN sqlnet parameter. Refer https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-70AB0695-A9AA-4A94-B141-4C605236EEB7 If this field is not provided, the DN matching is not enforced.","type":"string"}},"type":"object"},"PostgresqlProfile":{"description":"Profile for connecting to a PostgreSQL source or destination.","properties":{"database":{"description":"Required. Database for the PostgreSQL connection.","type":"string"},"hostname":{"description":"Required. Hostname for the PostgreSQL connection.","type":"string"},"password":{"description":"Optional. Password for the PostgreSQL connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"port":{"description":"Port for the PostgreSQL connection, default value is 5432.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the PostgreSQL connection password. Mutually exclusive with the `password` field.","type":"string"},"sslConfig":{"$ref":"#/$defs/PostgresqlSslConfig","description":"Optional. SSL configuration for the PostgreSQL connection. In case PostgresqlSslConfig is not set, the connection will use the default SSL mode, which is `prefer` (i.e. this mode will only use encryption if enabled from database side, otherwise will use unencrypted communication)"},"username":{"description":"Required. Username for the PostgreSQL connection.","type":"string"}},"type":"object"},"PostgresqlSslConfig":{"description":"PostgreSQL SSL configuration information.","properties":{"serverAndClientVerification":{"$ref":"#/$defs/ServerAndClientVerification","description":"If this field is set, the communication will be encrypted with TLS encryption and both the server identity and the client identity will be authenticated. Only one of this field or serverVerification should be set."},"serverVerification":{"$ref":"#/$defs/ServerVerification","description":"If this field is set, the communication will be encrypted with TLS encryption and the server identity will be authenticated. Only one of this field or serverAndClientVerification should be set."}},"type":"object"},"PrivateConnectivity":{"description":"Private Connectivity","properties":{"privateConnection":{"description":"Required. A reference to a private connection resource. Format: `projects/{project}/locations/{location}/privateConnections/{name}`","type":"string"}},"type":"object"},"SalesforceMarketingCloudProfile":{"description":"Profile for connecting to a Salesforce Marketing Cloud source.","properties":{"oauthClientCredentials":{"$ref":"#/$defs/OauthClientCredentials","description":"Required. Input only. Credentials for authenticating with the Salesforce Marketing Cloud API.","writeOnly":true},"subdomain":{"description":"Required. Subdomain for the Salesforce Marketing Cloud connection. Example: if your specific endpoint is `https://{your-specific-subdomain}.rest.marketingcloudapis.com/`, the subdomain is `{your-specific-subdomain}`. Must be 1-63 characters, start and end with an alphanumeric character, and contain only lowercase letters, numbers, and hyphens (-).","type":"string"}},"type":"object"},"SalesforceProfile":{"description":"Profile for connecting to a Salesforce source.","properties":{"domain":{"description":"Required. Domain endpoint for the Salesforce connection.","type":"string"},"oauth2ClientCredentials":{"$ref":"#/$defs/Oauth2ClientCredentials","description":"Connected app authentication. Only one of this field or userCredentials should be set."},"userCredentials":{"$ref":"#/$defs/UserCredentials","deprecated":true,"description":"Deprecated: Salesforce is retiring Username-Password authentication. Use `oauth2_client_credentials` instead. Only one of this field or oauth2ClientCredentials should be set."}},"type":"object"},"Secret":{"description":"A confidential piece of information where the actual value is either directly specified in the message as a raw string or stored in GCP secret manager.","properties":{"rawValue":{"description":"Optional. Input only. The actual raw value of the secret as plain text. Only one of this field or secretVersion should be set.","type":"string","writeOnly":true},"secretVersion":{"description":"Optional. A Secret Manager resource name storing the actual value of the secret. Supported formats: * projects/{project}/locations/{location}/secrets/{secret}/versions/{version} * projects/{project}/secrets/{secret}/versions/{version}. Only one of this field or rawValue should be set.","type":"string"}},"type":"object"},"ServerAndClientVerification":{"description":"Message represents the option where Datastream will enforce the encryption and authenticate the server identity as well as the client identity. ca_certificate, client_certificate and client_key must be set if user selects this option.","properties":{"caCertificate":{"description":"Required. Input only. PEM-encoded server root CA certificate.","type":"string","writeOnly":true},"clientCertificate":{"description":"Required. Input only. PEM-encoded certificate used by the source database to authenticate the client identity (i.e., the Datastream's identity). This certificate is signed by either a root certificate trusted by the server or one or more intermediate certificates (which is stored with the leaf certificate) to link the this certificate to the trusted root certificate.","type":"string","writeOnly":true},"clientKey":{"description":"Optional. Input only. PEM-encoded private key associated with the client certificate. This value will be used during the SSL/TLS handshake, allowing the PostgreSQL server to authenticate the client's identity, i.e. identity of the Datastream.","type":"string","writeOnly":true},"serverCertificateHostname":{"description":"Optional. The hostname mentioned in the Subject or SAN extension of the server certificate. If this field is not provided, the hostname in the server certificate is not validated.","type":"string"}},"type":"object"},"ServerVerification":{"description":"Message represents the option where Datastream will enforce the encryption and authenticate the server identity. ca_certificate must be set if user selects this option.","properties":{"caCertificate":{"description":"Required. Input only. PEM-encoded server root CA certificate.","type":"string","writeOnly":true},"serverCertificateHostname":{"description":"Optional. The hostname mentioned in the Subject or SAN extension of the server certificate. If this field is not provided, the hostname in the server certificate is not validated.","type":"string"}},"type":"object"},"ServiceNowProfile":{"description":"Profile for connecting to a ServiceNow source.","properties":{"instance":{"description":"Required. The instance of the ServiceNow account. This is the `<instance>` part of the URL `https://<instance>.service-now.com`.","type":"string"},"oauthClientCredentials":{"$ref":"#/$defs/OauthClientCredentials","description":"Credentials for authenticating with the ServiceNow API. Only one of this field or userPasswordCredentials should be set."},"userPasswordCredentials":{"$ref":"#/$defs/UserPasswordCredentials","description":"User-password authentication. Only one of this field or oauthClientCredentials should be set."}},"type":"object"},"SpannerProfile":{"description":"Profile for connecting to a Spanner source.","properties":{"database":{"description":"Required. Immutable. Cloud Spanner database resource. This field is immutable. Must be in the format: projects/{project}/instances/{instance}/databases/{database_id}.","type":"string","x-google-immutable":true},"host":{"description":"Optional. The Spanner endpoint to connect to. Defaults to the global endpoint (https://spanner.googleapis.com). Must be in the format: https://spanner.{region}.rep.googleapis.com.","type":"string"}},"type":"object"},"SqlServerProfile":{"description":"Profile for connecting to a SQLServer source.","properties":{"database":{"description":"Required. Database for the SQLServer connection.","type":"string"},"hostname":{"description":"Required. Hostname for the SQLServer connection.","type":"string"},"password":{"description":"Optional. Password for the SQLServer connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"port":{"description":"Port for the SQLServer connection, default value is 1433.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the SQLServer connection password. Mutually exclusive with the `password` field.","type":"string"},"sslConfig":{"$ref":"#/$defs/SqlServerSslConfig","description":"Optional. SSL configuration for the SQLServer connection."},"username":{"description":"Required. Username for the SQLServer connection.","type":"string"}},"type":"object"},"SqlServerSslConfig":{"description":"SQL Server SSL configuration information.","properties":{"basicEncryption":{"$ref":"#/$defs/BasicEncryption","description":"If set, Datastream will enforce encryption without authenticating server identity. Server certificates will be trusted by default. Only one of the following fields should be set: this field, encryptionNotEnforced, encryptionAndServerValidation."},"encryptionAndServerValidation":{"$ref":"#/$defs/EncryptionAndServerValidation","description":"If set, Datastream will enforce encryption and authenticate server identity. Only one of the following fields should be set: this field, encryptionNotEnforced, basicEncryption."},"encryptionNotEnforced":{"$ref":"#/$defs/EncryptionNotEnforced","description":"If set, Datastream will not enforce encryption. If the DB server mandates encryption, then connection will be encrypted but server identity will not be authenticated. Only one of the following fields should be set: this field, basicEncryption, encryptionAndServerValidation."}},"type":"object"},"SrvConnectionFormat":{"description":"Srv connection format.","properties":{},"type":"object"},"StandardConnectionFormat":{"description":"Standard connection format.","properties":{"directConnection":{"deprecated":true,"description":"Optional. Deprecated: Use the `additional_options` map to specify the `directConnection` parameter instead. For example: `additional_options = {\"directConnection\": \"true\"}`. Specifies whether the client connects directly to the host[:port] in the connection URI.","type":"boolean"}},"type":"object"},"StaticServiceIpConnectivity":{"description":"Static IP address connectivity. Used when the source database is configured to allow incoming connections from the Datastream public IP addresses for the region specified in the connection profile.","properties":{},"type":"object"},"UserCredentials":{"description":"Deprecated: Salesforce is retiring Username-Password authentication. Use `Oauth2ClientCredentials` instead.","properties":{"password":{"description":"Optional. Password for the Salesforce connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the Salesforce connection's password. Mutually exclusive with the `password` field.","type":"string"},"secretManagerStoredSecurityToken":{"description":"Optional. A reference to a Secret Manager resource name storing the Salesforce connection's security token. Mutually exclusive with the `security_token` field.","type":"string"},"securityToken":{"description":"Optional. Security token for the Salesforce connection. Mutually exclusive with the `secret_manager_stored_security_token` field.","type":"string"},"username":{"description":"Required. Username for the Salesforce connection.","type":"string"}},"type":"object"},"UserPasswordCredentials":{"description":"User-password credentials.","properties":{"password":{"$ref":"#/$defs/Secret","description":"Required. Password for the connection."},"username":{"description":"Required. Username for the connection.","type":"string"}},"type":"object"},"WorkdayProfile":{"description":"Profile for connecting to a Workday source.","properties":{"host":{"description":"Required. Host for the Workday connection. Must be a valid hostname (e.g., `wd3-impl-services1.workday.com`).","type":"string"},"oauthRefreshTokenCredentials":{"$ref":"#/$defs/OauthRefreshTokenCredentials","description":"Required. Credentials for authenticating with the Workday API. OAuth Refresh Token credentials for authenticating with the Workday API."},"tenant":{"description":"Required. Tenant for the Workday connection (e.g., `google12`).","type":"string"}},"type":"object"}},"description":"Response message for listing connection profiles.","properties":{"connectionProfiles":{"description":"List of connection profiles.","items":{"$ref":"#/$defs/ConnectionProfile"},"type":"array"},"nextPageToken":{"description":"A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.","type":"string"},"unreachable":{"description":"Locations that could not be reached.","items":{"type":"string"},"type":"array"}},"type":"object"}after
{"$defs":{"AppendOnly":{"description":"AppendOnly mode defines that all changes to a table will be written to the destination table.","properties":{},"type":"object"},"AvroFileFormat":{"description":"AVRO file format configuration.","properties":{},"type":"object"},"BackfillAllStrategy":{"description":"Backfill strategy to automatically backfill the Stream's objects. Specific objects can be excluded.","properties":{"mongodbExcludedObjects":{"$ref":"#/$defs/MongodbCluster","description":"MongoDB data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"mysqlExcludedObjects":{"$ref":"#/$defs/MysqlRdbms","description":"MySQL data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"oracleExcludedObjects":{"$ref":"#/$defs/OracleRdbms","description":"Oracle data source objects to avoid backfilling. Only one of the following fields should be set: this field, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"postgresqlExcludedObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"PostgreSQL data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"saasExcludedObjects":{"$ref":"#/$defs/SourceCatalog","description":"Source catalog data source objects to avoid backfilling. This is mainly used to represent SaaS applications objects. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects."},"salesforceExcludedObjects":{"$ref":"#/$defs/SalesforceOrg","description":"Salesforce data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"spannerExcludedObjects":{"$ref":"#/$defs/SpannerDatabase","description":"Spanner data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, saasExcludedObjects."},"sqlServerExcludedObjects":{"$ref":"#/$defs/SqlServerRdbms","description":"SQLServer data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."}},"type":"object"},"BackfillNoneStrategy":{"description":"Backfill strategy to disable automatic backfill for the Stream's objects.","properties":{},"type":"object"},"BigQueryClustering":{"description":"BigQuery clustering configuration.","properties":{"columns":{"description":"Required. Column names to set as clustering columns.","items":{"type":"string"},"type":"array"}},"type":"object"},"BigQueryDestinationConfig":{"description":"BigQuery destination configuration","properties":{"appendOnly":{"$ref":"#/$defs/AppendOnly","description":"Append only mode. Only one of this field or merge should be set."},"blmtConfig":{"$ref":"#/$defs/BlmtConfig","description":"Optional. Big Lake Managed Tables (BLMT) configuration."},"dataFreshness":{"description":"The guaranteed data freshness (in seconds) when querying tables created by the stream. Editing this field will only affect new tables created in the future, but existing tables will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost.","format":"google-duration","type":"string"},"merge":{"$ref":"#/$defs/Merge","description":"The standard mode. Only one of this field or appendOnly should be set."},"singleTargetDataset":{"$ref":"#/$defs/SingleTargetDataset","description":"Single destination dataset. Only one of this field or sourceHierarchyDatasets should be set."},"sourceHierarchyDatasets":{"$ref":"#/$defs/SourceHierarchyDatasets","description":"Source hierarchy datasets. Only one of this field or singleTargetDataset should be set."}},"type":"object"},"BigQueryPartitioning":{"description":"BigQuery partitioning configuration.","properties":{"ingestionTimePartition":{"$ref":"#/$defs/IngestionTimePartition","description":"Ingestion time partitioning. Only one of the following fields should be set: this field, integerRangePartition, timeUnitPartition."},"integerRangePartition":{"$ref":"#/$defs/IntegerRangePartition","description":"Integer range partitioning. Only one of the following fields should be set: this field, timeUnitPartition, ingestionTimePartition."},"requirePartitionFilter":{"description":"Optional. If true, queries over the table require a partition filter.","type":"boolean"},"timeUnitPartition":{"$ref":"#/$defs/TimeUnitPartition","description":"Time unit column partitioning. Only one of the following fields should be set: this field, integerRangePartition, ingestionTimePartition."}},"type":"object"},"BinaryLogParser":{"description":"Configuration to use Binary Log Parser CDC technique.","properties":{"logFileDirectories":{"$ref":"#/$defs/LogFileDirectories","description":"Use Oracle directories. Only one of this field or oracleAsmLogFileAccess should be set."},"oracleAsmLogFileAccess":{"$ref":"#/$defs/OracleAsmLogFileAccess","description":"Use Oracle ASM. Only one of this field or logFileDirectories should be set."}},"type":"object"},"BinaryLogPosition":{"description":"Use Binary log position based replication.","properties":{},"type":"object"},"BlmtConfig":{"description":"The configuration for BLMT.","properties":{"bucket":{"description":"Required. The Cloud Storage bucket name.","type":"string"},"connectionName":{"description":"Required. The bigquery connection. Format: `{project}.{location}.{name}`","type":"string"},"fileFormat":{"description":"Required. The file format.","enum":["FILE_FORMAT_UNSPECIFIED","PARQUET"],"type":"string","x-google-enum-descriptions":["Default value.","Parquet file format."]},"rootPath":{"description":"The root path inside the Cloud Storage bucket.","type":"string"},"tableFormat":{"description":"Required. The table format.","enum":["TABLE_FORMAT_UNSPECIFIED","ICEBERG"],"type":"string","x-google-enum-descriptions":["Default value.","Iceberg table format."]}},"type":"object"},"CustomizationRule":{"description":"A customization rule to apply to a set of objects.","properties":{"bigqueryClustering":{"$ref":"#/$defs/BigQueryClustering","description":"BigQuery clustering rule. Only one of this field or bigqueryPartitioning should be set."},"bigqueryPartitioning":{"$ref":"#/$defs/BigQueryPartitioning","description":"BigQuery partitioning rule. Only one of this field or bigqueryClustering should be set."}},"type":"object"},"DatasetTemplate":{"description":"Dataset template used for dynamic dataset creation.","properties":{"datasetIdPrefix":{"description":"If supplied, every created dataset will have its name prefixed by the provided value. The prefix and name will be separated by an underscore. i.e. <prefix>_<dataset_name>.","type":"string"},"kmsKeyName":{"description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information.","type":"string"},"location":{"description":"Required. The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.","type":"string"}},"type":"object"},"DataverseSourceConfig":{"description":"Configuration for syncing data from a Dataverse source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"DestinationConfig":{"description":"The configuration of the stream destination.","properties":{"bigqueryDestinationConfig":{"$ref":"#/$defs/BigQueryDestinationConfig","description":"BigQuery destination configuration. Only one of this field or gcsDestinationConfig should be set."},"destinationConnectionProfile":{"description":"Required. Destination connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`","type":"string"},"gcsDestinationConfig":{"$ref":"#/$defs/GcsDestinationConfig","description":"A configuration for how data should be loaded to Cloud Storage. Only one of this field or bigqueryDestinationConfig should be set."}},"type":"object"},"DropLargeObjects":{"description":"Configuration to drop large object values.","properties":{},"type":"object"},"Error":{"description":"Represent a user-facing Error.","properties":{"details":{"additionalProperties":{"type":"string"},"description":"Additional information about the error.","type":"object"},"errorTime":{"description":"The time when the error occurred.","format":"date-time","type":"string"},"errorUuid":{"description":"A unique identifier for this specific error, allowing it to be traced throughout the system in logs and API responses.","type":"string"},"message":{"description":"A message containing more information about the error that occurred.","type":"string"},"reason":{"description":"A title that explains the reason for the error.","type":"string"}},"type":"object"},"GcsDestinationConfig":{"description":"Google Cloud Storage destination configuration","properties":{"avroFileFormat":{"$ref":"#/$defs/AvroFileFormat","description":"AVRO file format configuration. Only one of this field or jsonFileFormat should be set."},"fileRotationInterval":{"description":"The maximum duration for which new events are added before a file is closed and a new file is created. Values within the range of 15-60 seconds are allowed.","format":"google-duration","type":"string"},"fileRotationMb":{"description":"The maximum file size to be saved in the bucket.","format":"int32","type":"integer"},"jsonFileFormat":{"$ref":"#/$defs/JsonFileFormat","description":"JSON file format configuration. Only one of this field or avroFileFormat should be set."},"path":{"description":"Path inside the Cloud Storage bucket to write data to.","type":"string"}},"type":"object"},"Gtid":{"description":"Use GTID based replication.","properties":{},"type":"object"},"IngestionTimePartition":{"description":"Ingestion time partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#ingestion_time","properties":{"partitioningTimeGranularity":{"description":"Optional. Partition granularity","enum":["PARTITIONING_TIME_GRANULARITY_UNSPECIFIED","PARTITIONING_TIME_GRANULARITY_HOUR","PARTITIONING_TIME_GRANULARITY_DAY","PARTITIONING_TIME_GRANULARITY_MONTH","PARTITIONING_TIME_GRANULARITY_YEAR"],"type":"string","x-google-enum-descriptions":["Unspecified partitioing interval.","Hourly partitioning.","Daily partitioning.","Monthly partitioning.","Yearly partitioning."]}},"type":"object"},"IntegerRangePartition":{"description":"Integer range partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#integer_range","properties":{"column":{"description":"Required. The partitioning column.","type":"string"},"end":{"description":"Required. The ending value for range partitioning (exclusive).","format":"int64","type":"string"},"interval":{"description":"Required. The interval of each range within the partition.","format":"int64","type":"string"},"start":{"description":"Required. The starting value for range partitioning (inclusive).","format":"int64","type":"string"}},"type":"object"},"JsonFileFormat":{"description":"JSON file format configuration.","properties":{"compression":{"description":"Compression of the loaded JSON file.","enum":["JSON_COMPRESSION_UNSPECIFIED","NO_COMPRESSION","GZIP"],"type":"string","x-google-enum-descriptions":["Unspecified json file compression.","Do not compress JSON file.","Gzip compression."]},"schemaFileFormat":{"description":"The schema file format along JSON data files.","enum":["SCHEMA_FILE_FORMAT_UNSPECIFIED","NO_SCHEMA_FILE","AVRO_SCHEMA_FILE"],"type":"string","x-google-enum-descriptions":["Unspecified schema file format.","Do not attach schema file.","Avro schema format."]}},"type":"object"},"LogFileDirectories":{"description":"Configuration to specify the Oracle directories to access the log files.","properties":{"archivedLogDirectory":{"description":"Required. Oracle directory for archived logs.","type":"string"},"onlineLogDirectory":{"description":"Required. Oracle directory for online logs.","type":"string"}},"type":"object"},"LogMiner":{"description":"Configuration to use LogMiner CDC method.","properties":{},"type":"object"},"Merge":{"description":"Merge mode defines that all changes to a table will be merged at the destination table.","properties":{},"type":"object"},"MongodbCluster":{"description":"MongoDB Cluster structure.","properties":{"databases":{"description":"MongoDB databases in the cluster.","items":{"$ref":"#/$defs/MongodbDatabase"},"type":"array"}},"type":"object"},"MongodbCollection":{"description":"MongoDB Collection.","properties":{"collection":{"description":"The collection name.","type":"string"},"fields":{"description":"Fields in the collection.","items":{"$ref":"#/$defs/MongodbField"},"type":"array"}},"type":"object"},"MongodbDatabase":{"description":"MongoDB Database.","properties":{"collections":{"description":"Collections in the database.","items":{"$ref":"#/$defs/MongodbCollection"},"type":"array"},"database":{"description":"The database name.","type":"string"}},"type":"object"},"MongodbField":{"description":"MongoDB Field.","properties":{"field":{"description":"The field name.","type":"string"}},"type":"object"},"MongodbObjectIdentifier":{"description":"MongoDB data source object identifier.","properties":{"collection":{"description":"Required. The collection name.","type":"string"},"database":{"description":"Required. The database name.","type":"string"}},"type":"object"},"MongodbSourceConfig":{"description":"Configuration for syncing data from a MongoDB source.","properties":{"excludeObjects":{"$ref":"#/$defs/MongodbCluster","description":"The MongoDB collections to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/MongodbCluster","description":"The MongoDB collections to include in the stream."},"jsonMode":{"description":"Optional. MongoDB JSON mode to use for the stream.","enum":["MONGODB_JSON_MODE_UNSPECIFIED","STRICT","CANONICAL"],"type":"string","x-google-enum-descriptions":["Unspecified JSON mode.","Strict JSON mode.","Canonical JSON mode."]},"maxConcurrentBackfillTasks":{"description":"Optional. Maximum number of concurrent backfill tasks. The number should be non-negative and less than or equal to 50. If not set (or set to 0), the system's default value is used","format":"int32","type":"integer"}},"type":"object"},"MysqlColumn":{"description":"MySQL Column.","properties":{"collation":{"description":"Column collation.","type":"string"},"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The MySQL data type. Full data types list can be found here: https://dev.mysql.com/doc/refman/8.0/en/data-types.html","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"MysqlDatabase":{"description":"MySQL database.","properties":{"database":{"description":"The database name.","type":"string"},"mysqlTables":{"description":"Tables in the database.","items":{"$ref":"#/$defs/MysqlTable"},"type":"array"}},"type":"object"},"MysqlObjectIdentifier":{"description":"Mysql data source object identifier.","properties":{"database":{"description":"Required. The database name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"MysqlRdbms":{"description":"MySQL database structure","properties":{"mysqlDatabases":{"description":"Mysql databases on the server","items":{"$ref":"#/$defs/MysqlDatabase"},"type":"array"}},"type":"object"},"MysqlSourceConfig":{"description":"Configuration for syncing data from a MySQL source.","properties":{"binaryLogPosition":{"$ref":"#/$defs/BinaryLogPosition","description":"Use Binary log position based replication. Only one of this field or gtid should be set."},"excludeObjects":{"$ref":"#/$defs/MysqlRdbms","description":"The MySQL objects to exclude from the stream."},"gtid":{"$ref":"#/$defs/Gtid","description":"Use GTID based replication. Only one of this field or binaryLogPosition should be set."},"includeObjects":{"$ref":"#/$defs/MysqlRdbms","description":"The MySQL objects to retrieve from the source."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Maximum number of concurrent CDC tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"}},"type":"object"},"MysqlTable":{"description":"MySQL table.","properties":{"mysqlColumns":{"description":"MySQL columns in the database. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/MysqlColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"ObjectFilter":{"description":"Object filter to apply the rules to.","properties":{"sourceObjectIdentifier":{"$ref":"#/$defs/SourceObjectIdentifier","description":"Specific source object identifier."}},"type":"object"},"OracleAsmLogFileAccess":{"description":"Configuration to use Oracle ASM to access the log files.","properties":{},"type":"object"},"OracleColumn":{"description":"Oracle Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The Oracle data type.","type":"string"},"encoding":{"description":"Column encoding.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"OracleObjectIdentifier":{"description":"Oracle data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"OracleRdbms":{"description":"Oracle database structure.","properties":{"oracleSchemas":{"description":"Oracle schemas/databases in the database server.","items":{"$ref":"#/$defs/OracleSchema"},"type":"array"}},"type":"object"},"OracleSchema":{"description":"Oracle schema.","properties":{"oracleTables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/OracleTable"},"type":"array"},"schema":{"description":"The schema name.","type":"string"}},"type":"object"},"OracleSourceConfig":{"description":"Configuration for syncing data from an Oracle source.","properties":{"binaryLogParser":{"$ref":"#/$defs/BinaryLogParser","description":"Use Binary Log Parser. Only one of this field or logMiner should be set."},"dropLargeObjects":{"$ref":"#/$defs/DropLargeObjects","description":"Drop large object values. Only one of this field or streamLargeObjects should be set."},"excludeObjects":{"$ref":"#/$defs/OracleRdbms","description":"The Oracle objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/OracleRdbms","description":"The Oracle objects to include in the stream."},"logMiner":{"$ref":"#/$defs/LogMiner","description":"Use LogMiner. Only one of this field or binaryLogParser should be set."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Maximum number of concurrent CDC tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.","format":"int32","type":"integer"},"streamLargeObjects":{"$ref":"#/$defs/StreamLargeObjects","description":"Stream large object values. Only one of this field or dropLargeObjects should be set."}},"type":"object"},"OracleTable":{"description":"Oracle table.","properties":{"oracleColumns":{"description":"Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/OracleColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"PostgresqlColumn":{"description":"PostgreSQL Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The PostgreSQL data type.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"PostgresqlObjectIdentifier":{"description":"PostgreSQL data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"PostgresqlRdbms":{"description":"PostgreSQL database structure.","properties":{"postgresqlSchemas":{"description":"PostgreSQL schemas in the database server.","items":{"$ref":"#/$defs/PostgresqlSchema"},"type":"array"}},"type":"object"},"PostgresqlSchema":{"description":"PostgreSQL schema.","properties":{"postgresqlTables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/PostgresqlTable"},"type":"array"},"schema":{"description":"The schema name.","type":"string"}},"type":"object"},"PostgresqlSourceConfig":{"description":"Configuration for syncing data from a PostgreSQL source.","properties":{"excludeObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"The PostgreSQL objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"The PostgreSQL objects to include in the stream."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"},"publication":{"description":"Required. The name of the publication that includes the set of all tables that are defined in the stream's include_objects.","type":"string"},"replicationSlot":{"description":"Required. Immutable. The name of the logical replication slot that's configured with the pgoutput plugin.","type":"string","x-google-immutable":true}},"type":"object"},"PostgresqlTable":{"description":"PostgreSQL table.","properties":{"postgresqlColumns":{"description":"PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/PostgresqlColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"RuleSet":{"description":"A set of rules to apply to a set of objects.","properties":{"customizationRules":{"description":"Required. List of customization rules to apply.","items":{"$ref":"#/$defs/CustomizationRule"},"type":"array"},"objectFilter":{"$ref":"#/$defs/ObjectFilter","description":"Required. Object filter to apply the customization rules to."}},"type":"object"},"SalesforceField":{"description":"Salesforce field.","properties":{"dataType":{"description":"The data type.","type":"string"},"name":{"description":"The field name.","type":"string"},"nillable":{"description":"Indicates whether the field can accept nil values.","type":"boolean"}},"type":"object"},"SalesforceMarketingCloudSourceConfig":{"description":"Configuration for syncing data from a Salesforce Marketing Cloud source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"fullRefreshPollingInterval":{"description":"Required. Specifies the polling interval for a full refresh of objects that do not support incremental sync. If not set, a default value of 24 hours is used. The duration must be between 1 and 24 hours, inclusive.","format":"google-duration","type":"string"},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"SalesforceObject":{"description":"Salesforce object.","properties":{"fields":{"description":"Salesforce fields. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SalesforceField"},"type":"array"},"objectName":{"description":"The object name.","type":"string"}},"type":"object"},"SalesforceObjectIdentifier":{"description":"Salesforce data source object identifier.","properties":{"objectName":{"description":"Required. The object name.","type":"string"}},"type":"object"},"SalesforceOrg":{"description":"Salesforce organization structure.","properties":{"objects":{"description":"Salesforce objects in the database server.","items":{"$ref":"#/$defs/SalesforceObject"},"type":"array"}},"type":"object"},"SalesforceSourceConfig":{"description":"Configuration for syncing data from a Salesforce source.","properties":{"excludeObjects":{"$ref":"#/$defs/SalesforceOrg","description":"The Salesforce objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SalesforceOrg","description":"The Salesforce objects to retrieve from the source."},"pollingInterval":{"description":"Required. Salesforce objects polling interval. The interval at which new changes will be polled for each object. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"ServiceNowSourceConfig":{"description":"Configuration for syncing data from a ServiceNow source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"SingleTargetDataset":{"description":"A single target dataset to which all data will be streamed.","properties":{"datasetId":{"description":"The dataset ID of the target dataset. DatasetIds allowed characters: https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets#datasetreference.","type":"string"}},"type":"object"},"SourceCatalog":{"description":"Source catalog.","properties":{"objects":{"description":"Optional. Source objects in the catalog.","items":{"$ref":"#/$defs/SourceObject"},"type":"array"}},"type":"object"},"SourceConfig":{"description":"The configuration of the stream source.","properties":{"dataverseSourceConfig":{"$ref":"#/$defs/DataverseSourceConfig","description":"Dataverse data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"mongodbSourceConfig":{"$ref":"#/$defs/MongodbSourceConfig","description":"MongoDB data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"mysqlSourceConfig":{"$ref":"#/$defs/MysqlSourceConfig","description":"MySQL data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"oracleSourceConfig":{"$ref":"#/$defs/OracleSourceConfig","description":"Oracle data source configuration. Only one of the following fields should be set: this field, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"postgresqlSourceConfig":{"$ref":"#/$defs/PostgresqlSourceConfig","description":"PostgreSQL data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"salesforceMarketingCloudSourceConfig":{"$ref":"#/$defs/SalesforceMarketingCloudSourceConfig","description":"Salesforce Marketing Cloud data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"salesforceSourceConfig":{"$ref":"#/$defs/SalesforceSourceConfig","description":"Salesforce data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"serviceNowSourceConfig":{"$ref":"#/$defs/ServiceNowSourceConfig","description":"ServiceNow data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, workdaySourceConfig."},"sourceConnectionProfile":{"description":"Required. Source connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`","type":"string"},"spannerSourceConfig":{"$ref":"#/$defs/SpannerSourceConfig","description":"Spanner data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"sqlServerSourceConfig":{"$ref":"#/$defs/SqlServerSourceConfig","description":"SQLServer data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"workdaySourceConfig":{"$ref":"#/$defs/WorkdaySourceConfig","description":"Optional. Workday data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig."}},"type":"object"},"SourceHierarchyDatasets":{"description":"Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy.","properties":{"datasetTemplate":{"$ref":"#/$defs/DatasetTemplate","description":"The dataset template to use for dynamic dataset creation."},"projectId":{"description":"Optional. The project id of the BigQuery dataset. If not specified, the project will be inferred from the stream resource.","type":"string"}},"type":"object"},"SourceObject":{"description":"Source object.","properties":{"objectName":{"description":"Required. The object name.","type":"string"},"properties":{"description":"Optional. Source properties. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SourceProperty"},"type":"array"}},"type":"object"},"SourceObjectIdentifier":{"description":"Represents an identifier of an object in the data source.","properties":{"mongodbIdentifier":{"$ref":"#/$defs/MongodbObjectIdentifier","description":"MongoDB data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, spannerIdentifier."},"mysqlIdentifier":{"$ref":"#/$defs/MysqlObjectIdentifier","description":"Mysql data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"oracleIdentifier":{"$ref":"#/$defs/OracleObjectIdentifier","description":"Oracle data source object identifier. Only one of the following fields should be set: this field, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"postgresqlIdentifier":{"$ref":"#/$defs/PostgresqlObjectIdentifier","description":"PostgreSQL data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"salesforceIdentifier":{"$ref":"#/$defs/SalesforceObjectIdentifier","description":"Salesforce data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, mongodbIdentifier, spannerIdentifier."},"spannerIdentifier":{"$ref":"#/$defs/SpannerObjectIdentifier","description":"Spanner data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier."},"sqlServerIdentifier":{"$ref":"#/$defs/SqlServerObjectIdentifier","description":"SQLServer data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."}},"type":"object"},"SourceProperty":{"description":"Source property.","properties":{"primaryKey":{"description":"Optional. Whether or not the property is a primary key.","type":"boolean"},"properties":{"description":"Optional. Source properties. When specified, it means that the current property contains nested properties of its own. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SourceProperty"},"type":"array"},"propertyName":{"description":"Required. The property name.","type":"string"}},"type":"object"},"SpannerColumn":{"description":"Spanner column.","properties":{"column":{"description":"Required. The column name.","type":"string"},"dataType":{"description":"Optional. Spanner data type.","type":"string"},"isPrimaryKey":{"description":"Optional. Whether or not the column is a primary key.","type":"boolean"},"ordinalPosition":{"description":"Optional. The ordinal position of the column in the table.","format":"int64","type":"string"}},"type":"object"},"SpannerDatabase":{"description":"Spanner database structure.","properties":{"schemas":{"description":"Optional. Spanner schemas in the database.","items":{"$ref":"#/$defs/SpannerSchema"},"type":"array"}},"type":"object"},"SpannerObjectIdentifier":{"description":"Spanner data source object identifier.","properties":{"schema":{"description":"Optional. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"SpannerSchema":{"description":"Spanner schema.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"tables":{"description":"Optional. Spanner tables in the schema.","items":{"$ref":"#/$defs/SpannerTable"},"type":"array"}},"type":"object"},"SpannerSourceConfig":{"description":"Configuration for syncing data from a Spanner source.","properties":{"backfillDataBoostEnabled":{"description":"Optional. Whether to use Data Boost for Spanner backfills. Defaults to false if not set.","type":"boolean"},"changeStreamName":{"description":"Required. Immutable. The change stream name to use for the stream.","type":"string","x-google-immutable":true},"excludeObjects":{"$r…before
{"$defs":{"AppendOnly":{"description":"AppendOnly mode defines that all changes to a table will be written to the destination table.","properties":{},"type":"object"},"AvroFileFormat":{"description":"AVRO file format configuration.","properties":{},"type":"object"},"BackfillAllStrategy":{"description":"Backfill strategy to automatically backfill the Stream's objects. Specific objects can be excluded.","properties":{"mongodbExcludedObjects":{"$ref":"#/$defs/MongodbCluster","description":"MongoDB data source objects to avoid backfilling"},"mysqlExcludedObjects":{"$ref":"#/$defs/MysqlRdbms","description":"MySQL data source objects to avoid backfilling."},"oracleExcludedObjects":{"$ref":"#/$defs/OracleRdbms","description":"Oracle data source objects to avoid backfilling."},"postgresqlExcludedObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"PostgreSQL data source objects to avoid backfilling."},"saasExcludedObjects":{"$ref":"#/$defs/SourceCatalog","description":"Source catalog data source objects to avoid backfilling. This is mainly used to represent SaaS applications objects."},"salesforceExcludedObjects":{"$ref":"#/$defs/SalesforceOrg","description":"Salesforce data source objects to avoid backfilling"},"spannerExcludedObjects":{"$ref":"#/$defs/SpannerDatabase","description":"Spanner data source objects to avoid backfilling."},"sqlServerExcludedObjects":{"$ref":"#/$defs/SqlServerRdbms","description":"SQLServer data source objects to avoid backfilling"}},"type":"object"},"BackfillNoneStrategy":{"description":"Backfill strategy to disable automatic backfill for the Stream's objects.","properties":{},"type":"object"},"BigQueryClustering":{"description":"BigQuery clustering configuration.","properties":{"columns":{"description":"Required. Column names to set as clustering columns.","items":{"type":"string"},"type":"array"}},"type":"object"},"BigQueryDestinationConfig":{"description":"BigQuery destination configuration","properties":{"appendOnly":{"$ref":"#/$defs/AppendOnly","description":"Append only mode"},"blmtConfig":{"$ref":"#/$defs/BlmtConfig","description":"Optional. Big Lake Managed Tables (BLMT) configuration."},"dataFreshness":{"description":"The guaranteed data freshness (in seconds) when querying tables created by the stream. Editing this field will only affect new tables created in the future, but existing tables will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost.","format":"google-duration","type":"string"},"merge":{"$ref":"#/$defs/Merge","description":"The standard mode"},"singleTargetDataset":{"$ref":"#/$defs/SingleTargetDataset","description":"Single destination dataset."},"sourceHierarchyDatasets":{"$ref":"#/$defs/SourceHierarchyDatasets","description":"Source hierarchy datasets."}},"type":"object"},"BigQueryPartitioning":{"description":"BigQuery partitioning configuration.","properties":{"ingestionTimePartition":{"$ref":"#/$defs/IngestionTimePartition","description":"Ingestion time partitioning."},"integerRangePartition":{"$ref":"#/$defs/IntegerRangePartition","description":"Integer range partitioning."},"requirePartitionFilter":{"description":"Optional. If true, queries over the table require a partition filter.","type":"boolean"},"timeUnitPartition":{"$ref":"#/$defs/TimeUnitPartition","description":"Time unit column partitioning."}},"type":"object"},"BinaryLogParser":{"description":"Configuration to use Binary Log Parser CDC technique.","properties":{"logFileDirectories":{"$ref":"#/$defs/LogFileDirectories","description":"Use Oracle directories."},"oracleAsmLogFileAccess":{"$ref":"#/$defs/OracleAsmLogFileAccess","description":"Use Oracle ASM."}},"type":"object"},"BinaryLogPosition":{"description":"Use Binary log position based replication.","properties":{},"type":"object"},"BlmtConfig":{"description":"The configuration for BLMT.","properties":{"bucket":{"description":"Required. The Cloud Storage bucket name.","type":"string"},"connectionName":{"description":"Required. The bigquery connection. Format: `{project}.{location}.{name}`","type":"string"},"fileFormat":{"description":"Required. The file format.","enum":["FILE_FORMAT_UNSPECIFIED","PARQUET"],"type":"string","x-google-enum-descriptions":["Default value.","Parquet file format."]},"rootPath":{"description":"The root path inside the Cloud Storage bucket.","type":"string"},"tableFormat":{"description":"Required. The table format.","enum":["TABLE_FORMAT_UNSPECIFIED","ICEBERG"],"type":"string","x-google-enum-descriptions":["Default value.","Iceberg table format."]}},"type":"object"},"CustomizationRule":{"description":"A customization rule to apply to a set of objects.","properties":{"bigqueryClustering":{"$ref":"#/$defs/BigQueryClustering","description":"BigQuery clustering rule."},"bigqueryPartitioning":{"$ref":"#/$defs/BigQueryPartitioning","description":"BigQuery partitioning rule."}},"type":"object"},"DatasetTemplate":{"description":"Dataset template used for dynamic dataset creation.","properties":{"datasetIdPrefix":{"description":"If supplied, every created dataset will have its name prefixed by the provided value. The prefix and name will be separated by an underscore. i.e. _.","type":"string"},"kmsKeyName":{"description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information.","type":"string"},"location":{"description":"Required. The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.","type":"string"}},"type":"object"},"DataverseSourceConfig":{"description":"Configuration for syncing data from a Dataverse source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"DestinationConfig":{"description":"The configuration of the stream destination.","properties":{"bigqueryDestinationConfig":{"$ref":"#/$defs/BigQueryDestinationConfig","description":"BigQuery destination configuration."},"destinationConnectionProfile":{"description":"Required. Destination connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`","type":"string"},"gcsDestinationConfig":{"$ref":"#/$defs/GcsDestinationConfig","description":"A configuration for how data should be loaded to Cloud Storage."}},"type":"object"},"DropLargeObjects":{"description":"Configuration to drop large object values.","properties":{},"type":"object"},"Error":{"description":"Represent a user-facing Error.","properties":{"details":{"additionalProperties":{"type":"string"},"description":"Additional information about the error.","type":"object"},"errorTime":{"description":"The time when the error occurred.","format":"date-time","type":"string"},"errorUuid":{"description":"A unique identifier for this specific error, allowing it to be traced throughout the system in logs and API responses.","type":"string"},"message":{"description":"A message containing more information about the error that occurred.","type":"string"},"reason":{"description":"A title that explains the reason for the error.","type":"string"}},"type":"object"},"GcsDestinationConfig":{"description":"Google Cloud Storage destination configuration","properties":{"avroFileFormat":{"$ref":"#/$defs/AvroFileFormat","description":"AVRO file format configuration."},"fileRotationInterval":{"description":"The maximum duration for which new events are added before a file is closed and a new file is created. Values within the range of 15-60 seconds are allowed.","format":"google-duration","type":"string"},"fileRotationMb":{"description":"The maximum file size to be saved in the bucket.","format":"int32","type":"integer"},"jsonFileFormat":{"$ref":"#/$defs/JsonFileFormat","description":"JSON file format configuration."},"path":{"description":"Path inside the Cloud Storage bucket to write data to.","type":"string"}},"type":"object"},"Gtid":{"description":"Use GTID based replication.","properties":{},"type":"object"},"IngestionTimePartition":{"description":"Ingestion time partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#ingestion_time","properties":{"partitioningTimeGranularity":{"description":"Optional. Partition granularity","enum":["PARTITIONING_TIME_GRANULARITY_UNSPECIFIED","PARTITIONING_TIME_GRANULARITY_HOUR","PARTITIONING_TIME_GRANULARITY_DAY","PARTITIONING_TIME_GRANULARITY_MONTH","PARTITIONING_TIME_GRANULARITY_YEAR"],"type":"string","x-google-enum-descriptions":["Unspecified partitioing interval.","Hourly partitioning.","Daily partitioning.","Monthly partitioning.","Yearly partitioning."]}},"type":"object"},"IntegerRangePartition":{"description":"Integer range partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#integer_range","properties":{"column":{"description":"Required. The partitioning column.","type":"string"},"end":{"description":"Required. The ending value for range partitioning (exclusive).","format":"int64","type":"string"},"interval":{"description":"Required. The interval of each range within the partition.","format":"int64","type":"string"},"start":{"description":"Required. The starting value for range partitioning (inclusive).","format":"int64","type":"string"}},"type":"object"},"JsonFileFormat":{"description":"JSON file format configuration.","properties":{"compression":{"description":"Compression of the loaded JSON file.","enum":["JSON_COMPRESSION_UNSPECIFIED","NO_COMPRESSION","GZIP"],"type":"string","x-google-enum-descriptions":["Unspecified json file compression.","Do not compress JSON file.","Gzip compression."]},"schemaFileFormat":{"description":"The schema file format along JSON data files.","enum":["SCHEMA_FILE_FORMAT_UNSPECIFIED","NO_SCHEMA_FILE","AVRO_SCHEMA_FILE"],"type":"string","x-google-enum-descriptions":["Unspecified schema file format.","Do not attach schema file.","Avro schema format."]}},"type":"object"},"LogFileDirectories":{"description":"Configuration to specify the Oracle directories to access the log files.","properties":{"archivedLogDirectory":{"description":"Required. Oracle directory for archived logs.","type":"string"},"onlineLogDirectory":{"description":"Required. Oracle directory for online logs.","type":"string"}},"type":"object"},"LogMiner":{"description":"Configuration to use LogMiner CDC method.","properties":{},"type":"object"},"Merge":{"description":"Merge mode defines that all changes to a table will be merged at the destination table.","properties":{},"type":"object"},"MongodbCluster":{"description":"MongoDB Cluster structure.","properties":{"databases":{"description":"MongoDB databases in the cluster.","items":{"$ref":"#/$defs/MongodbDatabase"},"type":"array"}},"type":"object"},"MongodbCollection":{"description":"MongoDB Collection.","properties":{"collection":{"description":"The collection name.","type":"string"},"fields":{"description":"Fields in the collection.","items":{"$ref":"#/$defs/MongodbField"},"type":"array"}},"type":"object"},"MongodbDatabase":{"description":"MongoDB Database.","properties":{"collections":{"description":"Collections in the database.","items":{"$ref":"#/$defs/MongodbCollection"},"type":"array"},"database":{"description":"The database name.","type":"string"}},"type":"object"},"MongodbField":{"description":"MongoDB Field.","properties":{"field":{"description":"The field name.","type":"string"}},"type":"object"},"MongodbObjectIdentifier":{"description":"MongoDB data source object identifier.","properties":{"collection":{"description":"Required. The collection name.","type":"string"},"database":{"description":"Required. The database name.","type":"string"}},"type":"object"},"MongodbSourceConfig":{"description":"Configuration for syncing data from a MongoDB source.","properties":{"excludeObjects":{"$ref":"#/$defs/MongodbCluster","description":"The MongoDB collections to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/MongodbCluster","description":"The MongoDB collections to include in the stream."},"jsonMode":{"description":"Optional. MongoDB JSON mode to use for the stream.","enum":["MONGODB_JSON_MODE_UNSPECIFIED","STRICT","CANONICAL"],"type":"string","x-google-enum-descriptions":["Unspecified JSON mode.","Strict JSON mode.","Canonical JSON mode."]},"maxConcurrentBackfillTasks":{"description":"Optional. Maximum number of concurrent backfill tasks. The number should be non-negative and less than or equal to 50. If not set (or set to 0), the system's default value is used","format":"int32","type":"integer"}},"type":"object"},"MysqlColumn":{"description":"MySQL Column.","properties":{"collation":{"description":"Column collation.","type":"string"},"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The MySQL data type. Full data types list can be found here: https://dev.mysql.com/doc/refman/8.0/en/data-types.html","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"MysqlDatabase":{"description":"MySQL database.","properties":{"database":{"description":"The database name.","type":"string"},"mysqlTables":{"description":"Tables in the database.","items":{"$ref":"#/$defs/MysqlTable"},"type":"array"}},"type":"object"},"MysqlObjectIdentifier":{"description":"Mysql data source object identifier.","properties":{"database":{"description":"Required. The database name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"MysqlRdbms":{"description":"MySQL database structure","properties":{"mysqlDatabases":{"description":"Mysql databases on the server","items":{"$ref":"#/$defs/MysqlDatabase"},"type":"array"}},"type":"object"},"MysqlSourceConfig":{"description":"Configuration for syncing data from a MySQL source.","properties":{"binaryLogPosition":{"$ref":"#/$defs/BinaryLogPosition","description":"Use Binary log position based replication."},"excludeObjects":{"$ref":"#/$defs/MysqlRdbms","description":"The MySQL objects to exclude from the stream."},"gtid":{"$ref":"#/$defs/Gtid","description":"Use GTID based replication."},"includeObjects":{"$ref":"#/$defs/MysqlRdbms","description":"The MySQL objects to retrieve from the source."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Maximum number of concurrent CDC tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"}},"type":"object"},"MysqlTable":{"description":"MySQL table.","properties":{"mysqlColumns":{"description":"MySQL columns in the database. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/MysqlColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"ObjectFilter":{"description":"Object filter to apply the rules to.","properties":{"sourceObjectIdentifier":{"$ref":"#/$defs/SourceObjectIdentifier","description":"Specific source object identifier."}},"type":"object"},"OracleAsmLogFileAccess":{"description":"Configuration to use Oracle ASM to access the log files.","properties":{},"type":"object"},"OracleColumn":{"description":"Oracle Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The Oracle data type.","type":"string"},"encoding":{"description":"Column encoding.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"OracleObjectIdentifier":{"description":"Oracle data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"OracleRdbms":{"description":"Oracle database structure.","properties":{"oracleSchemas":{"description":"Oracle schemas/databases in the database server.","items":{"$ref":"#/$defs/OracleSchema"},"type":"array"}},"type":"object"},"OracleSchema":{"description":"Oracle schema.","properties":{"oracleTables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/OracleTable"},"type":"array"},"schema":{"description":"The schema name.","type":"string"}},"type":"object"},"OracleSourceConfig":{"description":"Configuration for syncing data from an Oracle source.","properties":{"binaryLogParser":{"$ref":"#/$defs/BinaryLogParser","description":"Use Binary Log Parser."},"dropLargeObjects":{"$ref":"#/$defs/DropLargeObjects","description":"Drop large object values."},"excludeObjects":{"$ref":"#/$defs/OracleRdbms","description":"The Oracle objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/OracleRdbms","description":"The Oracle objects to include in the stream."},"logMiner":{"$ref":"#/$defs/LogMiner","description":"Use LogMiner."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Maximum number of concurrent CDC tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.","format":"int32","type":"integer"},"streamLargeObjects":{"$ref":"#/$defs/StreamLargeObjects","description":"Stream large object values."}},"type":"object"},"OracleTable":{"description":"Oracle table.","properties":{"oracleColumns":{"description":"Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/OracleColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"PostgresqlColumn":{"description":"PostgreSQL Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The PostgreSQL data type.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"PostgresqlObjectIdentifier":{"description":"PostgreSQL data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"PostgresqlRdbms":{"description":"PostgreSQL database structure.","properties":{"postgresqlSchemas":{"description":"PostgreSQL schemas in the database server.","items":{"$ref":"#/$defs/PostgresqlSchema"},"type":"array"}},"type":"object"},"PostgresqlSchema":{"description":"PostgreSQL schema.","properties":{"postgresqlTables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/PostgresqlTable"},"type":"array"},"schema":{"description":"The schema name.","type":"string"}},"type":"object"},"PostgresqlSourceConfig":{"description":"Configuration for syncing data from a PostgreSQL source.","properties":{"excludeObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"The PostgreSQL objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"The PostgreSQL objects to include in the stream."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"},"publication":{"description":"Required. The name of the publication that includes the set of all tables that are defined in the stream's include_objects.","type":"string"},"replicationSlot":{"description":"Required. Immutable. The name of the logical replication slot that's configured with the pgoutput plugin.","type":"string","x-google-immutable":true}},"type":"object"},"PostgresqlTable":{"description":"PostgreSQL table.","properties":{"postgresqlColumns":{"description":"PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/PostgresqlColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"RuleSet":{"description":"A set of rules to apply to a set of objects.","properties":{"customizationRules":{"description":"Required. List of customization rules to apply.","items":{"$ref":"#/$defs/CustomizationRule"},"type":"array"},"objectFilter":{"$ref":"#/$defs/ObjectFilter","description":"Required. Object filter to apply the customization rules to."}},"type":"object"},"SalesforceField":{"description":"Salesforce field.","properties":{"dataType":{"description":"The data type.","type":"string"},"name":{"description":"The field name.","type":"string"},"nillable":{"description":"Indicates whether the field can accept nil values.","type":"boolean"}},"type":"object"},"SalesforceMarketingCloudSourceConfig":{"description":"Configuration for syncing data from a Salesforce Marketing Cloud source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"fullRefreshPollingInterval":{"description":"Required. Specifies the polling interval for a full refresh of objects that do not support incremental sync. If not set, a default value of 24 hours is used. The duration must be between 1 and 24 hours, inclusive.","format":"google-duration","type":"string"},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"SalesforceObject":{"description":"Salesforce object.","properties":{"fields":{"description":"Salesforce fields. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SalesforceField"},"type":"array"},"objectName":{"description":"The object name.","type":"string"}},"type":"object"},"SalesforceObjectIdentifier":{"description":"Salesforce data source object identifier.","properties":{"objectName":{"description":"Required. The object name.","type":"string"}},"type":"object"},"SalesforceOrg":{"description":"Salesforce organization structure.","properties":{"objects":{"description":"Salesforce objects in the database server.","items":{"$ref":"#/$defs/SalesforceObject"},"type":"array"}},"type":"object"},"SalesforceSourceConfig":{"description":"Configuration for syncing data from a Salesforce source.","properties":{"excludeObjects":{"$ref":"#/$defs/SalesforceOrg","description":"The Salesforce objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SalesforceOrg","description":"The Salesforce objects to retrieve from the source."},"pollingInterval":{"description":"Required. Salesforce objects polling interval. The interval at which new changes will be polled for each object. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"ServiceNowSourceConfig":{"description":"Configuration for syncing data from a ServiceNow source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"SingleTargetDataset":{"description":"A single target dataset to which all data will be streamed.","properties":{"datasetId":{"description":"The dataset ID of the target dataset. DatasetIds allowed characters: https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets#datasetreference.","type":"string"}},"type":"object"},"SourceCatalog":{"description":"Source catalog.","properties":{"objects":{"description":"Optional. Source objects in the catalog.","items":{"$ref":"#/$defs/SourceObject"},"type":"array"}},"type":"object"},"SourceConfig":{"description":"The configuration of the stream source.","properties":{"dataverseSourceConfig":{"$ref":"#/$defs/DataverseSourceConfig","description":"Dataverse data source configuration."},"mongodbSourceConfig":{"$ref":"#/$defs/MongodbSourceConfig","description":"MongoDB data source configuration."},"mysqlSourceConfig":{"$ref":"#/$defs/MysqlSourceConfig","description":"MySQL data source configuration."},"oracleSourceConfig":{"$ref":"#/$defs/OracleSourceConfig","description":"Oracle data source configuration."},"postgresqlSourceConfig":{"$ref":"#/$defs/PostgresqlSourceConfig","description":"PostgreSQL data source configuration."},"salesforceMarketingCloudSourceConfig":{"$ref":"#/$defs/SalesforceMarketingCloudSourceConfig","description":"Salesforce Marketing Cloud data source configuration."},"salesforceSourceConfig":{"$ref":"#/$defs/SalesforceSourceConfig","description":"Salesforce data source configuration."},"serviceNowSourceConfig":{"$ref":"#/$defs/ServiceNowSourceConfig","description":"ServiceNow data source configuration."},"sourceConnectionProfile":{"description":"Required. Source connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`","type":"string"},"spannerSourceConfig":{"$ref":"#/$defs/SpannerSourceConfig","description":"Spanner data source configuration."},"sqlServerSourceConfig":{"$ref":"#/$defs/SqlServerSourceConfig","description":"SQLServer data source configuration."},"workdaySourceConfig":{"$ref":"#/$defs/WorkdaySourceConfig","description":"Optional. Workday data source configuration."}},"type":"object"},"SourceHierarchyDatasets":{"description":"Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy.","properties":{"datasetTemplate":{"$ref":"#/$defs/DatasetTemplate","description":"The dataset template to use for dynamic dataset creation."},"projectId":{"description":"Optional. The project id of the BigQuery dataset. If not specified, the project will be inferred from the stream resource.","type":"string"}},"type":"object"},"SourceObject":{"description":"Source object.","properties":{"objectName":{"description":"Required. The object name.","type":"string"},"properties":{"description":"Optional. Source properties. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SourceProperty"},"type":"array"}},"type":"object"},"SourceObjectIdentifier":{"description":"Represents an identifier of an object in the data source.","properties":{"mongodbIdentifier":{"$ref":"#/$defs/MongodbObjectIdentifier","description":"MongoDB data source object identifier."},"mysqlIdentifier":{"$ref":"#/$defs/MysqlObjectIdentifier","description":"Mysql data source object identifier."},"oracleIdentifier":{"$ref":"#/$defs/OracleObjectIdentifier","description":"Oracle data source object identifier."},"postgresqlIdentifier":{"$ref":"#/$defs/PostgresqlObjectIdentifier","description":"PostgreSQL data source object identifier."},"salesforceIdentifier":{"$ref":"#/$defs/SalesforceObjectIdentifier","description":"Salesforce data source object identifier."},"spannerIdentifier":{"$ref":"#/$defs/SpannerObjectIdentifier","description":"Spanner data source object identifier."},"sqlServerIdentifier":{"$ref":"#/$defs/SqlServerObjectIdentifier","description":"SQLServer data source object identifier."}},"type":"object"},"SourceProperty":{"description":"Source property.","properties":{"primaryKey":{"description":"Optional. Whether or not the property is a primary key.","type":"boolean"},"properties":{"description":"Optional. Source properties. When specified, it means that the current property contains nested properties of its own. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SourceProperty"},"type":"array"},"propertyName":{"description":"Required. The property name.","type":"string"}},"type":"object"},"SpannerColumn":{"description":"Spanner column.","properties":{"column":{"description":"Required. The column name.","type":"string"},"dataType":{"description":"Optional. Spanner data type.","type":"string"},"isPrimaryKey":{"description":"Optional. Whether or not the column is a primary key.","type":"boolean"},"ordinalPosition":{"description":"Optional. The ordinal position of the column in the table.","format":"int64","type":"string"}},"type":"object"},"SpannerDatabase":{"description":"Spanner database structure.","properties":{"schemas":{"description":"Optional. Spanner schemas in the database.","items":{"$ref":"#/$defs/SpannerSchema"},"type":"array"}},"type":"object"},"SpannerObjectIdentifier":{"description":"Spanner data source object identifier.","properties":{"schema":{"description":"Optional. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"SpannerSchema":{"description":"Spanner schema.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"tables":{"description":"Optional. Spanner tables in the schema.","items":{"$ref":"#/$defs/SpannerTable"},"type":"array"}},"type":"object"},"SpannerSourceConfig":{"description":"Configuration for syncing data from a Spanner source.","properties":{"backfillDataBoostEnabled":{"description":"Optional. Whether to use Data Boost for Spanner backfills. Defaults to false if not set.","type":"boolean"},"changeStreamName":{"description":"Required. Immutable. The change stream name to use for the stream.","type":"string","x-google-immutable":true},"excludeObjects":{"$ref":"#/$defs/SpannerDatabase","description":"Optional. The Spanner objects to avoid retrieving. If some objects are both included and excluded, an error will be thrown."},"fgacRole":{"description":"Optional. The FGAC role to use for the stream.","type":"string"},"includeObjects":{"$ref":"#/$defs/SpannerDatabase","description":"Optional. The Spanner objects to retrieve from the data source. If some objects are both included and excluded, an error will be thrown."},"maxConcurrentBackfillTasks":{"description":"Optional. Maximum number of concurrent backfill tasks.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Optional. Maximum number of concurrent CDC tasks.","format":"int32","type":"integer"},"spannerRpcPriority":{"description":"Optional. The RPC priority to use for the stream.","enum":["SPANNER_RPC_PRIORITY_UNSPECIFIED","LOW","MEDIUM","HIGH"],"type":"string","x-google-enum-descriptions":["Unspecified RPC priority.","Low RPC priority.","Medium RPC priority.","High RPC priority."]}},"type":"object"},"SpannerTable":{"description":"Spanner table.","properties":{"columns":{"description":"Optional. Spanner columns in the table.","items":{"$ref":"#/$defs/SpannerColumn"},"type":"array"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"SqlServerChangeTables":{"description":"Configuration to use Change Tables CDC read method.","properties":{},"type":"object"},"SqlServerColumn":{"description":"SQLServer Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The SQLServer data type.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"SqlServerObjectIdentifier":{"description":"SQLServer data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"SqlServerRdbms":{"description":"SQLServer database structure.","properties":{"schemas":{"description":"SQLServer schemas in the database server.","items":{"$ref":"#/$defs/SqlServerSchema"},"type":"array"}},"type":"object"},"SqlServerSchema":{"description":"SQLServer schema.","properties":{"schema":{"description":"The schema name.","type":"string"},"tables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/SqlServerTable"},"type":"array"}},"type":"object"},"SqlServerSourceConfig":{"description":"Configuration for syncing data from a SQLServer source.","properties":{"changeTables":{"$ref":"#/$defs/SqlServerChangeTables","description":"CDC reader reads from change tables."},"excludeObjects":{"$ref":"#/$defs/SqlServerRdbms","description":"The SQLServer objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SqlServerRdbms","description":"The SQLServer objects to include in the stream."},"maxConcurrentBackfillTasks":{"description":"Max concurrent backfill tasks.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Max concurrent CDC tasks.","format":"int32","type":"integer"},"transactionLogs":{"$ref":"#/$defs/SqlServerTransactionLogs","description":"CDC reader reads from transaction logs."}},"type":"object"},"SqlServerTable":{"description":"SQLServer table.","properties":{"columns":{"description":"SQLServer columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/SqlServerColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"SqlServerTransactionLogs":{"description":"Configuration to use Transaction Logs CDC read method.","properties":{},"type":"object"},"StreamLargeObjects":{"description":"Configuration to stream large object values.","properties":{},"type":"object"},"TimeUnitPartition":{"description":"Time unit column partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#date_timestamp_partitioned_tables","properties":{"column":{"description":"Required. The partitioning column.","type":"string"},"partitioningTimeGranularity":{"description":"Optional. Partition granularity.","enum":["PARTITIONING_TIME_GRANULARITY_UNSPECIFIED","PARTITIONING_TIME_GRANULARITY_HOUR","PARTITIONING_TIME_GRANULARITY_DAY","PARTITIONING_TIME_GRANULARITY_MONTH","PARTITIONING_TIME_GRANULARITY_YEAR"],"type":"string","x-google-enum-descriptions":["Unspecified partitioing interval.","Hourly partitioning.","Daily partitioning.","Monthly partitioning.","Yearly partitioning."]}},"type":"object"},"WorkdaySourceConfig":{"description":"Configuration for syncing data from a Workday source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"}},"description":"A resource representing streaming data from a source to a destination.","properties":{"backfillAll":{"$ref":"#/$defs/BackfillAllStrategy","description":"Automatically backfill objects included in the stream source configuration. Specific objects can be excluded."},"backfillNone":{"$ref":"#/$defs/BackfillNoneStrategy","description":"Do not automatically backfill any objects."},"createTime":{"description":"Output only. The creation time of the stream.","format":"date-time","readOnly":true,"type":"string"},"customerManagedEncryptionKey":{"description":"Immutable. A reference to a KMS encryption key. If provided, it will be used to encrypt the data. If left blank, data will be encrypted using an internal Stream-specific encryption key provisioned through KMS.","type":"string","x-google-immutable":true},"destinationConfig":{"$ref":"#/$defs/DestinationConfig","description":"Required. Destination connection profile configuration."},"displayName":{"description":"Required. Display name.","type":"string"},"errors":{"description":"Output only. Errors on the Stream.","items":{"$ref":"#/$defs/Error"},"readOnly":true,"type":"array"},"labels":{"additionalProperties":{"type":"string"},"description":"Labels.","type":"object"},"lastRecoveryTime":{"description":"Output only. If the stream was recovered, the time of the last recovery. Note: This field is currently experimental.","format":"date-time","readOnly":true,"type":"string"},"name":{"description":"Output only. Identifier. The stream's name.","readOnly":true,"type":"string","x-google-identifier":true},"ruleSets":{"description":"Optional. Rule sets to apply to the stream.","items":{"$ref":"#/$defs/RuleSet"},"type":"array"},"satisfiesPzi":{"description":"Output only. Reserved for future use.","readOnly":true,"type":"boolean"},"satisfiesPzs":{"description":"Output only. Reserved for future use.","readOnly":true,"type":"boolean"},"sourceConfig":{"$ref":"#/$defs/SourceConfig","description":"Required. Source connection profile configuration."},"state":{"d…after
{"$defs":{"AppendOnly":{"description":"AppendOnly mode defines that all changes to a table will be written to the destination table.","properties":{},"type":"object"},"AvroFileFormat":{"description":"AVRO file format configuration.","properties":{},"type":"object"},"BackfillAllStrategy":{"description":"Backfill strategy to automatically backfill the Stream's objects. Specific objects can be excluded.","properties":{"mongodbExcludedObjects":{"$ref":"#/$defs/MongodbCluster","description":"MongoDB data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"mysqlExcludedObjects":{"$ref":"#/$defs/MysqlRdbms","description":"MySQL data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"oracleExcludedObjects":{"$ref":"#/$defs/OracleRdbms","description":"Oracle data source objects to avoid backfilling. Only one of the following fields should be set: this field, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"postgresqlExcludedObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"PostgreSQL data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"saasExcludedObjects":{"$ref":"#/$defs/SourceCatalog","description":"Source catalog data source objects to avoid backfilling. This is mainly used to represent SaaS applications objects. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects."},"salesforceExcludedObjects":{"$ref":"#/$defs/SalesforceOrg","description":"Salesforce data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"spannerExcludedObjects":{"$ref":"#/$defs/SpannerDatabase","description":"Spanner data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, saasExcludedObjects."},"sqlServerExcludedObjects":{"$ref":"#/$defs/SqlServerRdbms","description":"SQLServer data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."}},"type":"object"},"BackfillNoneStrategy":{"description":"Backfill strategy to disable automatic backfill for the Stream's objects.","properties":{},"type":"object"},"BigQueryClustering":{"description":"BigQuery clustering configuration.","properties":{"columns":{"description":"Required. Column names to set as clustering columns.","items":{"type":"string"},"type":"array"}},"type":"object"},"BigQueryDestinationConfig":{"description":"BigQuery destination configuration","properties":{"appendOnly":{"$ref":"#/$defs/AppendOnly","description":"Append only mode. Only one of this field or merge should be set."},"blmtConfig":{"$ref":"#/$defs/BlmtConfig","description":"Optional. Big Lake Managed Tables (BLMT) configuration."},"dataFreshness":{"description":"The guaranteed data freshness (in seconds) when querying tables created by the stream. Editing this field will only affect new tables created in the future, but existing tables will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost.","format":"google-duration","type":"string"},"merge":{"$ref":"#/$defs/Merge","description":"The standard mode. Only one of this field or appendOnly should be set."},"singleTargetDataset":{"$ref":"#/$defs/SingleTargetDataset","description":"Single destination dataset. Only one of this field or sourceHierarchyDatasets should be set."},"sourceHierarchyDatasets":{"$ref":"#/$defs/SourceHierarchyDatasets","description":"Source hierarchy datasets. Only one of this field or singleTargetDataset should be set."}},"type":"object"},"BigQueryPartitioning":{"description":"BigQuery partitioning configuration.","properties":{"ingestionTimePartition":{"$ref":"#/$defs/IngestionTimePartition","description":"Ingestion time partitioning. Only one of the following fields should be set: this field, integerRangePartition, timeUnitPartition."},"integerRangePartition":{"$ref":"#/$defs/IntegerRangePartition","description":"Integer range partitioning. Only one of the following fields should be set: this field, timeUnitPartition, ingestionTimePartition."},"requirePartitionFilter":{"description":"Optional. If true, queries over the table require a partition filter.","type":"boolean"},"timeUnitPartition":{"$ref":"#/$defs/TimeUnitPartition","description":"Time unit column partitioning. Only one of the following fields should be set: this field, integerRangePartition, ingestionTimePartition."}},"type":"object"},"BinaryLogParser":{"description":"Configuration to use Binary Log Parser CDC technique.","properties":{"logFileDirectories":{"$ref":"#/$defs/LogFileDirectories","description":"Use Oracle directories. Only one of this field or oracleAsmLogFileAccess should be set."},"oracleAsmLogFileAccess":{"$ref":"#/$defs/OracleAsmLogFileAccess","description":"Use Oracle ASM. Only one of this field or logFileDirectories should be set."}},"type":"object"},"BinaryLogPosition":{"description":"Use Binary log position based replication.","properties":{},"type":"object"},"BlmtConfig":{"description":"The configuration for BLMT.","properties":{"bucket":{"description":"Required. The Cloud Storage bucket name.","type":"string"},"connectionName":{"description":"Required. The bigquery connection. Format: `{project}.{location}.{name}`","type":"string"},"fileFormat":{"description":"Required. The file format.","enum":["FILE_FORMAT_UNSPECIFIED","PARQUET"],"type":"string","x-google-enum-descriptions":["Default value.","Parquet file format."]},"rootPath":{"description":"The root path inside the Cloud Storage bucket.","type":"string"},"tableFormat":{"description":"Required. The table format.","enum":["TABLE_FORMAT_UNSPECIFIED","ICEBERG"],"type":"string","x-google-enum-descriptions":["Default value.","Iceberg table format."]}},"type":"object"},"CustomizationRule":{"description":"A customization rule to apply to a set of objects.","properties":{"bigqueryClustering":{"$ref":"#/$defs/BigQueryClustering","description":"BigQuery clustering rule. Only one of this field or bigqueryPartitioning should be set."},"bigqueryPartitioning":{"$ref":"#/$defs/BigQueryPartitioning","description":"BigQuery partitioning rule. Only one of this field or bigqueryClustering should be set."}},"type":"object"},"DatasetTemplate":{"description":"Dataset template used for dynamic dataset creation.","properties":{"datasetIdPrefix":{"description":"If supplied, every created dataset will have its name prefixed by the provided value. The prefix and name will be separated by an underscore. i.e. _.","type":"string"},"kmsKeyName":{"description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information.","type":"string"},"location":{"description":"Required. The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.","type":"string"}},"type":"object"},"DataverseSourceConfig":{"description":"Configuration for syncing data from a Dataverse source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"DestinationConfig":{"description":"The configuration of the stream destination.","properties":{"bigqueryDestinationConfig":{"$ref":"#/$defs/BigQueryDestinationConfig","description":"BigQuery destination configuration. Only one of this field or gcsDestinationConfig should be set."},"destinationConnectionProfile":{"description":"Required. Destination connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`","type":"string"},"gcsDestinationConfig":{"$ref":"#/$defs/GcsDestinationConfig","description":"A configuration for how data should be loaded to Cloud Storage. Only one of this field or bigqueryDestinationConfig should be set."}},"type":"object"},"DropLargeObjects":{"description":"Configuration to drop large object values.","properties":{},"type":"object"},"Error":{"description":"Represent a user-facing Error.","properties":{"details":{"additionalProperties":{"type":"string"},"description":"Additional information about the error.","type":"object"},"errorTime":{"description":"The time when the error occurred.","format":"date-time","type":"string"},"errorUuid":{"description":"A unique identifier for this specific error, allowing it to be traced throughout the system in logs and API responses.","type":"string"},"message":{"description":"A message containing more information about the error that occurred.","type":"string"},"reason":{"description":"A title that explains the reason for the error.","type":"string"}},"type":"object"},"GcsDestinationConfig":{"description":"Google Cloud Storage destination configuration","properties":{"avroFileFormat":{"$ref":"#/$defs/AvroFileFormat","description":"AVRO file format configuration. Only one of this field or jsonFileFormat should be set."},"fileRotationInterval":{"description":"The maximum duration for which new events are added before a file is closed and a new file is created. Values within the range of 15-60 seconds are allowed.","format":"google-duration","type":"string"},"fileRotationMb":{"description":"The maximum file size to be saved in the bucket.","format":"int32","type":"integer"},"jsonFileFormat":{"$ref":"#/$defs/JsonFileFormat","description":"JSON file format configuration. Only one of this field or avroFileFormat should be set."},"path":{"description":"Path inside the Cloud Storage bucket to write data to.","type":"string"}},"type":"object"},"Gtid":{"description":"Use GTID based replication.","properties":{},"type":"object"},"IngestionTimePartition":{"description":"Ingestion time partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#ingestion_time","properties":{"partitioningTimeGranularity":{"description":"Optional. Partition granularity","enum":["PARTITIONING_TIME_GRANULARITY_UNSPECIFIED","PARTITIONING_TIME_GRANULARITY_HOUR","PARTITIONING_TIME_GRANULARITY_DAY","PARTITIONING_TIME_GRANULARITY_MONTH","PARTITIONING_TIME_GRANULARITY_YEAR"],"type":"string","x-google-enum-descriptions":["Unspecified partitioing interval.","Hourly partitioning.","Daily partitioning.","Monthly partitioning.","Yearly partitioning."]}},"type":"object"},"IntegerRangePartition":{"description":"Integer range partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#integer_range","properties":{"column":{"description":"Required. The partitioning column.","type":"string"},"end":{"description":"Required. The ending value for range partitioning (exclusive).","format":"int64","type":"string"},"interval":{"description":"Required. The interval of each range within the partition.","format":"int64","type":"string"},"start":{"description":"Required. The starting value for range partitioning (inclusive).","format":"int64","type":"string"}},"type":"object"},"JsonFileFormat":{"description":"JSON file format configuration.","properties":{"compression":{"description":"Compression of the loaded JSON file.","enum":["JSON_COMPRESSION_UNSPECIFIED","NO_COMPRESSION","GZIP"],"type":"string","x-google-enum-descriptions":["Unspecified json file compression.","Do not compress JSON file.","Gzip compression."]},"schemaFileFormat":{"description":"The schema file format along JSON data files.","enum":["SCHEMA_FILE_FORMAT_UNSPECIFIED","NO_SCHEMA_FILE","AVRO_SCHEMA_FILE"],"type":"string","x-google-enum-descriptions":["Unspecified schema file format.","Do not attach schema file.","Avro schema format."]}},"type":"object"},"LogFileDirectories":{"description":"Configuration to specify the Oracle directories to access the log files.","properties":{"archivedLogDirectory":{"description":"Required. Oracle directory for archived logs.","type":"string"},"onlineLogDirectory":{"description":"Required. Oracle directory for online logs.","type":"string"}},"type":"object"},"LogMiner":{"description":"Configuration to use LogMiner CDC method.","properties":{},"type":"object"},"Merge":{"description":"Merge mode defines that all changes to a table will be merged at the destination table.","properties":{},"type":"object"},"MongodbCluster":{"description":"MongoDB Cluster structure.","properties":{"databases":{"description":"MongoDB databases in the cluster.","items":{"$ref":"#/$defs/MongodbDatabase"},"type":"array"}},"type":"object"},"MongodbCollection":{"description":"MongoDB Collection.","properties":{"collection":{"description":"The collection name.","type":"string"},"fields":{"description":"Fields in the collection.","items":{"$ref":"#/$defs/MongodbField"},"type":"array"}},"type":"object"},"MongodbDatabase":{"description":"MongoDB Database.","properties":{"collections":{"description":"Collections in the database.","items":{"$ref":"#/$defs/MongodbCollection"},"type":"array"},"database":{"description":"The database name.","type":"string"}},"type":"object"},"MongodbField":{"description":"MongoDB Field.","properties":{"field":{"description":"The field name.","type":"string"}},"type":"object"},"MongodbObjectIdentifier":{"description":"MongoDB data source object identifier.","properties":{"collection":{"description":"Required. The collection name.","type":"string"},"database":{"description":"Required. The database name.","type":"string"}},"type":"object"},"MongodbSourceConfig":{"description":"Configuration for syncing data from a MongoDB source.","properties":{"excludeObjects":{"$ref":"#/$defs/MongodbCluster","description":"The MongoDB collections to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/MongodbCluster","description":"The MongoDB collections to include in the stream."},"jsonMode":{"description":"Optional. MongoDB JSON mode to use for the stream.","enum":["MONGODB_JSON_MODE_UNSPECIFIED","STRICT","CANONICAL"],"type":"string","x-google-enum-descriptions":["Unspecified JSON mode.","Strict JSON mode.","Canonical JSON mode."]},"maxConcurrentBackfillTasks":{"description":"Optional. Maximum number of concurrent backfill tasks. The number should be non-negative and less than or equal to 50. If not set (or set to 0), the system's default value is used","format":"int32","type":"integer"}},"type":"object"},"MysqlColumn":{"description":"MySQL Column.","properties":{"collation":{"description":"Column collation.","type":"string"},"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The MySQL data type. Full data types list can be found here: https://dev.mysql.com/doc/refman/8.0/en/data-types.html","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"MysqlDatabase":{"description":"MySQL database.","properties":{"database":{"description":"The database name.","type":"string"},"mysqlTables":{"description":"Tables in the database.","items":{"$ref":"#/$defs/MysqlTable"},"type":"array"}},"type":"object"},"MysqlObjectIdentifier":{"description":"Mysql data source object identifier.","properties":{"database":{"description":"Required. The database name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"MysqlRdbms":{"description":"MySQL database structure","properties":{"mysqlDatabases":{"description":"Mysql databases on the server","items":{"$ref":"#/$defs/MysqlDatabase"},"type":"array"}},"type":"object"},"MysqlSourceConfig":{"description":"Configuration for syncing data from a MySQL source.","properties":{"binaryLogPosition":{"$ref":"#/$defs/BinaryLogPosition","description":"Use Binary log position based replication. Only one of this field or gtid should be set."},"excludeObjects":{"$ref":"#/$defs/MysqlRdbms","description":"The MySQL objects to exclude from the stream."},"gtid":{"$ref":"#/$defs/Gtid","description":"Use GTID based replication. Only one of this field or binaryLogPosition should be set."},"includeObjects":{"$ref":"#/$defs/MysqlRdbms","description":"The MySQL objects to retrieve from the source."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Maximum number of concurrent CDC tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"}},"type":"object"},"MysqlTable":{"description":"MySQL table.","properties":{"mysqlColumns":{"description":"MySQL columns in the database. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/MysqlColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"ObjectFilter":{"description":"Object filter to apply the rules to.","properties":{"sourceObjectIdentifier":{"$ref":"#/$defs/SourceObjectIdentifier","description":"Specific source object identifier."}},"type":"object"},"OracleAsmLogFileAccess":{"description":"Configuration to use Oracle ASM to access the log files.","properties":{},"type":"object"},"OracleColumn":{"description":"Oracle Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The Oracle data type.","type":"string"},"encoding":{"description":"Column encoding.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"OracleObjectIdentifier":{"description":"Oracle data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"OracleRdbms":{"description":"Oracle database structure.","properties":{"oracleSchemas":{"description":"Oracle schemas/databases in the database server.","items":{"$ref":"#/$defs/OracleSchema"},"type":"array"}},"type":"object"},"OracleSchema":{"description":"Oracle schema.","properties":{"oracleTables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/OracleTable"},"type":"array"},"schema":{"description":"The schema name.","type":"string"}},"type":"object"},"OracleSourceConfig":{"description":"Configuration for syncing data from an Oracle source.","properties":{"binaryLogParser":{"$ref":"#/$defs/BinaryLogParser","description":"Use Binary Log Parser. Only one of this field or logMiner should be set."},"dropLargeObjects":{"$ref":"#/$defs/DropLargeObjects","description":"Drop large object values. Only one of this field or streamLargeObjects should be set."},"excludeObjects":{"$ref":"#/$defs/OracleRdbms","description":"The Oracle objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/OracleRdbms","description":"The Oracle objects to include in the stream."},"logMiner":{"$ref":"#/$defs/LogMiner","description":"Use LogMiner. Only one of this field or binaryLogParser should be set."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Maximum number of concurrent CDC tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.","format":"int32","type":"integer"},"streamLargeObjects":{"$ref":"#/$defs/StreamLargeObjects","description":"Stream large object values. Only one of this field or dropLargeObjects should be set."}},"type":"object"},"OracleTable":{"description":"Oracle table.","properties":{"oracleColumns":{"description":"Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/OracleColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"PostgresqlColumn":{"description":"PostgreSQL Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The PostgreSQL data type.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"PostgresqlObjectIdentifier":{"description":"PostgreSQL data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"PostgresqlRdbms":{"description":"PostgreSQL database structure.","properties":{"postgresqlSchemas":{"description":"PostgreSQL schemas in the database server.","items":{"$ref":"#/$defs/PostgresqlSchema"},"type":"array"}},"type":"object"},"PostgresqlSchema":{"description":"PostgreSQL schema.","properties":{"postgresqlTables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/PostgresqlTable"},"type":"array"},"schema":{"description":"The schema name.","type":"string"}},"type":"object"},"PostgresqlSourceConfig":{"description":"Configuration for syncing data from a PostgreSQL source.","properties":{"excludeObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"The PostgreSQL objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"The PostgreSQL objects to include in the stream."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"},"publication":{"description":"Required. The name of the publication that includes the set of all tables that are defined in the stream's include_objects.","type":"string"},"replicationSlot":{"description":"Required. Immutable. The name of the logical replication slot that's configured with the pgoutput plugin.","type":"string","x-google-immutable":true}},"type":"object"},"PostgresqlTable":{"description":"PostgreSQL table.","properties":{"postgresqlColumns":{"description":"PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/PostgresqlColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"RuleSet":{"description":"A set of rules to apply to a set of objects.","properties":{"customizationRules":{"description":"Required. List of customization rules to apply.","items":{"$ref":"#/$defs/CustomizationRule"},"type":"array"},"objectFilter":{"$ref":"#/$defs/ObjectFilter","description":"Required. Object filter to apply the customization rules to."}},"type":"object"},"SalesforceField":{"description":"Salesforce field.","properties":{"dataType":{"description":"The data type.","type":"string"},"name":{"description":"The field name.","type":"string"},"nillable":{"description":"Indicates whether the field can accept nil values.","type":"boolean"}},"type":"object"},"SalesforceMarketingCloudSourceConfig":{"description":"Configuration for syncing data from a Salesforce Marketing Cloud source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"fullRefreshPollingInterval":{"description":"Required. Specifies the polling interval for a full refresh of objects that do not support incremental sync. If not set, a default value of 24 hours is used. The duration must be between 1 and 24 hours, inclusive.","format":"google-duration","type":"string"},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"SalesforceObject":{"description":"Salesforce object.","properties":{"fields":{"description":"Salesforce fields. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SalesforceField"},"type":"array"},"objectName":{"description":"The object name.","type":"string"}},"type":"object"},"SalesforceObjectIdentifier":{"description":"Salesforce data source object identifier.","properties":{"objectName":{"description":"Required. The object name.","type":"string"}},"type":"object"},"SalesforceOrg":{"description":"Salesforce organization structure.","properties":{"objects":{"description":"Salesforce objects in the database server.","items":{"$ref":"#/$defs/SalesforceObject"},"type":"array"}},"type":"object"},"SalesforceSourceConfig":{"description":"Configuration for syncing data from a Salesforce source.","properties":{"excludeObjects":{"$ref":"#/$defs/SalesforceOrg","description":"The Salesforce objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SalesforceOrg","description":"The Salesforce objects to retrieve from the source."},"pollingInterval":{"description":"Required. Salesforce objects polling interval. The interval at which new changes will be polled for each object. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"ServiceNowSourceConfig":{"description":"Configuration for syncing data from a ServiceNow source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"SingleTargetDataset":{"description":"A single target dataset to which all data will be streamed.","properties":{"datasetId":{"description":"The dataset ID of the target dataset. DatasetIds allowed characters: https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets#datasetreference.","type":"string"}},"type":"object"},"SourceCatalog":{"description":"Source catalog.","properties":{"objects":{"description":"Optional. Source objects in the catalog.","items":{"$ref":"#/$defs/SourceObject"},"type":"array"}},"type":"object"},"SourceConfig":{"description":"The configuration of the stream source.","properties":{"dataverseSourceConfig":{"$ref":"#/$defs/DataverseSourceConfig","description":"Dataverse data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"mongodbSourceConfig":{"$ref":"#/$defs/MongodbSourceConfig","description":"MongoDB data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"mysqlSourceConfig":{"$ref":"#/$defs/MysqlSourceConfig","description":"MySQL data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"oracleSourceConfig":{"$ref":"#/$defs/OracleSourceConfig","description":"Oracle data source configuration. Only one of the following fields should be set: this field, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"postgresqlSourceConfig":{"$ref":"#/$defs/PostgresqlSourceConfig","description":"PostgreSQL data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"salesforceMarketingCloudSourceConfig":{"$ref":"#/$defs/SalesforceMarketingCloudSourceConfig","description":"Salesforce Marketing Cloud data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"salesforceSourceConfig":{"$ref":"#/$defs/SalesforceSourceConfig","description":"Salesforce data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"serviceNowSourceConfig":{"$ref":"#/$defs/ServiceNowSourceConfig","description":"ServiceNow data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, workdaySourceConfig."},"sourceConnectionProfile":{"description":"Required. Source connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`","type":"string"},"spannerSourceConfig":{"$ref":"#/$defs/SpannerSourceConfig","description":"Spanner data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"sqlServerSourceConfig":{"$ref":"#/$defs/SqlServerSourceConfig","description":"SQLServer data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"workdaySourceConfig":{"$ref":"#/$defs/WorkdaySourceConfig","description":"Optional. Workday data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig."}},"type":"object"},"SourceHierarchyDatasets":{"description":"Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy.","properties":{"datasetTemplate":{"$ref":"#/$defs/DatasetTemplate","description":"The dataset template to use for dynamic dataset creation."},"projectId":{"description":"Optional. The project id of the BigQuery dataset. If not specified, the project will be inferred from the stream resource.","type":"string"}},"type":"object"},"SourceObject":{"description":"Source object.","properties":{"objectName":{"description":"Required. The object name.","type":"string"},"properties":{"description":"Optional. Source properties. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SourceProperty"},"type":"array"}},"type":"object"},"SourceObjectIdentifier":{"description":"Represents an identifier of an object in the data source.","properties":{"mongodbIdentifier":{"$ref":"#/$defs/MongodbObjectIdentifier","description":"MongoDB data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, spannerIdentifier."},"mysqlIdentifier":{"$ref":"#/$defs/MysqlObjectIdentifier","description":"Mysql data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"oracleIdentifier":{"$ref":"#/$defs/OracleObjectIdentifier","description":"Oracle data source object identifier. Only one of the following fields should be set: this field, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"postgresqlIdentifier":{"$ref":"#/$defs/PostgresqlObjectIdentifier","description":"PostgreSQL data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"salesforceIdentifier":{"$ref":"#/$defs/SalesforceObjectIdentifier","description":"Salesforce data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, mongodbIdentifier, spannerIdentifier."},"spannerIdentifier":{"$ref":"#/$defs/SpannerObjectIdentifier","description":"Spanner data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier."},"sqlServerIdentifier":{"$ref":"#/$defs/SqlServerObjectIdentifier","description":"SQLServer data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."}},"type":"object"},"SourceProperty":{"description":"Source property.","properties":{"primaryKey":{"description":"Optional. Whether or not the property is a primary key.","type":"boolean"},"properties":{"description":"Optional. Source properties. When specified, it means that the current property contains nested properties of its own. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SourceProperty"},"type":"array"},"propertyName":{"description":"Required. The property name.","type":"string"}},"type":"object"},"SpannerColumn":{"description":"Spanner column.","properties":{"column":{"description":"Required. The column name.","type":"string"},"dataType":{"description":"Optional. Spanner data type.","type":"string"},"isPrimaryKey":{"description":"Optional. Whether or not the column is a primary key.","type":"boolean"},"ordinalPosition":{"description":"Optional. The ordinal position of the column in the table.","format":"int64","type":"string"}},"type":"object"},"SpannerDatabase":{"description":"Spanner database structure.","properties":{"schemas":{"description":"Optional. Spanner schemas in the database.","items":{"$ref":"#/$defs/SpannerSchema"},"type":"array"}},"type":"object"},"SpannerObjectIdentifier":{"description":"Spanner data source object identifier.","properties":{"schema":{"description":"Optional. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"SpannerSchema":{"description":"Spanner schema.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"tables":{"description":"Optional. Spanner tables in the schema.","items":{"$ref":"#/$defs/SpannerTable"},"type":"array"}},"type":"object"},"SpannerSourceConfig":{"description":"Configuration for syncing data from a Spanner source.","properties":{"backfillDataBoostEnabled":{"description":"Optional. Whether to use Data Boost for Spanner backfills. Defaults to false if not set.","type":"boolean"},"changeStreamName":{"description":"Required. Immutable. The change stream name to use for the stream.","type":"string","x-google-immutable":true},"excludeObjects":{"$ref":"#/$defs/SpannerDa…⟨238 unchanged words⟩ ":"#/$defs/IngestionTimePartition","description":"Ingestion time partitioning. Only one of the following fields should be set: this field, integerRangePartition, timeUnitPartition."},"integerRangePartition":{"$ref":"#/$defs/IntegerRangePartition","description":"Integer range partitioning. Only one of the following fields should be set: this field, timeUnitPartition, ingestionTimePartition."},"requirePartitionFilter":{"description":"Optional. If ⟨13 unchanged words⟩ "#/$defs/TimeUnitPartition","description":"Time unit column partitioning. Only one of the following fields should be set: this field, integerRangePartition, ingestionTimePartition."}},"type":"object"},"CustomizationRule" ⟨14 unchanged words⟩ ":"#/$defs/BigQueryClustering","description":"BigQuery clustering rule. Only one of this field or bigqueryPartitioning should be set."},"bigqueryPartitioning":{"$ref":"#/$defs/BigQueryPartitioning","description":"BigQuery partitioning rule. Only one of this field or bigqueryClustering should be set."}},"type":"object"},"Error" ⟨364 unchanged words⟩ ","description":"MongoDB data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, spannerIdentifier."},"mysqlIdentifier":{"$ref":"#/$defs/MysqlObjectIdentifier","description":"Mysql data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"oracleIdentifier":{"$ref":"#/$defs/OracleObjectIdentifier","description":"Oracle data source object identifier. Only one of the following fields should be set: this field, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"postgresqlIdentifier":{"$ref":"#/$defs/PostgresqlObjectIdentifier","description":"PostgreSQL data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"salesforceIdentifier":{"$ref":"#/$defs/SalesforceObjectIdentifier","description":"Salesforce data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, mongodbIdentifier, spannerIdentifier."},"spannerIdentifier":{"$ref":"#/$defs/SpannerObjectIdentifier","description":"Spanner data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier."},"sqlServerIdentifier":{"$ref":"#/$defs/SqlServerObjectIdentifier","description":"SQLServer data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."}},"type":"object"},"SpannerObjectIdentifier" ⟨241 unchanged words⟩
before
{"$defs":{"BasicEncryption":{"description":"Message to represent the option where Datastream will enforce encryption without authenticating server identity. Server certificates will be trusted by default.","properties":{},"type":"object"},"BigQueryProfile":{"description":"Profile for connecting to a BigQuery destination.","properties":{},"type":"object"},"ConnectionProfile":{"description":"A set of reusable connection configurations to be used as a source or destination for a stream.","properties":{"bigqueryProfile":{"$ref":"#/$defs/BigQueryProfile","description":"Profile for connecting to a BigQuery destination."},"createTime":{"description":"Output only. The create time of the resource.","format":"date-time","readOnly":true,"type":"string"},"dataverseProfile":{"$ref":"#/$defs/DataverseProfile","description":"Profile for connecting to a Dataverse source."},"displayName":{"description":"Required. Display name.","type":"string"},"forwardSshConnectivity":{"$ref":"#/$defs/ForwardSshTunnelConnectivity","description":"Forward SSH tunnel connectivity."},"gcsProfile":{"$ref":"#/$defs/GcsProfile","description":"Profile for connecting to a Cloud Storage destination."},"labels":{"additionalProperties":{"type":"string"},"description":"Labels.","type":"object"},"mongodbProfile":{"$ref":"#/$defs/MongodbProfile","description":"Profile for connecting to a MongoDB source."},"mysqlProfile":{"$ref":"#/$defs/MysqlProfile","description":"Profile for connecting to a MySQL source."},"name":{"description":"Output only. Identifier. The resource's name.","readOnly":true,"type":"string","x-google-identifier":true},"oracleProfile":{"$ref":"#/$defs/OracleProfile","description":"Profile for connecting to an Oracle source."},"postgresqlProfile":{"$ref":"#/$defs/PostgresqlProfile","description":"Profile for connecting to a PostgreSQL source."},"privateConnectivity":{"$ref":"#/$defs/PrivateConnectivity","description":"Private connectivity."},"salesforceMarketingCloudProfile":{"$ref":"#/$defs/SalesforceMarketingCloudProfile","description":"Profile for connecting to a Salesforce Marketing Cloud source."},"salesforceProfile":{"$ref":"#/$defs/SalesforceProfile","description":"Profile for connecting to a Salesforce source."},"satisfiesPzi":{"description":"Output only. Reserved for future use.","readOnly":true,"type":"boolean"},"satisfiesPzs":{"description":"Output only. Reserved for future use.","readOnly":true,"type":"boolean"},"serviceNowProfile":{"$ref":"#/$defs/ServiceNowProfile","description":"Profile for connecting to a ServiceNow source."},"spannerProfile":{"$ref":"#/$defs/SpannerProfile","description":"Profile for connecting to a Spanner source."},"sqlServerProfile":{"$ref":"#/$defs/SqlServerProfile","description":"Profile for connecting to a SQLServer source."},"staticServiceIpConnectivity":{"$ref":"#/$defs/StaticServiceIpConnectivity","description":"Static Service IP connectivity."},"updateTime":{"description":"Output only. The update time of the resource.","format":"date-time","readOnly":true,"type":"string"},"workdayProfile":{"$ref":"#/$defs/WorkdayProfile","description":"Optional. Profile for connecting to a Workday source."}},"type":"object"},"DataverseProfile":{"description":"Profile for connecting to a Dataverse source.","properties":{"environmentUrl":{"description":"Required. Environment URL of the Microsoft Dataverse instance. Example: `.crm.dynamics.com`","type":"string"},"oauthClientCredentials":{"$ref":"#/$defs/OauthClientCredentials","description":"Required. Credentials for authenticating with the Dataverse API."},"tenantId":{"description":"Required. Tenant id of the Microsoft Dataverse instance.","type":"string"}},"type":"object"},"EncryptionAndServerValidation":{"description":"Message to represent the option where Datastream will enforce encryption and authenticate server identity. ca_certificate must be set if user selects this option.","properties":{"caCertificate":{"description":"Optional. Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.","type":"string","writeOnly":true},"serverCertificateHostname":{"description":"Optional. The hostname mentioned in the Subject or SAN extension of the server certificate. This field is used for bypassing the hostname validation while verifying server certificate. This is required for scenarios where the host name that datastream connects to is different from the certificate's subject. This specifically happens for private connectivity. It could also happen when the customer provides a public IP in connection profile but the same is not present in the server certificate.","type":"string"}},"type":"object"},"EncryptionNotEnforced":{"description":"Message to represent the option where encryption is not enforced. An empty message right now to allow future extensibility.","properties":{},"type":"object"},"ForwardSshTunnelConnectivity":{"description":"Forward SSH Tunnel connectivity.","properties":{"hostname":{"description":"Required. Hostname for the SSH tunnel.","type":"string"},"password":{"description":"Input only. SSH password.","type":"string","writeOnly":true},"port":{"description":"Port for the SSH tunnel, default value is 22.","format":"int32","type":"integer"},"privateKey":{"description":"Input only. SSH private key.","type":"string","writeOnly":true},"username":{"description":"Required. Username for the SSH tunnel.","type":"string"}},"type":"object"},"GcsProfile":{"description":"Profile for connecting to a Cloud Storage destination.","properties":{"bucket":{"description":"Required. The Cloud Storage bucket name.","type":"string"},"rootPath":{"description":"Optional. The root path inside the Cloud Storage bucket.","type":"string"}},"type":"object"},"HostAddress":{"description":"A HostAddress represents a transport end point, which is the combination of an IP address or hostname and a port number.","properties":{"hostname":{"description":"Required. Hostname for the connection.","type":"string"},"port":{"description":"Optional. Port for the connection.","format":"int32","type":"integer"}},"type":"object"},"MongodbProfile":{"description":"Profile for connecting to a MongoDB source.","properties":{"additionalOptions":{"additionalProperties":{"type":"string"},"description":"Optional. Specifies additional options for the MongoDB connection. The options should be sent as key-value pairs, for example: `additional_options = {\"serverSelectionTimeoutMS\": \"10000\", \"directConnection\": \"true\"}`. Keys are case-sensitive and should match the official MongoDB connection string options: https://www.mongodb.com/docs/manual/reference/connection-string-options/ The server will not modify the values provided by the user.","type":"object"},"hostAddresses":{"description":"Required. List of host addresses for a MongoDB cluster. For SRV connection format, this list must contain exactly one DNS host without a port. For Standard connection format, this list must contain all the required hosts in the cluster with their respective ports.","items":{"$ref":"#/$defs/HostAddress"},"type":"array"},"password":{"description":"Optional. Password for the MongoDB connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"replicaSet":{"description":"Optional. Name of the replica set. Only needed for self hosted replica set type MongoDB cluster. For SRV connection format, this field must be empty. For Standard connection format, this field must be specified.","type":"string"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the SQLServer connection password. Mutually exclusive with the `password` field.","type":"string"},"srvConnectionFormat":{"$ref":"#/$defs/SrvConnectionFormat","description":"Srv connection format."},"sslConfig":{"$ref":"#/$defs/MongodbSslConfig","description":"Optional. SSL configuration for the MongoDB connection."},"standardConnectionFormat":{"$ref":"#/$defs/StandardConnectionFormat","description":"Standard connection format."},"username":{"description":"Required. Username for the MongoDB connection.","type":"string"}},"type":"object"},"MongodbSslConfig":{"description":"MongoDB SSL configuration information.","properties":{"caCertificate":{"description":"Optional. Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.","type":"string","writeOnly":true},"caCertificateSet":{"description":"Output only. Indicates whether the ca_certificate field is set.","readOnly":true,"type":"boolean"},"clientCertificate":{"description":"Optional. Input only. PEM-encoded certificate that will be used by the replica to authenticate against the source database server. If this field is used then the 'client_key' and the 'ca_certificate' fields are mandatory.","type":"string","writeOnly":true},"clientCertificateSet":{"description":"Output only. Indicates whether the client_certificate field is set.","readOnly":true,"type":"boolean"},"clientKey":{"description":"Optional. Input only. PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory.","type":"string","writeOnly":true},"clientKeySet":{"description":"Output only. Indicates whether the client_key field is set.","readOnly":true,"type":"boolean"},"secretManagerStoredClientKey":{"description":"Optional. Input only. A reference to a Secret Manager resource name storing the PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory. Mutually exclusive with the `client_key` field.","type":"string","writeOnly":true}},"type":"object"},"MysqlProfile":{"description":"Profile for connecting to a MySQL source.","properties":{"hostname":{"description":"Required. Hostname for the MySQL connection.","type":"string"},"password":{"description":"Optional. Input only. Password for the MySQL connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string","writeOnly":true},"port":{"description":"Port for the MySQL connection, default value is 3306.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the MySQL connection password. Mutually exclusive with the `password` field.","type":"string"},"sslConfig":{"$ref":"#/$defs/MysqlSslConfig","description":"SSL configuration for the MySQL connection."},"username":{"description":"Required. Username for the MySQL connection.","type":"string"}},"type":"object"},"MysqlSslConfig":{"description":"MySQL SSL configuration information.","properties":{"caCertificate":{"description":"Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.","type":"string","writeOnly":true},"caCertificateSet":{"description":"Output only. Indicates whether the ca_certificate field is set.","readOnly":true,"type":"boolean"},"clientCertificate":{"description":"Optional. Input only. PEM-encoded certificate that will be used by the replica to authenticate against the source database server. If this field is used then the 'client_key' and the 'ca_certificate' fields are mandatory.","type":"string","writeOnly":true},"clientCertificateSet":{"description":"Output only. Indicates whether the client_certificate field is set.","readOnly":true,"type":"boolean"},"clientKey":{"description":"Optional. Input only. PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory.","type":"string","writeOnly":true},"clientKeySet":{"description":"Output only. Indicates whether the client_key field is set.","readOnly":true,"type":"boolean"}},"type":"object"},"Oauth2ClientCredentials":{"description":"OAuth2 Client Credentials.","properties":{"clientId":{"description":"Required. Client ID for Salesforce OAuth2 Client Credentials.","type":"string"},"clientSecret":{"description":"Optional. Client secret for Salesforce OAuth2 Client Credentials. Mutually exclusive with the `secret_manager_stored_client_secret` field.","type":"string"},"secretManagerStoredClientSecret":{"description":"Optional. A reference to a Secret Manager resource name storing the Salesforce OAuth2 client_secret. Mutually exclusive with the `client_secret` field.","type":"string"}},"type":"object"},"OauthClientCredentials":{"description":"OAuth Client Credentials.","properties":{"clientId":{"description":"Required. Client ID for OAuth Client Credentials.","type":"string"},"clientSecret":{"$ref":"#/$defs/Secret","description":"Required. Client secret for OAuth Client Credentials."}},"type":"object"},"OauthRefreshTokenCredentials":{"description":"OAuth Refresh Token Credentials.","properties":{"oauthClientCredentials":{"$ref":"#/$defs/OauthClientCredentials","description":"Required. Specifies the OAuth Client Credentials."},"refreshToken":{"$ref":"#/$defs/Secret","description":"Required. Specifies the OAuth Refresh Token."}},"type":"object"},"OracleAsmConfig":{"description":"Configuration for Oracle Automatic Storage Management (ASM) connection.","properties":{"asmService":{"description":"Required. ASM service name for the Oracle ASM connection.","type":"string"},"connectionAttributes":{"additionalProperties":{"type":"string"},"description":"Optional. Connection string attributes","type":"object"},"hostname":{"description":"Required. Hostname for the Oracle ASM connection.","type":"string"},"oracleSslConfig":{"$ref":"#/$defs/OracleSslConfig","description":"Optional. SSL configuration for the Oracle connection."},"password":{"description":"Optional. Password for the Oracle ASM connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"port":{"description":"Required. Port for the Oracle ASM connection.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the Oracle ASM connection password. Mutually exclusive with the `password` field.","type":"string"},"username":{"description":"Required. Username for the Oracle ASM connection.","type":"string"}},"type":"object"},"OracleProfile":{"description":"Profile for connecting to an Oracle source.","properties":{"connectionAttributes":{"additionalProperties":{"type":"string"},"description":"Connection string attributes","type":"object"},"databaseService":{"description":"Required. Database for the Oracle connection.","type":"string"},"hostname":{"description":"Required. Hostname for the Oracle connection.","type":"string"},"oracleAsmConfig":{"$ref":"#/$defs/OracleAsmConfig","description":"Optional. Configuration for Oracle ASM connection."},"oracleSslConfig":{"$ref":"#/$defs/OracleSslConfig","description":"Optional. SSL configuration for the Oracle connection."},"password":{"description":"Optional. Password for the Oracle connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"port":{"description":"Port for the Oracle connection, default value is 1521.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the Oracle connection password. Mutually exclusive with the `password` field.","type":"string"},"username":{"description":"Required. Username for the Oracle connection.","type":"string"}},"type":"object"},"OracleSslConfig":{"description":"Oracle SSL configuration information.","properties":{"caCertificate":{"description":"Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.","type":"string","writeOnly":true},"caCertificateSet":{"description":"Output only. Indicates whether the ca_certificate field has been set for this Connection-Profile.","readOnly":true,"type":"boolean"},"serverCertificateDistinguishedName":{"description":"Optional. The distinguished name (DN) mentioned in the server certificate. This corresponds to SSL_SERVER_CERT_DN sqlnet parameter. Refer https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-70AB0695-A9AA-4A94-B141-4C605236EEB7 If this field is not provided, the DN matching is not enforced.","type":"string"}},"type":"object"},"PostgresqlProfile":{"description":"Profile for connecting to a PostgreSQL source.","properties":{"database":{"description":"Required. Database for the PostgreSQL connection.","type":"string"},"hostname":{"description":"Required. Hostname for the PostgreSQL connection.","type":"string"},"password":{"description":"Optional. Password for the PostgreSQL connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"port":{"description":"Port for the PostgreSQL connection, default value is 5432.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the PostgreSQL connection password. Mutually exclusive with the `password` field.","type":"string"},"sslConfig":{"$ref":"#/$defs/PostgresqlSslConfig","description":"Optional. SSL configuration for the PostgreSQL connection. In case PostgresqlSslConfig is not set, the connection will use the default SSL mode, which is `prefer` (i.e. this mode will only use encryption if enabled from database side, otherwise will use unencrypted communication)"},"username":{"description":"Required. Username for the PostgreSQL connection.","type":"string"}},"type":"object"},"PostgresqlSslConfig":{"description":"PostgreSQL SSL configuration information.","properties":{"serverAndClientVerification":{"$ref":"#/$defs/ServerAndClientVerification","description":"If this field is set, the communication will be encrypted with TLS encryption and both the server identity and the client identity will be authenticated."},"serverVerification":{"$ref":"#/$defs/ServerVerification","description":" If this field is set, the communication will be encrypted with TLS encryption and the server identity will be authenticated."}},"type":"object"},"PrivateConnectivity":{"description":"Private Connectivity","properties":{"privateConnection":{"description":"Required. A reference to a private connection resource. Format: `projects/{project}/locations/{location}/privateConnections/{name}`","type":"string"}},"type":"object"},"SalesforceMarketingCloudProfile":{"description":"Profile for connecting to a Salesforce Marketing Cloud source.","properties":{"oauthClientCredentials":{"$ref":"#/$defs/OauthClientCredentials","description":"Required. Input only. Credentials for authenticating with the Salesforce Marketing Cloud API.","writeOnly":true},"subdomain":{"description":"Required. Subdomain for the Salesforce Marketing Cloud connection. Example: if your specific endpoint is `https://{your-specific-subdomain}.rest.marketingcloudapis.com/`, the subdomain is `{your-specific-subdomain}`. Must be 1-63 characters, start and end with an alphanumeric character, and contain only lowercase letters, numbers, and hyphens (-).","type":"string"}},"type":"object"},"SalesforceProfile":{"description":"Profile for connecting to a Salesforce source.","properties":{"domain":{"description":"Required. Domain endpoint for the Salesforce connection.","type":"string"},"oauth2ClientCredentials":{"$ref":"#/$defs/Oauth2ClientCredentials","description":"Connected app authentication."},"userCredentials":{"$ref":"#/$defs/UserCredentials","deprecated":true,"description":"Deprecated: Salesforce is retiring Username-Password authentication. Use `oauth2_client_credentials` instead."}},"type":"object"},"Secret":{"description":"A confidential piece of information where the actual value is either directly specified in the message as a raw string or stored in GCP secret manager.","properties":{"rawValue":{"description":"Optional. Input only. The actual raw value of the secret as plain text.","type":"string","writeOnly":true},"secretVersion":{"description":"Optional. A Secret Manager resource name storing the actual value of the secret. Supported formats: * projects/{project}/locations/{location}/secrets/{secret}/versions/{version} * projects/{project}/secrets/{secret}/versions/{version}","type":"string"}},"type":"object"},"ServerAndClientVerification":{"description":"Message represents the option where Datastream will enforce the encryption and authenticate the server identity as well as the client identity. ca_certificate, client_certificate and client_key must be set if user selects this option.","properties":{"caCertificate":{"description":"Required. Input only. PEM-encoded server root CA certificate.","type":"string","writeOnly":true},"clientCertificate":{"description":"Required. Input only. PEM-encoded certificate used by the source database to authenticate the client identity (i.e., the Datastream's identity). This certificate is signed by either a root certificate trusted by the server or one or more intermediate certificates (which is stored with the leaf certificate) to link the this certificate to the trusted root certificate.","type":"string","writeOnly":true},"clientKey":{"description":"Optional. Input only. PEM-encoded private key associated with the client certificate. This value will be used during the SSL/TLS handshake, allowing the PostgreSQL server to authenticate the client's identity, i.e. identity of the Datastream.","type":"string","writeOnly":true},"serverCertificateHostname":{"description":"Optional. The hostname mentioned in the Subject or SAN extension of the server certificate. If this field is not provided, the hostname in the server certificate is not validated.","type":"string"}},"type":"object"},"ServerVerification":{"description":"Message represents the option where Datastream will enforce the encryption and authenticate the server identity. ca_certificate must be set if user selects this option.","properties":{"caCertificate":{"description":"Required. Input only. PEM-encoded server root CA certificate.","type":"string","writeOnly":true},"serverCertificateHostname":{"description":"Optional. The hostname mentioned in the Subject or SAN extension of the server certificate. If this field is not provided, the hostname in the server certificate is not validated.","type":"string"}},"type":"object"},"ServiceNowProfile":{"description":"Profile for connecting to a ServiceNow source.","properties":{"instance":{"description":"Required. The instance of the ServiceNow account. This is the `` part of the URL `https://.service-now.com`.","type":"string"},"oauthClientCredentials":{"$ref":"#/$defs/OauthClientCredentials","description":"Credentials for authenticating with the ServiceNow API."},"userPasswordCredentials":{"$ref":"#/$defs/UserPasswordCredentials","description":"User-password authentication."}},"type":"object"},"SpannerProfile":{"description":"Profile for connecting to a Spanner source.","properties":{"database":{"description":"Required. Immutable. Cloud Spanner database resource. This field is immutable. Must be in the format: projects/{project}/instances/{instance}/databases/{database_id}.","type":"string","x-google-immutable":true},"host":{"description":"Optional. The Spanner endpoint to connect to. Defaults to the global endpoint (https://spanner.googleapis.com). Must be in the format: https://spanner.{region}.rep.googleapis.com.","type":"string"}},"type":"object"},"SqlServerProfile":{"description":"Profile for connecting to a SQLServer source.","properties":{"database":{"description":"Required. Database for the SQLServer connection.","type":"string"},"hostname":{"description":"Required. Hostname for the SQLServer connection.","type":"string"},"password":{"description":"Optional. Password for the SQLServer connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"port":{"description":"Port for the SQLServer connection, default value is 1433.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the SQLServer connection password. Mutually exclusive with the `password` field.","type":"string"},"sslConfig":{"$ref":"#/$defs/SqlServerSslConfig","description":"Optional. SSL configuration for the SQLServer connection."},"username":{"description":"Required. Username for the SQLServer connection.","type":"string"}},"type":"object"},"SqlServerSslConfig":{"description":"SQL Server SSL configuration information.","properties":{"basicEncryption":{"$ref":"#/$defs/BasicEncryption","description":"If set, Datastream will enforce encryption without authenticating server identity. Server certificates will be trusted by default."},"encryptionAndServerValidation":{"$ref":"#/$defs/EncryptionAndServerValidation","description":"If set, Datastream will enforce encryption and authenticate server identity."},"encryptionNotEnforced":{"$ref":"#/$defs/EncryptionNotEnforced","description":"If set, Datastream will not enforce encryption. If the DB server mandates encryption, then connection will be encrypted but server identity will not be authenticated."}},"type":"object"},"SrvConnectionFormat":{"description":"Srv connection format.","properties":{},"type":"object"},"StandardConnectionFormat":{"description":"Standard connection format.","properties":{"directConnection":{"deprecated":true,"description":"Optional. Deprecated: Use the `additional_options` map to specify the `directConnection` parameter instead. For example: `additional_options = {\"directConnection\": \"true\"}`. Specifies whether the client connects directly to the host[:port] in the connection URI.","type":"boolean"}},"type":"object"},"StaticServiceIpConnectivity":{"description":"Static IP address connectivity. Used when the source database is configured to allow incoming connections from the Datastream public IP addresses for the region specified in the connection profile.","properties":{},"type":"object"},"UserCredentials":{"description":"Deprecated: Salesforce is retiring Username-Password authentication. Use `Oauth2ClientCredentials` instead.","properties":{"password":{"description":"Optional. Password for the Salesforce connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the Salesforce connection's password. Mutually exclusive with the `password` field.","type":"string"},"secretManagerStoredSecurityToken":{"description":"Optional. A reference to a Secret Manager resource name storing the Salesforce connection's security token. Mutually exclusive with the `security_token` field.","type":"string"},"securityToken":{"description":"Optional. Security token for the Salesforce connection. Mutually exclusive with the `secret_manager_stored_security_token` field.","type":"string"},"username":{"description":"Required. Username for the Salesforce connection.","type":"string"}},"type":"object"},"UserPasswordCredentials":{"description":"User-password credentials.","properties":{"password":{"$ref":"#/$defs/Secret","description":"Required. Password for the connection."},"username":{"description":"Required. Username for the connection.","type":"string"}},"type":"object"},"WorkdayProfile":{"description":"Profile for connecting to a Workday source.","properties":{"host":{"description":"Required. Host for the Workday connection. Must be a valid hostname (e.g., `wd3-impl-services1.workday.com`).","type":"string"},"oauthRefreshTokenCredentials":{"$ref":"#/$defs/OauthRefreshTokenCredentials","description":"Required. Credentials for authenticating with the Workday API. OAuth Refresh Token credentials for authenticating with the Workday API."},"tenant":{"description":"Required. Tenant for the Workday connection (e.g., `google12`).","type":"string"}},"type":"object"}},"description":"Response message for listing connection profiles.","properties":{"connectionProfiles":{"description":"List of connection profiles.","items":{"$ref":"#/$defs/ConnectionProfile"},"type":"array"},"nextPageToken":{"description":"A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.","type":"string"},"unreachable":{"description":"Locations that could not be reached.","items":{"type":"string"},"type":"array"}},"type":"object"}after
{"$defs":{"BasicEncryption":{"description":"Message to represent the option where Datastream will enforce encryption without authenticating server identity. Server certificates will be trusted by default.","properties":{},"type":"object"},"BigQueryProfile":{"description":"Profile for connecting to a BigQuery destination.","properties":{},"type":"object"},"ConnectionProfile":{"description":"A set of reusable connection configurations to be used as a source or destination for a stream.","properties":{"bigqueryProfile":{"$ref":"#/$defs/BigQueryProfile","description":"Profile for connecting to a BigQuery destination. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"createTime":{"description":"Output only. The create time of the resource.","format":"date-time","readOnly":true,"type":"string"},"dataverseProfile":{"$ref":"#/$defs/DataverseProfile","description":"Profile for connecting to a Dataverse source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"displayName":{"description":"Required. Display name.","type":"string"},"forwardSshConnectivity":{"$ref":"#/$defs/ForwardSshTunnelConnectivity","description":"Forward SSH tunnel connectivity. Only one of the following fields should be set: this field, staticServiceIpConnectivity, privateConnectivity."},"gcsProfile":{"$ref":"#/$defs/GcsProfile","description":"Profile for connecting to a Cloud Storage destination. Only one of the following fields should be set: this field, oracleProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"labels":{"additionalProperties":{"type":"string"},"description":"Labels.","type":"object"},"mongodbProfile":{"$ref":"#/$defs/MongodbProfile","description":"Profile for connecting to a MongoDB source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"mysqlProfile":{"$ref":"#/$defs/MysqlProfile","description":"Profile for connecting to a MySQL source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"name":{"description":"Output only. Identifier. The resource's name.","readOnly":true,"type":"string","x-google-identifier":true},"oracleProfile":{"$ref":"#/$defs/OracleProfile","description":"Profile for connecting to an Oracle source. Only one of the following fields should be set: this field, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"postgresqlProfile":{"$ref":"#/$defs/PostgresqlProfile","description":"Profile for connecting to a PostgreSQL source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"privateConnectivity":{"$ref":"#/$defs/PrivateConnectivity","description":"Private connectivity. Only one of the following fields should be set: this field, staticServiceIpConnectivity, forwardSshConnectivity."},"salesforceMarketingCloudProfile":{"$ref":"#/$defs/SalesforceMarketingCloudProfile","description":"Profile for connecting to a Salesforce Marketing Cloud source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, serviceNowProfile, workdayProfile."},"salesforceProfile":{"$ref":"#/$defs/SalesforceProfile","description":"Profile for connecting to a Salesforce source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"satisfiesPzi":{"description":"Output only. Reserved for future use.","readOnly":true,"type":"boolean"},"satisfiesPzs":{"description":"Output only. Reserved for future use.","readOnly":true,"type":"boolean"},"serviceNowProfile":{"$ref":"#/$defs/ServiceNowProfile","description":"Profile for connecting to a ServiceNow source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, workdayProfile."},"spannerProfile":{"$ref":"#/$defs/SpannerProfile","description":"Profile for connecting to a Spanner source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"sqlServerProfile":{"$ref":"#/$defs/SqlServerProfile","description":"Profile for connecting to a SQLServer source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile, workdayProfile."},"staticServiceIpConnectivity":{"$ref":"#/$defs/StaticServiceIpConnectivity","description":"Static Service IP connectivity. Only one of the following fields should be set: this field, forwardSshConnectivity, privateConnectivity."},"updateTime":{"description":"Output only. The update time of the resource.","format":"date-time","readOnly":true,"type":"string"},"workdayProfile":{"$ref":"#/$defs/WorkdayProfile","description":"Optional. Profile for connecting to a Workday source. Only one of the following fields should be set: this field, oracleProfile, gcsProfile, mysqlProfile, bigqueryProfile, postgresqlProfile, sqlServerProfile, salesforceProfile, mongodbProfile, spannerProfile, dataverseProfile, salesforceMarketingCloudProfile, serviceNowProfile."}},"type":"object"},"DataverseProfile":{"description":"Profile for connecting to a Dataverse source.","properties":{"environmentUrl":{"description":"Required. Environment URL of the Microsoft Dataverse instance. Example: `.crm.dynamics.com`","type":"string"},"oauthClientCredentials":{"$ref":"#/$defs/OauthClientCredentials","description":"Required. Credentials for authenticating with the Dataverse API."},"tenantId":{"description":"Required. Tenant id of the Microsoft Dataverse instance.","type":"string"}},"type":"object"},"EncryptionAndServerValidation":{"description":"Message to represent the option where Datastream will enforce encryption and authenticate server identity. ca_certificate must be set if user selects this option.","properties":{"caCertificate":{"description":"Optional. Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.","type":"string","writeOnly":true},"serverCertificateHostname":{"description":"Optional. The hostname mentioned in the Subject or SAN extension of the server certificate. This field is used for bypassing the hostname validation while verifying server certificate. This is required for scenarios where the host name that datastream connects to is different from the certificate's subject. This specifically happens for private connectivity. It could also happen when the customer provides a public IP in connection profile but the same is not present in the server certificate.","type":"string"}},"type":"object"},"EncryptionNotEnforced":{"description":"Message to represent the option where encryption is not enforced. An empty message right now to allow future extensibility.","properties":{},"type":"object"},"ForwardSshTunnelConnectivity":{"description":"Forward SSH Tunnel connectivity.","properties":{"hostname":{"description":"Required. Hostname for the SSH tunnel.","type":"string"},"password":{"description":"Input only. SSH password. Only one of this field or privateKey should be set.","type":"string","writeOnly":true},"port":{"description":"Port for the SSH tunnel, default value is 22.","format":"int32","type":"integer"},"privateKey":{"description":"Input only. SSH private key. Only one of this field or password should be set.","type":"string","writeOnly":true},"username":{"description":"Required. Username for the SSH tunnel.","type":"string"}},"type":"object"},"GcsProfile":{"description":"Profile for connecting to a Cloud Storage destination.","properties":{"bucket":{"description":"Required. The Cloud Storage bucket name.","type":"string"},"rootPath":{"description":"Optional. The root path inside the Cloud Storage bucket.","type":"string"}},"type":"object"},"HostAddress":{"description":"A HostAddress represents a transport end point, which is the combination of an IP address or hostname and a port number.","properties":{"hostname":{"description":"Required. Hostname for the connection.","type":"string"},"port":{"description":"Optional. Port for the connection.","format":"int32","type":"integer"}},"type":"object"},"MongodbProfile":{"description":"Profile for connecting to a MongoDB source.","properties":{"additionalOptions":{"additionalProperties":{"type":"string"},"description":"Optional. Specifies additional options for the MongoDB connection. The options should be sent as key-value pairs, for example: `additional_options = {\"serverSelectionTimeoutMS\": \"10000\", \"directConnection\": \"true\"}`. Keys are case-sensitive and should match the official MongoDB connection string options: https://www.mongodb.com/docs/manual/reference/connection-string-options/ The server will not modify the values provided by the user.","type":"object"},"hostAddresses":{"description":"Required. List of host addresses for a MongoDB cluster. For SRV connection format, this list must contain exactly one DNS host without a port. For Standard connection format, this list must contain all the required hosts in the cluster with their respective ports.","items":{"$ref":"#/$defs/HostAddress"},"type":"array"},"password":{"description":"Optional. Password for the MongoDB connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"replicaSet":{"description":"Optional. Name of the replica set. Only needed for self hosted replica set type MongoDB cluster. For SRV connection format, this field must be empty. For Standard connection format, this field must be specified.","type":"string"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the SQLServer connection password. Mutually exclusive with the `password` field.","type":"string"},"srvConnectionFormat":{"$ref":"#/$defs/SrvConnectionFormat","description":"Srv connection format. Only one of this field or standardConnectionFormat should be set."},"sslConfig":{"$ref":"#/$defs/MongodbSslConfig","description":"Optional. SSL configuration for the MongoDB connection."},"standardConnectionFormat":{"$ref":"#/$defs/StandardConnectionFormat","description":"Standard connection format. Only one of this field or srvConnectionFormat should be set."},"username":{"description":"Required. Username for the MongoDB connection.","type":"string"}},"type":"object"},"MongodbSslConfig":{"description":"MongoDB SSL configuration information.","properties":{"caCertificate":{"description":"Optional. Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.","type":"string","writeOnly":true},"caCertificateSet":{"description":"Output only. Indicates whether the ca_certificate field is set.","readOnly":true,"type":"boolean"},"clientCertificate":{"description":"Optional. Input only. PEM-encoded certificate that will be used by the replica to authenticate against the source database server. If this field is used then the 'client_key' and the 'ca_certificate' fields are mandatory.","type":"string","writeOnly":true},"clientCertificateSet":{"description":"Output only. Indicates whether the client_certificate field is set.","readOnly":true,"type":"boolean"},"clientKey":{"description":"Optional. Input only. PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory.","type":"string","writeOnly":true},"clientKeySet":{"description":"Output only. Indicates whether the client_key field is set.","readOnly":true,"type":"boolean"},"secretManagerStoredClientKey":{"description":"Optional. Input only. A reference to a Secret Manager resource name storing the PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory. Mutually exclusive with the `client_key` field.","type":"string","writeOnly":true}},"type":"object"},"MysqlProfile":{"description":"Profile for connecting to a MySQL source.","properties":{"hostname":{"description":"Required. Hostname for the MySQL connection.","type":"string"},"password":{"description":"Optional. Input only. Password for the MySQL connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string","writeOnly":true},"port":{"description":"Port for the MySQL connection, default value is 3306.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the MySQL connection password. Mutually exclusive with the `password` field.","type":"string"},"sslConfig":{"$ref":"#/$defs/MysqlSslConfig","description":"SSL configuration for the MySQL connection."},"username":{"description":"Required. Username for the MySQL connection.","type":"string"}},"type":"object"},"MysqlSslConfig":{"description":"MySQL SSL configuration information.","properties":{"caCertificate":{"description":"Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.","type":"string","writeOnly":true},"caCertificateSet":{"description":"Output only. Indicates whether the ca_certificate field is set.","readOnly":true,"type":"boolean"},"clientCertificate":{"description":"Optional. Input only. PEM-encoded certificate that will be used by the replica to authenticate against the source database server. If this field is used then the 'client_key' and the 'ca_certificate' fields are mandatory.","type":"string","writeOnly":true},"clientCertificateSet":{"description":"Output only. Indicates whether the client_certificate field is set.","readOnly":true,"type":"boolean"},"clientKey":{"description":"Optional. Input only. PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory.","type":"string","writeOnly":true},"clientKeySet":{"description":"Output only. Indicates whether the client_key field is set.","readOnly":true,"type":"boolean"}},"type":"object"},"Oauth2ClientCredentials":{"description":"OAuth2 Client Credentials.","properties":{"clientId":{"description":"Required. Client ID for Salesforce OAuth2 Client Credentials.","type":"string"},"clientSecret":{"description":"Optional. Client secret for Salesforce OAuth2 Client Credentials. Mutually exclusive with the `secret_manager_stored_client_secret` field.","type":"string"},"secretManagerStoredClientSecret":{"description":"Optional. A reference to a Secret Manager resource name storing the Salesforce OAuth2 client_secret. Mutually exclusive with the `client_secret` field.","type":"string"}},"type":"object"},"OauthClientCredentials":{"description":"OAuth Client Credentials.","properties":{"clientId":{"description":"Required. Client ID for OAuth Client Credentials.","type":"string"},"clientSecret":{"$ref":"#/$defs/Secret","description":"Required. Client secret for OAuth Client Credentials."}},"type":"object"},"OauthRefreshTokenCredentials":{"description":"OAuth Refresh Token Credentials.","properties":{"oauthClientCredentials":{"$ref":"#/$defs/OauthClientCredentials","description":"Required. Specifies the OAuth Client Credentials."},"refreshToken":{"$ref":"#/$defs/Secret","description":"Required. Specifies the OAuth Refresh Token."}},"type":"object"},"OracleAsmConfig":{"description":"Configuration for Oracle Automatic Storage Management (ASM) connection.","properties":{"asmService":{"description":"Required. ASM service name for the Oracle ASM connection.","type":"string"},"connectionAttributes":{"additionalProperties":{"type":"string"},"description":"Optional. Connection string attributes","type":"object"},"hostname":{"description":"Required. Hostname for the Oracle ASM connection.","type":"string"},"oracleSslConfig":{"$ref":"#/$defs/OracleSslConfig","description":"Optional. SSL configuration for the Oracle connection."},"password":{"description":"Optional. Password for the Oracle ASM connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"port":{"description":"Required. Port for the Oracle ASM connection.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the Oracle ASM connection password. Mutually exclusive with the `password` field.","type":"string"},"username":{"description":"Required. Username for the Oracle ASM connection.","type":"string"}},"type":"object"},"OracleProfile":{"description":"Profile for connecting to an Oracle source.","properties":{"connectionAttributes":{"additionalProperties":{"type":"string"},"description":"Connection string attributes","type":"object"},"databaseService":{"description":"Required. Database for the Oracle connection.","type":"string"},"hostname":{"description":"Required. Hostname for the Oracle connection.","type":"string"},"oracleAsmConfig":{"$ref":"#/$defs/OracleAsmConfig","description":"Optional. Configuration for Oracle ASM connection."},"oracleSslConfig":{"$ref":"#/$defs/OracleSslConfig","description":"Optional. SSL configuration for the Oracle connection."},"password":{"description":"Optional. Password for the Oracle connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"port":{"description":"Port for the Oracle connection, default value is 1521.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the Oracle connection password. Mutually exclusive with the `password` field.","type":"string"},"username":{"description":"Required. Username for the Oracle connection.","type":"string"}},"type":"object"},"OracleSslConfig":{"description":"Oracle SSL configuration information.","properties":{"caCertificate":{"description":"Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.","type":"string","writeOnly":true},"caCertificateSet":{"description":"Output only. Indicates whether the ca_certificate field has been set for this Connection-Profile.","readOnly":true,"type":"boolean"},"serverCertificateDistinguishedName":{"description":"Optional. The distinguished name (DN) mentioned in the server certificate. This corresponds to SSL_SERVER_CERT_DN sqlnet parameter. Refer https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-70AB0695-A9AA-4A94-B141-4C605236EEB7 If this field is not provided, the DN matching is not enforced.","type":"string"}},"type":"object"},"PostgresqlProfile":{"description":"Profile for connecting to a PostgreSQL source.","properties":{"database":{"description":"Required. Database for the PostgreSQL connection.","type":"string"},"hostname":{"description":"Required. Hostname for the PostgreSQL connection.","type":"string"},"password":{"description":"Optional. Password for the PostgreSQL connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"port":{"description":"Port for the PostgreSQL connection, default value is 5432.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the PostgreSQL connection password. Mutually exclusive with the `password` field.","type":"string"},"sslConfig":{"$ref":"#/$defs/PostgresqlSslConfig","description":"Optional. SSL configuration for the PostgreSQL connection. In case PostgresqlSslConfig is not set, the connection will use the default SSL mode, which is `prefer` (i.e. this mode will only use encryption if enabled from database side, otherwise will use unencrypted communication)"},"username":{"description":"Required. Username for the PostgreSQL connection.","type":"string"}},"type":"object"},"PostgresqlSslConfig":{"description":"PostgreSQL SSL configuration information.","properties":{"serverAndClientVerification":{"$ref":"#/$defs/ServerAndClientVerification","description":"If this field is set, the communication will be encrypted with TLS encryption and both the server identity and the client identity will be authenticated. Only one of this field or serverVerification should be set."},"serverVerification":{"$ref":"#/$defs/ServerVerification","description":"If this field is set, the communication will be encrypted with TLS encryption and the server identity will be authenticated. Only one of this field or serverAndClientVerification should be set."}},"type":"object"},"PrivateConnectivity":{"description":"Private Connectivity","properties":{"privateConnection":{"description":"Required. A reference to a private connection resource. Format: `projects/{project}/locations/{location}/privateConnections/{name}`","type":"string"}},"type":"object"},"SalesforceMarketingCloudProfile":{"description":"Profile for connecting to a Salesforce Marketing Cloud source.","properties":{"oauthClientCredentials":{"$ref":"#/$defs/OauthClientCredentials","description":"Required. Input only. Credentials for authenticating with the Salesforce Marketing Cloud API.","writeOnly":true},"subdomain":{"description":"Required. Subdomain for the Salesforce Marketing Cloud connection. Example: if your specific endpoint is `https://{your-specific-subdomain}.rest.marketingcloudapis.com/`, the subdomain is `{your-specific-subdomain}`. Must be 1-63 characters, start and end with an alphanumeric character, and contain only lowercase letters, numbers, and hyphens (-).","type":"string"}},"type":"object"},"SalesforceProfile":{"description":"Profile for connecting to a Salesforce source.","properties":{"domain":{"description":"Required. Domain endpoint for the Salesforce connection.","type":"string"},"oauth2ClientCredentials":{"$ref":"#/$defs/Oauth2ClientCredentials","description":"Connected app authentication. Only one of this field or userCredentials should be set."},"userCredentials":{"$ref":"#/$defs/UserCredentials","deprecated":true,"description":"Deprecated: Salesforce is retiring Username-Password authentication. Use `oauth2_client_credentials` instead. Only one of this field or oauth2ClientCredentials should be set."}},"type":"object"},"Secret":{"description":"A confidential piece of information where the actual value is either directly specified in the message as a raw string or stored in GCP secret manager.","properties":{"rawValue":{"description":"Optional. Input only. The actual raw value of the secret as plain text. Only one of this field or secretVersion should be set.","type":"string","writeOnly":true},"secretVersion":{"description":"Optional. A Secret Manager resource name storing the actual value of the secret. Supported formats: * projects/{project}/locations/{location}/secrets/{secret}/versions/{version} * projects/{project}/secrets/{secret}/versions/{version}. Only one of this field or rawValue should be set.","type":"string"}},"type":"object"},"ServerAndClientVerification":{"description":"Message represents the option where Datastream will enforce the encryption and authenticate the server identity as well as the client identity. ca_certificate, client_certificate and client_key must be set if user selects this option.","properties":{"caCertificate":{"description":"Required. Input only. PEM-encoded server root CA certificate.","type":"string","writeOnly":true},"clientCertificate":{"description":"Required. Input only. PEM-encoded certificate used by the source database to authenticate the client identity (i.e., the Datastream's identity). This certificate is signed by either a root certificate trusted by the server or one or more intermediate certificates (which is stored with the leaf certificate) to link the this certificate to the trusted root certificate.","type":"string","writeOnly":true},"clientKey":{"description":"Optional. Input only. PEM-encoded private key associated with the client certificate. This value will be used during the SSL/TLS handshake, allowing the PostgreSQL server to authenticate the client's identity, i.e. identity of the Datastream.","type":"string","writeOnly":true},"serverCertificateHostname":{"description":"Optional. The hostname mentioned in the Subject or SAN extension of the server certificate. If this field is not provided, the hostname in the server certificate is not validated.","type":"string"}},"type":"object"},"ServerVerification":{"description":"Message represents the option where Datastream will enforce the encryption and authenticate the server identity. ca_certificate must be set if user selects this option.","properties":{"caCertificate":{"description":"Required. Input only. PEM-encoded server root CA certificate.","type":"string","writeOnly":true},"serverCertificateHostname":{"description":"Optional. The hostname mentioned in the Subject or SAN extension of the server certificate. If this field is not provided, the hostname in the server certificate is not validated.","type":"string"}},"type":"object"},"ServiceNowProfile":{"description":"Profile for connecting to a ServiceNow source.","properties":{"instance":{"description":"Required. The instance of the ServiceNow account. This is the `` part of the URL `https://.service-now.com`.","type":"string"},"oauthClientCredentials":{"$ref":"#/$defs/OauthClientCredentials","description":"Credentials for authenticating with the ServiceNow API. Only one of this field or userPasswordCredentials should be set."},"userPasswordCredentials":{"$ref":"#/$defs/UserPasswordCredentials","description":"User-password authentication. Only one of this field or oauthClientCredentials should be set."}},"type":"object"},"SpannerProfile":{"description":"Profile for connecting to a Spanner source.","properties":{"database":{"description":"Required. Immutable. Cloud Spanner database resource. This field is immutable. Must be in the format: projects/{project}/instances/{instance}/databases/{database_id}.","type":"string","x-google-immutable":true},"host":{"description":"Optional. The Spanner endpoint to connect to. Defaults to the global endpoint (https://spanner.googleapis.com). Must be in the format: https://spanner.{region}.rep.googleapis.com.","type":"string"}},"type":"object"},"SqlServerProfile":{"description":"Profile for connecting to a SQLServer source.","properties":{"database":{"description":"Required. Database for the SQLServer connection.","type":"string"},"hostname":{"description":"Required. Hostname for the SQLServer connection.","type":"string"},"password":{"description":"Optional. Password for the SQLServer connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"port":{"description":"Port for the SQLServer connection, default value is 1433.","format":"int32","type":"integer"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the SQLServer connection password. Mutually exclusive with the `password` field.","type":"string"},"sslConfig":{"$ref":"#/$defs/SqlServerSslConfig","description":"Optional. SSL configuration for the SQLServer connection."},"username":{"description":"Required. Username for the SQLServer connection.","type":"string"}},"type":"object"},"SqlServerSslConfig":{"description":"SQL Server SSL configuration information.","properties":{"basicEncryption":{"$ref":"#/$defs/BasicEncryption","description":"If set, Datastream will enforce encryption without authenticating server identity. Server certificates will be trusted by default. Only one of the following fields should be set: this field, encryptionNotEnforced, encryptionAndServerValidation."},"encryptionAndServerValidation":{"$ref":"#/$defs/EncryptionAndServerValidation","description":"If set, Datastream will enforce encryption and authenticate server identity. Only one of the following fields should be set: this field, encryptionNotEnforced, basicEncryption."},"encryptionNotEnforced":{"$ref":"#/$defs/EncryptionNotEnforced","description":"If set, Datastream will not enforce encryption. If the DB server mandates encryption, then connection will be encrypted but server identity will not be authenticated. Only one of the following fields should be set: this field, basicEncryption, encryptionAndServerValidation."}},"type":"object"},"SrvConnectionFormat":{"description":"Srv connection format.","properties":{},"type":"object"},"StandardConnectionFormat":{"description":"Standard connection format.","properties":{"directConnection":{"deprecated":true,"description":"Optional. Deprecated: Use the `additional_options` map to specify the `directConnection` parameter instead. For example: `additional_options = {\"directConnection\": \"true\"}`. Specifies whether the client connects directly to the host[:port] in the connection URI.","type":"boolean"}},"type":"object"},"StaticServiceIpConnectivity":{"description":"Static IP address connectivity. Used when the source database is configured to allow incoming connections from the Datastream public IP addresses for the region specified in the connection profile.","properties":{},"type":"object"},"UserCredentials":{"description":"Deprecated: Salesforce is retiring Username-Password authentication. Use `Oauth2ClientCredentials` instead.","properties":{"password":{"description":"Optional. Password for the Salesforce connection. Mutually exclusive with the `secret_manager_stored_password` field.","type":"string"},"secretManagerStoredPassword":{"description":"Optional. A reference to a Secret Manager resource name storing the Salesforce connection's password. Mutually exclusive with the `password` field.","type":"string"},"secretManagerStoredSecurityToken":{"description":"Optional. A reference to a Secret Manager resource name storing the Salesforce connection's security token. Mutually exclusive with the `security_token` field.","type":"string"},"securityToken":{"description":"Optional. Security token for the Salesforce connection. Mutually exclusive with the `secret_manager_stored_security_token` field.","type":"string"},"username":{"description":"Required. Username for the Salesforce connection.","type":"string"}},"type":"object"},"UserPasswordCredentials":{"description":"User-password credentials.","properties":{"password":{"$ref":"#/$defs/Secret","description":"Required. Password for the connection."},"username":{"description":"Required. Username for the connection.","type":"string"}},"type":"object"},"WorkdayProfile":{"description":"Profile for connecting to a Workday source.","properties":{"host":{"description":"Required. Host for the Workday connection. Must be a valid hostname (e.g., `wd3-impl-services1.workday.com`).","type":"string"},"oauthRefreshTokenCredentials":{"$ref":"#/$defs/OauthRefreshTokenCredentials","description":"Required. Credentials for authenticating with the Workday API. OAuth Refresh Token credentials for authenticating with the Workday API."},"tenant":{"description":"Required. Tenant for the Workday connection (e.g., `google12`).","type":"string"}},"type":"object"}},"description":"Response message for listing connection profiles.","properties":{"connectionProfiles":{"description":"List of connection profiles.","items":{"$ref":"#/$defs/ConnectionProfile"},"type":"array"},"nextPageToken":{"description":"A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.","type":"string"},"unreachable":{"description":"Locations that could not be reached.","items":{"type":"string"},"type":"array"}},"type":"object"}⟨238 unchanged words⟩ ":"#/$defs/IngestionTimePartition","description":"Ingestion time partitioning. Only one of the following fields should be set: this field, integerRangePartition, timeUnitPartition."},"integerRangePartition":{"$ref":"#/$defs/IntegerRangePartition","description":"Integer range partitioning. Only one of the following fields should be set: this field, timeUnitPartition, ingestionTimePartition."},"requirePartitionFilter":{"description":"Optional. If ⟨13 unchanged words⟩ "#/$defs/TimeUnitPartition","description":"Time unit column partitioning. Only one of the following fields should be set: this field, integerRangePartition, ingestionTimePartition."}},"type":"object"},"CustomizationRule" ⟨14 unchanged words⟩ ":"#/$defs/BigQueryClustering","description":"BigQuery clustering rule. Only one of this field or bigqueryPartitioning should be set."},"bigqueryPartitioning":{"$ref":"#/$defs/BigQueryPartitioning","description":"BigQuery partitioning rule. Only one of this field or bigqueryClustering should be set."}},"type":"object"},"Error" ⟨364 unchanged words⟩ ","description":"MongoDB data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, spannerIdentifier."},"mysqlIdentifier":{"$ref":"#/$defs/MysqlObjectIdentifier","description":"Mysql data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"oracleIdentifier":{"$ref":"#/$defs/OracleObjectIdentifier","description":"Oracle data source object identifier. Only one of the following fields should be set: this field, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"postgresqlIdentifier":{"$ref":"#/$defs/PostgresqlObjectIdentifier","description":"PostgreSQL data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"salesforceIdentifier":{"$ref":"#/$defs/SalesforceObjectIdentifier","description":"Salesforce data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, mongodbIdentifier, spannerIdentifier."},"spannerIdentifier":{"$ref":"#/$defs/SpannerObjectIdentifier","description":"Spanner data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier."},"sqlServerIdentifier":{"$ref":"#/$defs/SqlServerObjectIdentifier","description":"SQLServer data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."}},"type":"object"},"SpannerObjectIdentifier" ⟨281 unchanged words⟩
before
{"$defs":{"AppendOnly":{"description":"AppendOnly mode defines that all changes to a table will be written to the destination table.","properties":{},"type":"object"},"AvroFileFormat":{"description":"AVRO file format configuration.","properties":{},"type":"object"},"BackfillAllStrategy":{"description":"Backfill strategy to automatically backfill the Stream's objects. Specific objects can be excluded.","properties":{"mongodbExcludedObjects":{"$ref":"#/$defs/MongodbCluster","description":"MongoDB data source objects to avoid backfilling"},"mysqlExcludedObjects":{"$ref":"#/$defs/MysqlRdbms","description":"MySQL data source objects to avoid backfilling."},"oracleExcludedObjects":{"$ref":"#/$defs/OracleRdbms","description":"Oracle data source objects to avoid backfilling."},"postgresqlExcludedObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"PostgreSQL data source objects to avoid backfilling."},"saasExcludedObjects":{"$ref":"#/$defs/SourceCatalog","description":"Source catalog data source objects to avoid backfilling. This is mainly used to represent SaaS applications objects."},"salesforceExcludedObjects":{"$ref":"#/$defs/SalesforceOrg","description":"Salesforce data source objects to avoid backfilling"},"spannerExcludedObjects":{"$ref":"#/$defs/SpannerDatabase","description":"Spanner data source objects to avoid backfilling."},"sqlServerExcludedObjects":{"$ref":"#/$defs/SqlServerRdbms","description":"SQLServer data source objects to avoid backfilling"}},"type":"object"},"BackfillNoneStrategy":{"description":"Backfill strategy to disable automatic backfill for the Stream's objects.","properties":{},"type":"object"},"BigQueryClustering":{"description":"BigQuery clustering configuration.","properties":{"columns":{"description":"Required. Column names to set as clustering columns.","items":{"type":"string"},"type":"array"}},"type":"object"},"BigQueryDestinationConfig":{"description":"BigQuery destination configuration","properties":{"appendOnly":{"$ref":"#/$defs/AppendOnly","description":"Append only mode"},"blmtConfig":{"$ref":"#/$defs/BlmtConfig","description":"Optional. Big Lake Managed Tables (BLMT) configuration."},"dataFreshness":{"description":"The guaranteed data freshness (in seconds) when querying tables created by the stream. Editing this field will only affect new tables created in the future, but existing tables will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost.","format":"google-duration","type":"string"},"merge":{"$ref":"#/$defs/Merge","description":"The standard mode"},"singleTargetDataset":{"$ref":"#/$defs/SingleTargetDataset","description":"Single destination dataset."},"sourceHierarchyDatasets":{"$ref":"#/$defs/SourceHierarchyDatasets","description":"Source hierarchy datasets."}},"type":"object"},"BigQueryPartitioning":{"description":"BigQuery partitioning configuration.","properties":{"ingestionTimePartition":{"$ref":"#/$defs/IngestionTimePartition","description":"Ingestion time partitioning."},"integerRangePartition":{"$ref":"#/$defs/IntegerRangePartition","description":"Integer range partitioning."},"requirePartitionFilter":{"description":"Optional. If true, queries over the table require a partition filter.","type":"boolean"},"timeUnitPartition":{"$ref":"#/$defs/TimeUnitPartition","description":"Time unit column partitioning."}},"type":"object"},"BinaryLogParser":{"description":"Configuration to use Binary Log Parser CDC technique.","properties":{"logFileDirectories":{"$ref":"#/$defs/LogFileDirectories","description":"Use Oracle directories."},"oracleAsmLogFileAccess":{"$ref":"#/$defs/OracleAsmLogFileAccess","description":"Use Oracle ASM."}},"type":"object"},"BinaryLogPosition":{"description":"Use Binary log position based replication.","properties":{},"type":"object"},"BlmtConfig":{"description":"The configuration for BLMT.","properties":{"bucket":{"description":"Required. The Cloud Storage bucket name.","type":"string"},"connectionName":{"description":"Required. The bigquery connection. Format: `{project}.{location}.{name}`","type":"string"},"fileFormat":{"description":"Required. The file format.","enum":["FILE_FORMAT_UNSPECIFIED","PARQUET"],"type":"string","x-google-enum-descriptions":["Default value.","Parquet file format."]},"rootPath":{"description":"The root path inside the Cloud Storage bucket.","type":"string"},"tableFormat":{"description":"Required. The table format.","enum":["TABLE_FORMAT_UNSPECIFIED","ICEBERG"],"type":"string","x-google-enum-descriptions":["Default value.","Iceberg table format."]}},"type":"object"},"CustomizationRule":{"description":"A customization rule to apply to a set of objects.","properties":{"bigqueryClustering":{"$ref":"#/$defs/BigQueryClustering","description":"BigQuery clustering rule."},"bigqueryPartitioning":{"$ref":"#/$defs/BigQueryPartitioning","description":"BigQuery partitioning rule."}},"type":"object"},"DatasetTemplate":{"description":"Dataset template used for dynamic dataset creation.","properties":{"datasetIdPrefix":{"description":"If supplied, every created dataset will have its name prefixed by the provided value. The prefix and name will be separated by an underscore. i.e. _.","type":"string"},"kmsKeyName":{"description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information.","type":"string"},"location":{"description":"Required. The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.","type":"string"}},"type":"object"},"DataverseSourceConfig":{"description":"Configuration for syncing data from a Dataverse source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"DestinationConfig":{"description":"The configuration of the stream destination.","properties":{"bigqueryDestinationConfig":{"$ref":"#/$defs/BigQueryDestinationConfig","description":"BigQuery destination configuration."},"destinationConnectionProfile":{"description":"Required. Destination connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`","type":"string"},"gcsDestinationConfig":{"$ref":"#/$defs/GcsDestinationConfig","description":"A configuration for how data should be loaded to Cloud Storage."}},"type":"object"},"DropLargeObjects":{"description":"Configuration to drop large object values.","properties":{},"type":"object"},"Error":{"description":"Represent a user-facing Error.","properties":{"details":{"additionalProperties":{"type":"string"},"description":"Additional information about the error.","type":"object"},"errorTime":{"description":"The time when the error occurred.","format":"date-time","type":"string"},"errorUuid":{"description":"A unique identifier for this specific error, allowing it to be traced throughout the system in logs and API responses.","type":"string"},"message":{"description":"A message containing more information about the error that occurred.","type":"string"},"reason":{"description":"A title that explains the reason for the error.","type":"string"}},"type":"object"},"GcsDestinationConfig":{"description":"Google Cloud Storage destination configuration","properties":{"avroFileFormat":{"$ref":"#/$defs/AvroFileFormat","description":"AVRO file format configuration."},"fileRotationInterval":{"description":"The maximum duration for which new events are added before a file is closed and a new file is created. Values within the range of 15-60 seconds are allowed.","format":"google-duration","type":"string"},"fileRotationMb":{"description":"The maximum file size to be saved in the bucket.","format":"int32","type":"integer"},"jsonFileFormat":{"$ref":"#/$defs/JsonFileFormat","description":"JSON file format configuration."},"path":{"description":"Path inside the Cloud Storage bucket to write data to.","type":"string"}},"type":"object"},"Gtid":{"description":"Use GTID based replication.","properties":{},"type":"object"},"IngestionTimePartition":{"description":"Ingestion time partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#ingestion_time","properties":{"partitioningTimeGranularity":{"description":"Optional. Partition granularity","enum":["PARTITIONING_TIME_GRANULARITY_UNSPECIFIED","PARTITIONING_TIME_GRANULARITY_HOUR","PARTITIONING_TIME_GRANULARITY_DAY","PARTITIONING_TIME_GRANULARITY_MONTH","PARTITIONING_TIME_GRANULARITY_YEAR"],"type":"string","x-google-enum-descriptions":["Unspecified partitioing interval.","Hourly partitioning.","Daily partitioning.","Monthly partitioning.","Yearly partitioning."]}},"type":"object"},"IntegerRangePartition":{"description":"Integer range partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#integer_range","properties":{"column":{"description":"Required. The partitioning column.","type":"string"},"end":{"description":"Required. The ending value for range partitioning (exclusive).","format":"int64","type":"string"},"interval":{"description":"Required. The interval of each range within the partition.","format":"int64","type":"string"},"start":{"description":"Required. The starting value for range partitioning (inclusive).","format":"int64","type":"string"}},"type":"object"},"JsonFileFormat":{"description":"JSON file format configuration.","properties":{"compression":{"description":"Compression of the loaded JSON file.","enum":["JSON_COMPRESSION_UNSPECIFIED","NO_COMPRESSION","GZIP"],"type":"string","x-google-enum-descriptions":["Unspecified json file compression.","Do not compress JSON file.","Gzip compression."]},"schemaFileFormat":{"description":"The schema file format along JSON data files.","enum":["SCHEMA_FILE_FORMAT_UNSPECIFIED","NO_SCHEMA_FILE","AVRO_SCHEMA_FILE"],"type":"string","x-google-enum-descriptions":["Unspecified schema file format.","Do not attach schema file.","Avro schema format."]}},"type":"object"},"LogFileDirectories":{"description":"Configuration to specify the Oracle directories to access the log files.","properties":{"archivedLogDirectory":{"description":"Required. Oracle directory for archived logs.","type":"string"},"onlineLogDirectory":{"description":"Required. Oracle directory for online logs.","type":"string"}},"type":"object"},"LogMiner":{"description":"Configuration to use LogMiner CDC method.","properties":{},"type":"object"},"Merge":{"description":"Merge mode defines that all changes to a table will be merged at the destination table.","properties":{},"type":"object"},"MongodbCluster":{"description":"MongoDB Cluster structure.","properties":{"databases":{"description":"MongoDB databases in the cluster.","items":{"$ref":"#/$defs/MongodbDatabase"},"type":"array"}},"type":"object"},"MongodbCollection":{"description":"MongoDB Collection.","properties":{"collection":{"description":"The collection name.","type":"string"},"fields":{"description":"Fields in the collection.","items":{"$ref":"#/$defs/MongodbField"},"type":"array"}},"type":"object"},"MongodbDatabase":{"description":"MongoDB Database.","properties":{"collections":{"description":"Collections in the database.","items":{"$ref":"#/$defs/MongodbCollection"},"type":"array"},"database":{"description":"The database name.","type":"string"}},"type":"object"},"MongodbField":{"description":"MongoDB Field.","properties":{"field":{"description":"The field name.","type":"string"}},"type":"object"},"MongodbObjectIdentifier":{"description":"MongoDB data source object identifier.","properties":{"collection":{"description":"Required. The collection name.","type":"string"},"database":{"description":"Required. The database name.","type":"string"}},"type":"object"},"MongodbSourceConfig":{"description":"Configuration for syncing data from a MongoDB source.","properties":{"excludeObjects":{"$ref":"#/$defs/MongodbCluster","description":"The MongoDB collections to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/MongodbCluster","description":"The MongoDB collections to include in the stream."},"jsonMode":{"description":"Optional. MongoDB JSON mode to use for the stream.","enum":["MONGODB_JSON_MODE_UNSPECIFIED","STRICT","CANONICAL"],"type":"string","x-google-enum-descriptions":["Unspecified JSON mode.","Strict JSON mode.","Canonical JSON mode."]},"maxConcurrentBackfillTasks":{"description":"Optional. Maximum number of concurrent backfill tasks. The number should be non-negative and less than or equal to 50. If not set (or set to 0), the system's default value is used","format":"int32","type":"integer"}},"type":"object"},"MysqlColumn":{"description":"MySQL Column.","properties":{"collation":{"description":"Column collation.","type":"string"},"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The MySQL data type. Full data types list can be found here: https://dev.mysql.com/doc/refman/8.0/en/data-types.html","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"MysqlDatabase":{"description":"MySQL database.","properties":{"database":{"description":"The database name.","type":"string"},"mysqlTables":{"description":"Tables in the database.","items":{"$ref":"#/$defs/MysqlTable"},"type":"array"}},"type":"object"},"MysqlObjectIdentifier":{"description":"Mysql data source object identifier.","properties":{"database":{"description":"Required. The database name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"MysqlRdbms":{"description":"MySQL database structure","properties":{"mysqlDatabases":{"description":"Mysql databases on the server","items":{"$ref":"#/$defs/MysqlDatabase"},"type":"array"}},"type":"object"},"MysqlSourceConfig":{"description":"Configuration for syncing data from a MySQL source.","properties":{"binaryLogPosition":{"$ref":"#/$defs/BinaryLogPosition","description":"Use Binary log position based replication."},"excludeObjects":{"$ref":"#/$defs/MysqlRdbms","description":"The MySQL objects to exclude from the stream."},"gtid":{"$ref":"#/$defs/Gtid","description":"Use GTID based replication."},"includeObjects":{"$ref":"#/$defs/MysqlRdbms","description":"The MySQL objects to retrieve from the source."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Maximum number of concurrent CDC tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"}},"type":"object"},"MysqlTable":{"description":"MySQL table.","properties":{"mysqlColumns":{"description":"MySQL columns in the database. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/MysqlColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"ObjectFilter":{"description":"Object filter to apply the rules to.","properties":{"sourceObjectIdentifier":{"$ref":"#/$defs/SourceObjectIdentifier","description":"Specific source object identifier."}},"type":"object"},"OracleAsmLogFileAccess":{"description":"Configuration to use Oracle ASM to access the log files.","properties":{},"type":"object"},"OracleColumn":{"description":"Oracle Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The Oracle data type.","type":"string"},"encoding":{"description":"Column encoding.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"OracleObjectIdentifier":{"description":"Oracle data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"OracleRdbms":{"description":"Oracle database structure.","properties":{"oracleSchemas":{"description":"Oracle schemas/databases in the database server.","items":{"$ref":"#/$defs/OracleSchema"},"type":"array"}},"type":"object"},"OracleSchema":{"description":"Oracle schema.","properties":{"oracleTables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/OracleTable"},"type":"array"},"schema":{"description":"The schema name.","type":"string"}},"type":"object"},"OracleSourceConfig":{"description":"Configuration for syncing data from an Oracle source.","properties":{"binaryLogParser":{"$ref":"#/$defs/BinaryLogParser","description":"Use Binary Log Parser."},"dropLargeObjects":{"$ref":"#/$defs/DropLargeObjects","description":"Drop large object values."},"excludeObjects":{"$ref":"#/$defs/OracleRdbms","description":"The Oracle objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/OracleRdbms","description":"The Oracle objects to include in the stream."},"logMiner":{"$ref":"#/$defs/LogMiner","description":"Use LogMiner."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Maximum number of concurrent CDC tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.","format":"int32","type":"integer"},"streamLargeObjects":{"$ref":"#/$defs/StreamLargeObjects","description":"Stream large object values."}},"type":"object"},"OracleTable":{"description":"Oracle table.","properties":{"oracleColumns":{"description":"Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/OracleColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"PostgresqlColumn":{"description":"PostgreSQL Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The PostgreSQL data type.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"PostgresqlObjectIdentifier":{"description":"PostgreSQL data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"PostgresqlRdbms":{"description":"PostgreSQL database structure.","properties":{"postgresqlSchemas":{"description":"PostgreSQL schemas in the database server.","items":{"$ref":"#/$defs/PostgresqlSchema"},"type":"array"}},"type":"object"},"PostgresqlSchema":{"description":"PostgreSQL schema.","properties":{"postgresqlTables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/PostgresqlTable"},"type":"array"},"schema":{"description":"The schema name.","type":"string"}},"type":"object"},"PostgresqlSourceConfig":{"description":"Configuration for syncing data from a PostgreSQL source.","properties":{"excludeObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"The PostgreSQL objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"The PostgreSQL objects to include in the stream."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"},"publication":{"description":"Required. The name of the publication that includes the set of all tables that are defined in the stream's include_objects.","type":"string"},"replicationSlot":{"description":"Required. Immutable. The name of the logical replication slot that's configured with the pgoutput plugin.","type":"string","x-google-immutable":true}},"type":"object"},"PostgresqlTable":{"description":"PostgreSQL table.","properties":{"postgresqlColumns":{"description":"PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/PostgresqlColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"RuleSet":{"description":"A set of rules to apply to a set of objects.","properties":{"customizationRules":{"description":"Required. List of customization rules to apply.","items":{"$ref":"#/$defs/CustomizationRule"},"type":"array"},"objectFilter":{"$ref":"#/$defs/ObjectFilter","description":"Required. Object filter to apply the customization rules to."}},"type":"object"},"SalesforceField":{"description":"Salesforce field.","properties":{"dataType":{"description":"The data type.","type":"string"},"name":{"description":"The field name.","type":"string"},"nillable":{"description":"Indicates whether the field can accept nil values.","type":"boolean"}},"type":"object"},"SalesforceMarketingCloudSourceConfig":{"description":"Configuration for syncing data from a Salesforce Marketing Cloud source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"fullRefreshPollingInterval":{"description":"Required. Specifies the polling interval for a full refresh of objects that do not support incremental sync. If not set, a default value of 24 hours is used. The duration must be between 1 and 24 hours, inclusive.","format":"google-duration","type":"string"},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"SalesforceObject":{"description":"Salesforce object.","properties":{"fields":{"description":"Salesforce fields. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SalesforceField"},"type":"array"},"objectName":{"description":"The object name.","type":"string"}},"type":"object"},"SalesforceObjectIdentifier":{"description":"Salesforce data source object identifier.","properties":{"objectName":{"description":"Required. The object name.","type":"string"}},"type":"object"},"SalesforceOrg":{"description":"Salesforce organization structure.","properties":{"objects":{"description":"Salesforce objects in the database server.","items":{"$ref":"#/$defs/SalesforceObject"},"type":"array"}},"type":"object"},"SalesforceSourceConfig":{"description":"Configuration for syncing data from a Salesforce source.","properties":{"excludeObjects":{"$ref":"#/$defs/SalesforceOrg","description":"The Salesforce objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SalesforceOrg","description":"The Salesforce objects to retrieve from the source."},"pollingInterval":{"description":"Required. Salesforce objects polling interval. The interval at which new changes will be polled for each object. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"ServiceNowSourceConfig":{"description":"Configuration for syncing data from a ServiceNow source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"SingleTargetDataset":{"description":"A single target dataset to which all data will be streamed.","properties":{"datasetId":{"description":"The dataset ID of the target dataset. DatasetIds allowed characters: https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets#datasetreference.","type":"string"}},"type":"object"},"SourceCatalog":{"description":"Source catalog.","properties":{"objects":{"description":"Optional. Source objects in the catalog.","items":{"$ref":"#/$defs/SourceObject"},"type":"array"}},"type":"object"},"SourceConfig":{"description":"The configuration of the stream source.","properties":{"dataverseSourceConfig":{"$ref":"#/$defs/DataverseSourceConfig","description":"Dataverse data source configuration."},"mongodbSourceConfig":{"$ref":"#/$defs/MongodbSourceConfig","description":"MongoDB data source configuration."},"mysqlSourceConfig":{"$ref":"#/$defs/MysqlSourceConfig","description":"MySQL data source configuration."},"oracleSourceConfig":{"$ref":"#/$defs/OracleSourceConfig","description":"Oracle data source configuration."},"postgresqlSourceConfig":{"$ref":"#/$defs/PostgresqlSourceConfig","description":"PostgreSQL data source configuration."},"salesforceMarketingCloudSourceConfig":{"$ref":"#/$defs/SalesforceMarketingCloudSourceConfig","description":"Salesforce Marketing Cloud data source configuration."},"salesforceSourceConfig":{"$ref":"#/$defs/SalesforceSourceConfig","description":"Salesforce data source configuration."},"serviceNowSourceConfig":{"$ref":"#/$defs/ServiceNowSourceConfig","description":"ServiceNow data source configuration."},"sourceConnectionProfile":{"description":"Required. Source connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`","type":"string"},"spannerSourceConfig":{"$ref":"#/$defs/SpannerSourceConfig","description":"Spanner data source configuration."},"sqlServerSourceConfig":{"$ref":"#/$defs/SqlServerSourceConfig","description":"SQLServer data source configuration."},"workdaySourceConfig":{"$ref":"#/$defs/WorkdaySourceConfig","description":"Optional. Workday data source configuration."}},"type":"object"},"SourceHierarchyDatasets":{"description":"Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy.","properties":{"datasetTemplate":{"$ref":"#/$defs/DatasetTemplate","description":"The dataset template to use for dynamic dataset creation."},"projectId":{"description":"Optional. The project id of the BigQuery dataset. If not specified, the project will be inferred from the stream resource.","type":"string"}},"type":"object"},"SourceObject":{"description":"Source object.","properties":{"objectName":{"description":"Required. The object name.","type":"string"},"properties":{"description":"Optional. Source properties. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SourceProperty"},"type":"array"}},"type":"object"},"SourceObjectIdentifier":{"description":"Represents an identifier of an object in the data source.","properties":{"mongodbIdentifier":{"$ref":"#/$defs/MongodbObjectIdentifier","description":"MongoDB data source object identifier."},"mysqlIdentifier":{"$ref":"#/$defs/MysqlObjectIdentifier","description":"Mysql data source object identifier."},"oracleIdentifier":{"$ref":"#/$defs/OracleObjectIdentifier","description":"Oracle data source object identifier."},"postgresqlIdentifier":{"$ref":"#/$defs/PostgresqlObjectIdentifier","description":"PostgreSQL data source object identifier."},"salesforceIdentifier":{"$ref":"#/$defs/SalesforceObjectIdentifier","description":"Salesforce data source object identifier."},"spannerIdentifier":{"$ref":"#/$defs/SpannerObjectIdentifier","description":"Spanner data source object identifier."},"sqlServerIdentifier":{"$ref":"#/$defs/SqlServerObjectIdentifier","description":"SQLServer data source object identifier."}},"type":"object"},"SourceProperty":{"description":"Source property.","properties":{"primaryKey":{"description":"Optional. Whether or not the property is a primary key.","type":"boolean"},"properties":{"description":"Optional. Source properties. When specified, it means that the current property contains nested properties of its own. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SourceProperty"},"type":"array"},"propertyName":{"description":"Required. The property name.","type":"string"}},"type":"object"},"SpannerColumn":{"description":"Spanner column.","properties":{"column":{"description":"Required. The column name.","type":"string"},"dataType":{"description":"Optional. Spanner data type.","type":"string"},"isPrimaryKey":{"description":"Optional. Whether or not the column is a primary key.","type":"boolean"},"ordinalPosition":{"description":"Optional. The ordinal position of the column in the table.","format":"int64","type":"string"}},"type":"object"},"SpannerDatabase":{"description":"Spanner database structure.","properties":{"schemas":{"description":"Optional. Spanner schemas in the database.","items":{"$ref":"#/$defs/SpannerSchema"},"type":"array"}},"type":"object"},"SpannerObjectIdentifier":{"description":"Spanner data source object identifier.","properties":{"schema":{"description":"Optional. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"SpannerSchema":{"description":"Spanner schema.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"tables":{"description":"Optional. Spanner tables in the schema.","items":{"$ref":"#/$defs/SpannerTable"},"type":"array"}},"type":"object"},"SpannerSourceConfig":{"description":"Configuration for syncing data from a Spanner source.","properties":{"backfillDataBoostEnabled":{"description":"Optional. Whether to use Data Boost for Spanner backfills. Defaults to false if not set.","type":"boolean"},"changeStreamName":{"description":"Required. Immutable. The change stream name to use for the stream.","type":"string","x-google-immutable":true},"excludeObjects":{"$ref":"#/$defs/SpannerDatabase","description":"Optional. The Spanner objects to avoid retrieving. If some objects are both included and excluded, an error will be thrown."},"fgacRole":{"description":"Optional. The FGAC role to use for the stream.","type":"string"},"includeObjects":{"$ref":"#/$defs/SpannerDatabase","description":"Optional. The Spanner objects to retrieve from the data source. If some objects are both included and excluded, an error will be thrown."},"maxConcurrentBackfillTasks":{"description":"Optional. Maximum number of concurrent backfill tasks.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Optional. Maximum number of concurrent CDC tasks.","format":"int32","type":"integer"},"spannerRpcPriority":{"description":"Optional. The RPC priority to use for the stream.","enum":["SPANNER_RPC_PRIORITY_UNSPECIFIED","LOW","MEDIUM","HIGH"],"type":"string","x-google-enum-descriptions":["Unspecified RPC priority.","Low RPC priority.","Medium RPC priority.","High RPC priority."]}},"type":"object"},"SpannerTable":{"description":"Spanner table.","properties":{"columns":{"description":"Optional. Spanner columns in the table.","items":{"$ref":"#/$defs/SpannerColumn"},"type":"array"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"SqlServerChangeTables":{"description":"Configuration to use Change Tables CDC read method.","properties":{},"type":"object"},"SqlServerColumn":{"description":"SQLServer Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The SQLServer data type.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"SqlServerObjectIdentifier":{"description":"SQLServer data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"SqlServerRdbms":{"description":"SQLServer database structure.","properties":{"schemas":{"description":"SQLServer schemas in the database server.","items":{"$ref":"#/$defs/SqlServerSchema"},"type":"array"}},"type":"object"},"SqlServerSchema":{"description":"SQLServer schema.","properties":{"schema":{"description":"The schema name.","type":"string"},"tables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/SqlServerTable"},"type":"array"}},"type":"object"},"SqlServerSourceConfig":{"description":"Configuration for syncing data from a SQLServer source.","properties":{"changeTables":{"$ref":"#/$defs/SqlServerChangeTables","description":"CDC reader reads from change tables."},"excludeObjects":{"$ref":"#/$defs/SqlServerRdbms","description":"The SQLServer objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SqlServerRdbms","description":"The SQLServer objects to include in the stream."},"maxConcurrentBackfillTasks":{"description":"Max concurrent backfill tasks.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Max concurrent CDC tasks.","format":"int32","type":"integer"},"transactionLogs":{"$ref":"#/$defs/SqlServerTransactionLogs","description":"CDC reader reads from transaction logs."}},"type":"object"},"SqlServerTable":{"description":"SQLServer table.","properties":{"columns":{"description":"SQLServer columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/SqlServerColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"SqlServerTransactionLogs":{"description":"Configuration to use Transaction Logs CDC read method.","properties":{},"type":"object"},"Stream":{"description":"A resource representing streaming data from a source to a destination.","properties":{"backfillAll":{"$ref":"#/$defs/BackfillAllStrategy","description":"Automatically backfill objects included in the stream source configuration. Specific objects can be excluded."},"backfillNone":{"$ref":"#/$defs/BackfillNoneStrategy","description":"Do not automatically backfill any objects."},"createTime":{"description":"Output only. The creation time of the stream.","format":"date-time","readOnly":true,"type":"string"},"customerManagedEncryptionKey":{"description":"Immutable. A reference to a KMS encryption key. If provided, it will be used to encrypt the data. If left blank, data will be encrypted using an internal Stream-specific encryption key provisioned through KMS.","type":"string","x-google-immutable":true},"destinationConfig":{"$ref":"#/$defs/DestinationConfig","description":"Required. Destination connection profile configuration."},"displayName":{"description":"Required. Display name.","type":"string"},"errors":{"description":"Output only. Errors on the Stream.","items":{"$ref":"#/$defs/Error"},"readOnly":true,"type":"array"},"labels":{"additionalProperties":{"type":"string"},"description":"Labels.","type":"object"},"lastRecoveryTime":{"description":"Output only. If the stream was recovered, the time of the last recovery. Note: This field is currently experimental.","format":"date-time","readOnly":true,"type":"string"},"name":{"description":"Output only. Identifier. The stream's name.","readOnly":true,"type":"string","x-google-identifier":true},"ruleSets":{"description":"Optional. Rule sets to apply to the stream.","items":{"$ref":"#/$defs/RuleSet"},"type":"array"},"satisfiesPzi":{"description":"Output only. Reserved for future use.","readOnly":true,"type":"boolean"},"satisfiesPzs":{"description":"Output only. Reserved for future use.","readOnly":true,"type":"boolean"},"sourceConfig":{"$ref":"#/$defs/SourceConfig","description":"Required. Source connection profile configuration."},"state":{"description":"The state of the stream.","enum":["STATE_UNSPECIFIED","NOT_STARTED","RUNNING","PAUSED","MAINTENANCE","FAILED","FAILED_PERMANENTLY","STARTING","DRAINING"],"type":"string","x-google-enum-descriptions":["Unspecified stream state.","The stream has been created but has not yet started streaming data.","The stream is running.","The stream is paused.","The stream is in maintenance mode. Updates are rejected on the resource in this state.","The stream is experiencing an error that is preventing data from being streamed.","The stream has experienced a terminal failure.","The stream is starting, but not yet running.","The Stream is no longer reading new events, but still writing events in the buffer."]},"updateTime":{"description":"Output only. The last update time of the stream.","format":"date-time","readOnly":true,"type":"string"}},"type":"object"},"StreamLargeObjects":{"description":"Configuration to stream large object values.","properties":{},"type":"object"},"TimeUnitPartition":{"description":"Time unit column partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#date_timestamp_partitioned_tables","properties":{"column":{"description":"Required. The partitioning column.","type":"string"},"partitioningTimeGranularity":{"description":"Optional. Partition granularity.","enum":["PARTITIONING_TIME_GRANULARITY_UNSPECIFIED","PARTITIONING_TIME_GRANULARITY_HOUR","PARTITIONING_TIME_GRANULARITY_DAY","PARTITI…after
{"$defs":{"AppendOnly":{"description":"AppendOnly mode defines that all changes to a table will be written to the destination table.","properties":{},"type":"object"},"AvroFileFormat":{"description":"AVRO file format configuration.","properties":{},"type":"object"},"BackfillAllStrategy":{"description":"Backfill strategy to automatically backfill the Stream's objects. Specific objects can be excluded.","properties":{"mongodbExcludedObjects":{"$ref":"#/$defs/MongodbCluster","description":"MongoDB data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"mysqlExcludedObjects":{"$ref":"#/$defs/MysqlRdbms","description":"MySQL data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"oracleExcludedObjects":{"$ref":"#/$defs/OracleRdbms","description":"Oracle data source objects to avoid backfilling. Only one of the following fields should be set: this field, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"postgresqlExcludedObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"PostgreSQL data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"saasExcludedObjects":{"$ref":"#/$defs/SourceCatalog","description":"Source catalog data source objects to avoid backfilling. This is mainly used to represent SaaS applications objects. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects."},"salesforceExcludedObjects":{"$ref":"#/$defs/SalesforceOrg","description":"Salesforce data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."},"spannerExcludedObjects":{"$ref":"#/$defs/SpannerDatabase","description":"Spanner data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, sqlServerExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, saasExcludedObjects."},"sqlServerExcludedObjects":{"$ref":"#/$defs/SqlServerRdbms","description":"SQLServer data source objects to avoid backfilling. Only one of the following fields should be set: this field, oracleExcludedObjects, mysqlExcludedObjects, postgresqlExcludedObjects, salesforceExcludedObjects, mongodbExcludedObjects, spannerExcludedObjects, saasExcludedObjects."}},"type":"object"},"BackfillNoneStrategy":{"description":"Backfill strategy to disable automatic backfill for the Stream's objects.","properties":{},"type":"object"},"BigQueryClustering":{"description":"BigQuery clustering configuration.","properties":{"columns":{"description":"Required. Column names to set as clustering columns.","items":{"type":"string"},"type":"array"}},"type":"object"},"BigQueryDestinationConfig":{"description":"BigQuery destination configuration","properties":{"appendOnly":{"$ref":"#/$defs/AppendOnly","description":"Append only mode. Only one of this field or merge should be set."},"blmtConfig":{"$ref":"#/$defs/BlmtConfig","description":"Optional. Big Lake Managed Tables (BLMT) configuration."},"dataFreshness":{"description":"The guaranteed data freshness (in seconds) when querying tables created by the stream. Editing this field will only affect new tables created in the future, but existing tables will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost.","format":"google-duration","type":"string"},"merge":{"$ref":"#/$defs/Merge","description":"The standard mode. Only one of this field or appendOnly should be set."},"singleTargetDataset":{"$ref":"#/$defs/SingleTargetDataset","description":"Single destination dataset. Only one of this field or sourceHierarchyDatasets should be set."},"sourceHierarchyDatasets":{"$ref":"#/$defs/SourceHierarchyDatasets","description":"Source hierarchy datasets. Only one of this field or singleTargetDataset should be set."}},"type":"object"},"BigQueryPartitioning":{"description":"BigQuery partitioning configuration.","properties":{"ingestionTimePartition":{"$ref":"#/$defs/IngestionTimePartition","description":"Ingestion time partitioning. Only one of the following fields should be set: this field, integerRangePartition, timeUnitPartition."},"integerRangePartition":{"$ref":"#/$defs/IntegerRangePartition","description":"Integer range partitioning. Only one of the following fields should be set: this field, timeUnitPartition, ingestionTimePartition."},"requirePartitionFilter":{"description":"Optional. If true, queries over the table require a partition filter.","type":"boolean"},"timeUnitPartition":{"$ref":"#/$defs/TimeUnitPartition","description":"Time unit column partitioning. Only one of the following fields should be set: this field, integerRangePartition, ingestionTimePartition."}},"type":"object"},"BinaryLogParser":{"description":"Configuration to use Binary Log Parser CDC technique.","properties":{"logFileDirectories":{"$ref":"#/$defs/LogFileDirectories","description":"Use Oracle directories. Only one of this field or oracleAsmLogFileAccess should be set."},"oracleAsmLogFileAccess":{"$ref":"#/$defs/OracleAsmLogFileAccess","description":"Use Oracle ASM. Only one of this field or logFileDirectories should be set."}},"type":"object"},"BinaryLogPosition":{"description":"Use Binary log position based replication.","properties":{},"type":"object"},"BlmtConfig":{"description":"The configuration for BLMT.","properties":{"bucket":{"description":"Required. The Cloud Storage bucket name.","type":"string"},"connectionName":{"description":"Required. The bigquery connection. Format: `{project}.{location}.{name}`","type":"string"},"fileFormat":{"description":"Required. The file format.","enum":["FILE_FORMAT_UNSPECIFIED","PARQUET"],"type":"string","x-google-enum-descriptions":["Default value.","Parquet file format."]},"rootPath":{"description":"The root path inside the Cloud Storage bucket.","type":"string"},"tableFormat":{"description":"Required. The table format.","enum":["TABLE_FORMAT_UNSPECIFIED","ICEBERG"],"type":"string","x-google-enum-descriptions":["Default value.","Iceberg table format."]}},"type":"object"},"CustomizationRule":{"description":"A customization rule to apply to a set of objects.","properties":{"bigqueryClustering":{"$ref":"#/$defs/BigQueryClustering","description":"BigQuery clustering rule. Only one of this field or bigqueryPartitioning should be set."},"bigqueryPartitioning":{"$ref":"#/$defs/BigQueryPartitioning","description":"BigQuery partitioning rule. Only one of this field or bigqueryClustering should be set."}},"type":"object"},"DatasetTemplate":{"description":"Dataset template used for dynamic dataset creation.","properties":{"datasetIdPrefix":{"description":"If supplied, every created dataset will have its name prefixed by the provided value. The prefix and name will be separated by an underscore. i.e. _.","type":"string"},"kmsKeyName":{"description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information.","type":"string"},"location":{"description":"Required. The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.","type":"string"}},"type":"object"},"DataverseSourceConfig":{"description":"Configuration for syncing data from a Dataverse source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"DestinationConfig":{"description":"The configuration of the stream destination.","properties":{"bigqueryDestinationConfig":{"$ref":"#/$defs/BigQueryDestinationConfig","description":"BigQuery destination configuration. Only one of this field or gcsDestinationConfig should be set."},"destinationConnectionProfile":{"description":"Required. Destination connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`","type":"string"},"gcsDestinationConfig":{"$ref":"#/$defs/GcsDestinationConfig","description":"A configuration for how data should be loaded to Cloud Storage. Only one of this field or bigqueryDestinationConfig should be set."}},"type":"object"},"DropLargeObjects":{"description":"Configuration to drop large object values.","properties":{},"type":"object"},"Error":{"description":"Represent a user-facing Error.","properties":{"details":{"additionalProperties":{"type":"string"},"description":"Additional information about the error.","type":"object"},"errorTime":{"description":"The time when the error occurred.","format":"date-time","type":"string"},"errorUuid":{"description":"A unique identifier for this specific error, allowing it to be traced throughout the system in logs and API responses.","type":"string"},"message":{"description":"A message containing more information about the error that occurred.","type":"string"},"reason":{"description":"A title that explains the reason for the error.","type":"string"}},"type":"object"},"GcsDestinationConfig":{"description":"Google Cloud Storage destination configuration","properties":{"avroFileFormat":{"$ref":"#/$defs/AvroFileFormat","description":"AVRO file format configuration. Only one of this field or jsonFileFormat should be set."},"fileRotationInterval":{"description":"The maximum duration for which new events are added before a file is closed and a new file is created. Values within the range of 15-60 seconds are allowed.","format":"google-duration","type":"string"},"fileRotationMb":{"description":"The maximum file size to be saved in the bucket.","format":"int32","type":"integer"},"jsonFileFormat":{"$ref":"#/$defs/JsonFileFormat","description":"JSON file format configuration. Only one of this field or avroFileFormat should be set."},"path":{"description":"Path inside the Cloud Storage bucket to write data to.","type":"string"}},"type":"object"},"Gtid":{"description":"Use GTID based replication.","properties":{},"type":"object"},"IngestionTimePartition":{"description":"Ingestion time partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#ingestion_time","properties":{"partitioningTimeGranularity":{"description":"Optional. Partition granularity","enum":["PARTITIONING_TIME_GRANULARITY_UNSPECIFIED","PARTITIONING_TIME_GRANULARITY_HOUR","PARTITIONING_TIME_GRANULARITY_DAY","PARTITIONING_TIME_GRANULARITY_MONTH","PARTITIONING_TIME_GRANULARITY_YEAR"],"type":"string","x-google-enum-descriptions":["Unspecified partitioing interval.","Hourly partitioning.","Daily partitioning.","Monthly partitioning.","Yearly partitioning."]}},"type":"object"},"IntegerRangePartition":{"description":"Integer range partitioning. see https://cloud.google.com/bigquery/docs/partitioned-tables#integer_range","properties":{"column":{"description":"Required. The partitioning column.","type":"string"},"end":{"description":"Required. The ending value for range partitioning (exclusive).","format":"int64","type":"string"},"interval":{"description":"Required. The interval of each range within the partition.","format":"int64","type":"string"},"start":{"description":"Required. The starting value for range partitioning (inclusive).","format":"int64","type":"string"}},"type":"object"},"JsonFileFormat":{"description":"JSON file format configuration.","properties":{"compression":{"description":"Compression of the loaded JSON file.","enum":["JSON_COMPRESSION_UNSPECIFIED","NO_COMPRESSION","GZIP"],"type":"string","x-google-enum-descriptions":["Unspecified json file compression.","Do not compress JSON file.","Gzip compression."]},"schemaFileFormat":{"description":"The schema file format along JSON data files.","enum":["SCHEMA_FILE_FORMAT_UNSPECIFIED","NO_SCHEMA_FILE","AVRO_SCHEMA_FILE"],"type":"string","x-google-enum-descriptions":["Unspecified schema file format.","Do not attach schema file.","Avro schema format."]}},"type":"object"},"LogFileDirectories":{"description":"Configuration to specify the Oracle directories to access the log files.","properties":{"archivedLogDirectory":{"description":"Required. Oracle directory for archived logs.","type":"string"},"onlineLogDirectory":{"description":"Required. Oracle directory for online logs.","type":"string"}},"type":"object"},"LogMiner":{"description":"Configuration to use LogMiner CDC method.","properties":{},"type":"object"},"Merge":{"description":"Merge mode defines that all changes to a table will be merged at the destination table.","properties":{},"type":"object"},"MongodbCluster":{"description":"MongoDB Cluster structure.","properties":{"databases":{"description":"MongoDB databases in the cluster.","items":{"$ref":"#/$defs/MongodbDatabase"},"type":"array"}},"type":"object"},"MongodbCollection":{"description":"MongoDB Collection.","properties":{"collection":{"description":"The collection name.","type":"string"},"fields":{"description":"Fields in the collection.","items":{"$ref":"#/$defs/MongodbField"},"type":"array"}},"type":"object"},"MongodbDatabase":{"description":"MongoDB Database.","properties":{"collections":{"description":"Collections in the database.","items":{"$ref":"#/$defs/MongodbCollection"},"type":"array"},"database":{"description":"The database name.","type":"string"}},"type":"object"},"MongodbField":{"description":"MongoDB Field.","properties":{"field":{"description":"The field name.","type":"string"}},"type":"object"},"MongodbObjectIdentifier":{"description":"MongoDB data source object identifier.","properties":{"collection":{"description":"Required. The collection name.","type":"string"},"database":{"description":"Required. The database name.","type":"string"}},"type":"object"},"MongodbSourceConfig":{"description":"Configuration for syncing data from a MongoDB source.","properties":{"excludeObjects":{"$ref":"#/$defs/MongodbCluster","description":"The MongoDB collections to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/MongodbCluster","description":"The MongoDB collections to include in the stream."},"jsonMode":{"description":"Optional. MongoDB JSON mode to use for the stream.","enum":["MONGODB_JSON_MODE_UNSPECIFIED","STRICT","CANONICAL"],"type":"string","x-google-enum-descriptions":["Unspecified JSON mode.","Strict JSON mode.","Canonical JSON mode."]},"maxConcurrentBackfillTasks":{"description":"Optional. Maximum number of concurrent backfill tasks. The number should be non-negative and less than or equal to 50. If not set (or set to 0), the system's default value is used","format":"int32","type":"integer"}},"type":"object"},"MysqlColumn":{"description":"MySQL Column.","properties":{"collation":{"description":"Column collation.","type":"string"},"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The MySQL data type. Full data types list can be found here: https://dev.mysql.com/doc/refman/8.0/en/data-types.html","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"MysqlDatabase":{"description":"MySQL database.","properties":{"database":{"description":"The database name.","type":"string"},"mysqlTables":{"description":"Tables in the database.","items":{"$ref":"#/$defs/MysqlTable"},"type":"array"}},"type":"object"},"MysqlObjectIdentifier":{"description":"Mysql data source object identifier.","properties":{"database":{"description":"Required. The database name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"MysqlRdbms":{"description":"MySQL database structure","properties":{"mysqlDatabases":{"description":"Mysql databases on the server","items":{"$ref":"#/$defs/MysqlDatabase"},"type":"array"}},"type":"object"},"MysqlSourceConfig":{"description":"Configuration for syncing data from a MySQL source.","properties":{"binaryLogPosition":{"$ref":"#/$defs/BinaryLogPosition","description":"Use Binary log position based replication. Only one of this field or gtid should be set."},"excludeObjects":{"$ref":"#/$defs/MysqlRdbms","description":"The MySQL objects to exclude from the stream."},"gtid":{"$ref":"#/$defs/Gtid","description":"Use GTID based replication. Only one of this field or binaryLogPosition should be set."},"includeObjects":{"$ref":"#/$defs/MysqlRdbms","description":"The MySQL objects to retrieve from the source."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Maximum number of concurrent CDC tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"}},"type":"object"},"MysqlTable":{"description":"MySQL table.","properties":{"mysqlColumns":{"description":"MySQL columns in the database. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/MysqlColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"ObjectFilter":{"description":"Object filter to apply the rules to.","properties":{"sourceObjectIdentifier":{"$ref":"#/$defs/SourceObjectIdentifier","description":"Specific source object identifier."}},"type":"object"},"OracleAsmLogFileAccess":{"description":"Configuration to use Oracle ASM to access the log files.","properties":{},"type":"object"},"OracleColumn":{"description":"Oracle Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The Oracle data type.","type":"string"},"encoding":{"description":"Column encoding.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"OracleObjectIdentifier":{"description":"Oracle data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"OracleRdbms":{"description":"Oracle database structure.","properties":{"oracleSchemas":{"description":"Oracle schemas/databases in the database server.","items":{"$ref":"#/$defs/OracleSchema"},"type":"array"}},"type":"object"},"OracleSchema":{"description":"Oracle schema.","properties":{"oracleTables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/OracleTable"},"type":"array"},"schema":{"description":"The schema name.","type":"string"}},"type":"object"},"OracleSourceConfig":{"description":"Configuration for syncing data from an Oracle source.","properties":{"binaryLogParser":{"$ref":"#/$defs/BinaryLogParser","description":"Use Binary Log Parser. Only one of this field or logMiner should be set."},"dropLargeObjects":{"$ref":"#/$defs/DropLargeObjects","description":"Drop large object values. Only one of this field or streamLargeObjects should be set."},"excludeObjects":{"$ref":"#/$defs/OracleRdbms","description":"The Oracle objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/OracleRdbms","description":"The Oracle objects to include in the stream."},"logMiner":{"$ref":"#/$defs/LogMiner","description":"Use LogMiner. Only one of this field or binaryLogParser should be set."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.","format":"int32","type":"integer"},"maxConcurrentCdcTasks":{"description":"Maximum number of concurrent CDC tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.","format":"int32","type":"integer"},"streamLargeObjects":{"$ref":"#/$defs/StreamLargeObjects","description":"Stream large object values. Only one of this field or dropLargeObjects should be set."}},"type":"object"},"OracleTable":{"description":"Oracle table.","properties":{"oracleColumns":{"description":"Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/OracleColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"PostgresqlColumn":{"description":"PostgreSQL Column.","properties":{"column":{"description":"The column name.","type":"string"},"dataType":{"description":"The PostgreSQL data type.","type":"string"},"length":{"description":"Column length.","format":"int32","type":"integer"},"nullable":{"description":"Whether or not the column can accept a null value.","type":"boolean"},"ordinalPosition":{"description":"The ordinal position of the column in the table.","format":"int32","type":"integer"},"precision":{"description":"Column precision.","format":"int32","type":"integer"},"primaryKey":{"description":"Whether or not the column represents a primary key.","type":"boolean"},"scale":{"description":"Column scale.","format":"int32","type":"integer"}},"type":"object"},"PostgresqlObjectIdentifier":{"description":"PostgreSQL data source object identifier.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"PostgresqlRdbms":{"description":"PostgreSQL database structure.","properties":{"postgresqlSchemas":{"description":"PostgreSQL schemas in the database server.","items":{"$ref":"#/$defs/PostgresqlSchema"},"type":"array"}},"type":"object"},"PostgresqlSchema":{"description":"PostgreSQL schema.","properties":{"postgresqlTables":{"description":"Tables in the schema.","items":{"$ref":"#/$defs/PostgresqlTable"},"type":"array"},"schema":{"description":"The schema name.","type":"string"}},"type":"object"},"PostgresqlSourceConfig":{"description":"Configuration for syncing data from a PostgreSQL source.","properties":{"excludeObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"The PostgreSQL objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/PostgresqlRdbms","description":"The PostgreSQL objects to include in the stream."},"maxConcurrentBackfillTasks":{"description":"Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.","format":"int32","type":"integer"},"publication":{"description":"Required. The name of the publication that includes the set of all tables that are defined in the stream's include_objects.","type":"string"},"replicationSlot":{"description":"Required. Immutable. The name of the logical replication slot that's configured with the pgoutput plugin.","type":"string","x-google-immutable":true}},"type":"object"},"PostgresqlTable":{"description":"PostgreSQL table.","properties":{"postgresqlColumns":{"description":"PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.","items":{"$ref":"#/$defs/PostgresqlColumn"},"type":"array"},"table":{"description":"The table name.","type":"string"}},"type":"object"},"RuleSet":{"description":"A set of rules to apply to a set of objects.","properties":{"customizationRules":{"description":"Required. List of customization rules to apply.","items":{"$ref":"#/$defs/CustomizationRule"},"type":"array"},"objectFilter":{"$ref":"#/$defs/ObjectFilter","description":"Required. Object filter to apply the customization rules to."}},"type":"object"},"SalesforceField":{"description":"Salesforce field.","properties":{"dataType":{"description":"The data type.","type":"string"},"name":{"description":"The field name.","type":"string"},"nillable":{"description":"Indicates whether the field can accept nil values.","type":"boolean"}},"type":"object"},"SalesforceMarketingCloudSourceConfig":{"description":"Configuration for syncing data from a Salesforce Marketing Cloud source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"fullRefreshPollingInterval":{"description":"Required. Specifies the polling interval for a full refresh of objects that do not support incremental sync. If not set, a default value of 24 hours is used. The duration must be between 1 and 24 hours, inclusive.","format":"google-duration","type":"string"},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"SalesforceObject":{"description":"Salesforce object.","properties":{"fields":{"description":"Salesforce fields. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SalesforceField"},"type":"array"},"objectName":{"description":"The object name.","type":"string"}},"type":"object"},"SalesforceObjectIdentifier":{"description":"Salesforce data source object identifier.","properties":{"objectName":{"description":"Required. The object name.","type":"string"}},"type":"object"},"SalesforceOrg":{"description":"Salesforce organization structure.","properties":{"objects":{"description":"Salesforce objects in the database server.","items":{"$ref":"#/$defs/SalesforceObject"},"type":"array"}},"type":"object"},"SalesforceSourceConfig":{"description":"Configuration for syncing data from a Salesforce source.","properties":{"excludeObjects":{"$ref":"#/$defs/SalesforceOrg","description":"The Salesforce objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SalesforceOrg","description":"The Salesforce objects to retrieve from the source."},"pollingInterval":{"description":"Required. Salesforce objects polling interval. The interval at which new changes will be polled for each object. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"ServiceNowSourceConfig":{"description":"Configuration for syncing data from a ServiceNow source.","properties":{"excludeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to exclude from the stream."},"includeObjects":{"$ref":"#/$defs/SourceCatalog","description":"Optional. The objects to retrieve from the source."},"pollingInterval":{"description":"Required. Incremental sync polling interval for all objects. If not set, a default value of `5 minutes` is used. The duration must be from `5 minutes` to `24 hours`, inclusive.","format":"google-duration","type":"string"}},"type":"object"},"SingleTargetDataset":{"description":"A single target dataset to which all data will be streamed.","properties":{"datasetId":{"description":"The dataset ID of the target dataset. DatasetIds allowed characters: https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets#datasetreference.","type":"string"}},"type":"object"},"SourceCatalog":{"description":"Source catalog.","properties":{"objects":{"description":"Optional. Source objects in the catalog.","items":{"$ref":"#/$defs/SourceObject"},"type":"array"}},"type":"object"},"SourceConfig":{"description":"The configuration of the stream source.","properties":{"dataverseSourceConfig":{"$ref":"#/$defs/DataverseSourceConfig","description":"Dataverse data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"mongodbSourceConfig":{"$ref":"#/$defs/MongodbSourceConfig","description":"MongoDB data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"mysqlSourceConfig":{"$ref":"#/$defs/MysqlSourceConfig","description":"MySQL data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"oracleSourceConfig":{"$ref":"#/$defs/OracleSourceConfig","description":"Oracle data source configuration. Only one of the following fields should be set: this field, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"postgresqlSourceConfig":{"$ref":"#/$defs/PostgresqlSourceConfig","description":"PostgreSQL data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"salesforceMarketingCloudSourceConfig":{"$ref":"#/$defs/SalesforceMarketingCloudSourceConfig","description":"Salesforce Marketing Cloud data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"salesforceSourceConfig":{"$ref":"#/$defs/SalesforceSourceConfig","description":"Salesforce data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"serviceNowSourceConfig":{"$ref":"#/$defs/ServiceNowSourceConfig","description":"ServiceNow data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, workdaySourceConfig."},"sourceConnectionProfile":{"description":"Required. Source connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`","type":"string"},"spannerSourceConfig":{"$ref":"#/$defs/SpannerSourceConfig","description":"Spanner data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"sqlServerSourceConfig":{"$ref":"#/$defs/SqlServerSourceConfig","description":"SQLServer data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig, workdaySourceConfig."},"workdaySourceConfig":{"$ref":"#/$defs/WorkdaySourceConfig","description":"Optional. Workday data source configuration. Only one of the following fields should be set: this field, oracleSourceConfig, mysqlSourceConfig, postgresqlSourceConfig, sqlServerSourceConfig, salesforceSourceConfig, mongodbSourceConfig, spannerSourceConfig, dataverseSourceConfig, salesforceMarketingCloudSourceConfig, serviceNowSourceConfig."}},"type":"object"},"SourceHierarchyDatasets":{"description":"Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy.","properties":{"datasetTemplate":{"$ref":"#/$defs/DatasetTemplate","description":"The dataset template to use for dynamic dataset creation."},"projectId":{"description":"Optional. The project id of the BigQuery dataset. If not specified, the project will be inferred from the stream resource.","type":"string"}},"type":"object"},"SourceObject":{"description":"Source object.","properties":{"objectName":{"description":"Required. The object name.","type":"string"},"properties":{"description":"Optional. Source properties. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SourceProperty"},"type":"array"}},"type":"object"},"SourceObjectIdentifier":{"description":"Represents an identifier of an object in the data source.","properties":{"mongodbIdentifier":{"$ref":"#/$defs/MongodbObjectIdentifier","description":"MongoDB data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, spannerIdentifier."},"mysqlIdentifier":{"$ref":"#/$defs/MysqlObjectIdentifier","description":"Mysql data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"oracleIdentifier":{"$ref":"#/$defs/OracleObjectIdentifier","description":"Oracle data source object identifier. Only one of the following fields should be set: this field, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"postgresqlIdentifier":{"$ref":"#/$defs/PostgresqlObjectIdentifier","description":"PostgreSQL data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"salesforceIdentifier":{"$ref":"#/$defs/SalesforceObjectIdentifier","description":"Salesforce data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, mongodbIdentifier, spannerIdentifier."},"spannerIdentifier":{"$ref":"#/$defs/SpannerObjectIdentifier","description":"Spanner data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier."},"sqlServerIdentifier":{"$ref":"#/$defs/SqlServerObjectIdentifier","description":"SQLServer data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."}},"type":"object"},"SourceProperty":{"description":"Source property.","properties":{"primaryKey":{"description":"Optional. Whether or not the property is a primary key.","type":"boolean"},"properties":{"description":"Optional. Source properties. When specified, it means that the current property contains nested properties of its own. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.","items":{"$ref":"#/$defs/SourceProperty"},"type":"array"},"propertyName":{"description":"Required. The property name.","type":"string"}},"type":"object"},"SpannerColumn":{"description":"Spanner column.","properties":{"column":{"description":"Required. The column name.","type":"string"},"dataType":{"description":"Optional. Spanner data type.","type":"string"},"isPrimaryKey":{"description":"Optional. Whether or not the column is a primary key.","type":"boolean"},"ordinalPosition":{"description":"Optional. The ordinal position of the column in the table.","format":"int64","type":"string"}},"type":"object"},"SpannerDatabase":{"description":"Spanner database structure.","properties":{"schemas":{"description":"Optional. Spanner schemas in the database.","items":{"$ref":"#/$defs/SpannerSchema"},"type":"array"}},"type":"object"},"SpannerObjectIdentifier":{"description":"Spanner data source object identifier.","properties":{"schema":{"description":"Optional. The schema name.","type":"string"},"table":{"description":"Required. The table name.","type":"string"}},"type":"object"},"SpannerSchema":{"description":"Spanner schema.","properties":{"schema":{"description":"Required. The schema name.","type":"string"},"tables":{"description":"Optional. Spanner tables in the schema.","items":{"$ref":"#/$defs/SpannerTable"},"type":"array"}},"type":"object"},"SpannerSourceConfig":{"description":"Configuration for syncing data from a Spanner source.","properties":{"backfillDataBoostEnabled":{"description":"Optional. Whether to use Data Boost for Spanner backfills. Defaults to false if not set.","type":"boolean"},"changeStreamName":{"description":"Required. Immutable. The change stream name to use for the stream.","type":"string","x-google-immutable":true},"excludeObjects":{"$ref":"#/$defs/SpannerDa…⟨153 unchanged words⟩ ","description":"MongoDB data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, spannerIdentifier."},"mysqlIdentifier":{"$ref":"#/$defs/MysqlObjectIdentifier","description":"Mysql data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"oracleIdentifier":{"$ref":"#/$defs/OracleObjectIdentifier","description":"Oracle data source object identifier. Only one of the following fields should be set: this field, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"postgresqlIdentifier":{"$ref":"#/$defs/PostgresqlObjectIdentifier","description":"PostgreSQL data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"salesforceIdentifier":{"$ref":"#/$defs/SalesforceObjectIdentifier","description":"Salesforce data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, mongodbIdentifier, spannerIdentifier."},"spannerIdentifier":{"$ref":"#/$defs/SpannerObjectIdentifier","description":"Spanner data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier."},"sqlServerIdentifier":{"$ref":"#/$defs/SqlServerObjectIdentifier","description":"SQLServer data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."}},"type":"object"},"SpannerObjectIdentifier" ⟨105 unchanged words⟩
⟨238 unchanged words⟩ ":"#/$defs/IngestionTimePartition","description":"Ingestion time partitioning. Only one of the following fields should be set: this field, integerRangePartition, timeUnitPartition."},"integerRangePartition":{"$ref":"#/$defs/IntegerRangePartition","description":"Integer range partitioning. Only one of the following fields should be set: this field, timeUnitPartition, ingestionTimePartition."},"requirePartitionFilter":{"description":"Optional. If ⟨13 unchanged words⟩ "#/$defs/TimeUnitPartition","description":"Time unit column partitioning. Only one of the following fields should be set: this field, integerRangePartition, ingestionTimePartition."}},"type":"object"},"CustomizationRule" ⟨14 unchanged words⟩ ":"#/$defs/BigQueryClustering","description":"BigQuery clustering rule. Only one of this field or bigqueryPartitioning should be set."},"bigqueryPartitioning":{"$ref":"#/$defs/BigQueryPartitioning","description":"BigQuery partitioning rule. Only one of this field or bigqueryClustering should be set."}},"type":"object"},"Error" ⟨364 unchanged words⟩ ","description":"MongoDB data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, spannerIdentifier."},"mysqlIdentifier":{"$ref":"#/$defs/MysqlObjectIdentifier","description":"Mysql data source object identifier. Only one of the following fields should be set: this field, oracleIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier."},"oracleIdentifier":{"$ref":"#/$defs/OracleObjectIdentifier","description":"Oracle data source object identifier. Only one of the following fields should be set: this field, mysqlIdentifier, postgresqlIdentifier, sqlServerIdentifier, salesforceIdentifier, mongodbIdentifier, spannerIdentifier.
⟨20 unchanged words⟩ from the most recent position in the source. Only one of the following fields should be set: this field, nextAvailableStartPosition, specificStartPosition."},"nextAvailableStartPosition":{"$ref":"#/$defs/NextAvailableStartPosition", ⟨4 unchanged words⟩ from the next available position in the source. Only one of the following fields should be set: this field, mostRecentStartPosition, specificStartPosition."},"specificStartPosition":{"$ref":"#/$defs/SpecificStartPosition","description":"Optional. Start replicating from a specific position in the source. Only one of the following fields should be set: this field, mostRecentStartPosition, nextAvailableStartPosition."}},"type":"object"},"MongodbChangeStreamPosition" ⟨207 unchanged words⟩ "MongoDB change stream position to start replicating from. Only one of the following fields should be set: this field, mysqlLogPosition, oracleScnPosition, sqlServerLsnPosition, mysqlGtidPosition, spannerChangeStreamPosition."},"mysqlGtidPosition":{"$ref":"#/$defs/MysqlGtidPosition","description":"MySQL GTID set to start replicating from. Only one of the following fields should be set: this field, mysqlLogPosition, oracleScnPosition, sqlServerLsnPosition, mongodbChangeStreamPosition, spannerChangeStreamPosition."},"mysqlLogPosition":{"$ref":"#/$defs/MysqlLogPosition","description":"MySQL specific log position to start replicating from. Only one of the following fields should be set: this field, oracleScnPosition, sqlServerLsnPosition, mysqlGtidPosition, mongodbChangeStreamPosition, spannerChangeStreamPosition."},"oracleScnPosition":{"$ref":"#/$defs/OracleScnPosition","description":"Oracle SCN to start replicating from. Only one of the following fields should be set: this field, mysqlLogPosition, sqlServerLsnPosition, mysqlGtidPosition, mongodbChangeStreamPosition, spannerChangeStreamPosition."},"spannerChangeStreamPosition":{"$ref":"#/$defs/SpannerChangeStreamPosition","description":"Optional. Spanner change stream position to start replicating from. Only one of the following fields should be set: this field, mysqlLogPosition, oracleScnPosition, sqlServerLsnPosition, mysqlGtidPosition, mongodbChangeStreamPosition."},"sqlServerLsnPosition":{"$ref":"#/$defs/SqlServerLsnPosition","description":"SqlServer LSN to start replicating from. Only one of the following fields should be set: this field, mysqlLogPosition, oracleScnPosition, mysqlGtidPosition, mongodbChangeStreamPosition, spannerChangeStreamPosition."}},"type":"object"},"SqlServerLsnPosition" ⟨90 unchanged words⟩
⟨216 unchanged words⟩ the operation in case of failure or cancellation. Only one of this field or response should be set."},"metadata":{"additionalProperties":{"description" ⟨166 unchanged words⟩ ()`, the inferred response type is `TakeSnapshotResponse`. Only one of this field or error should be set.","type":"object"}},"type":"object"}