@googleapis/datastream
Version:
1,676 lines (1,667 loc) • 278 kB
text/typescript
// Copyright 2020 Google LLC
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable @typescript-eslint/no-unused-vars */
/* eslint-disable @typescript-eslint/no-empty-interface */
/* eslint-disable @typescript-eslint/no-namespace */
/* eslint-disable no-irregular-whitespace */
import {
OAuth2Client,
JWT,
Compute,
UserRefreshClient,
BaseExternalAccountClient,
GaxiosResponseWithHTTP2,
GoogleConfigurable,
createAPIRequest,
MethodOptions,
StreamMethodOptions,
GlobalOptions,
GoogleAuth,
BodyResponseCallback,
APIRequestContext,
} from 'googleapis-common';
import {Readable} from 'stream';
export namespace datastream_v1 {
export interface Options extends GlobalOptions {
version: 'v1';
}
interface StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?:
| string
| OAuth2Client
| JWT
| Compute
| UserRefreshClient
| BaseExternalAccountClient
| GoogleAuth;
/**
* V1 error format.
*/
'$.xgafv'?: string;
/**
* OAuth access token.
*/
access_token?: string;
/**
* Data format for response.
*/
alt?: string;
/**
* JSONP
*/
callback?: string;
/**
* Selector specifying which fields to include in a partial response.
*/
fields?: string;
/**
* API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
*/
key?: string;
/**
* OAuth 2.0 token for the current user.
*/
oauth_token?: string;
/**
* Returns response with indentations and line breaks.
*/
prettyPrint?: boolean;
/**
* Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
*/
quotaUser?: string;
/**
* Legacy upload protocol for media (e.g. "media", "multipart").
*/
uploadType?: string;
/**
* Upload protocol for media (e.g. "raw", "multipart").
*/
upload_protocol?: string;
}
/**
* Datastream API
*
*
*
* @example
* ```js
* const {google} = require('googleapis');
* const datastream = google.datastream('v1');
* ```
*/
export class Datastream {
context: APIRequestContext;
projects: Resource$Projects;
constructor(options: GlobalOptions, google?: GoogleConfigurable) {
this.context = {
_options: options || {},
google,
};
this.projects = new Resource$Projects(this.context);
}
}
/**
* AppendOnly mode defines that all changes to a table will be written to the destination table.
*/
export interface Schema$AppendOnly {}
/**
* AVRO file format configuration.
*/
export interface Schema$AvroFileFormat {}
/**
* Backfill strategy to automatically backfill the Stream's objects. Specific objects can be excluded.
*/
export interface Schema$BackfillAllStrategy {
/**
* MongoDB data source objects to avoid backfilling
*/
mongodbExcludedObjects?: Schema$MongodbCluster;
/**
* MySQL data source objects to avoid backfilling.
*/
mysqlExcludedObjects?: Schema$MysqlRdbms;
/**
* Oracle data source objects to avoid backfilling.
*/
oracleExcludedObjects?: Schema$OracleRdbms;
/**
* PostgreSQL data source objects to avoid backfilling.
*/
postgresqlExcludedObjects?: Schema$PostgresqlRdbms;
/**
* Salesforce data source objects to avoid backfilling
*/
salesforceExcludedObjects?: Schema$SalesforceOrg;
/**
* SQLServer data source objects to avoid backfilling
*/
sqlServerExcludedObjects?: Schema$SqlServerRdbms;
}
/**
* Represents a backfill job on a specific stream object.
*/
export interface Schema$BackfillJob {
/**
* Output only. Errors which caused the backfill job to fail.
*/
errors?: Schema$Error[];
/**
* Output only. Backfill job's end time.
*/
lastEndTime?: string | null;
/**
* Output only. Backfill job's start time.
*/
lastStartTime?: string | null;
/**
* Output only. Backfill job state.
*/
state?: string | null;
/**
* Backfill job's triggering reason.
*/
trigger?: string | null;
}
/**
* Backfill strategy to disable automatic backfill for the Stream's objects.
*/
export interface Schema$BackfillNoneStrategy {}
/**
* Message to represent the option where Datastream will enforce encryption without authenticating server identity. Server certificates will be trusted by default.
*/
export interface Schema$BasicEncryption {}
/**
* BigQuery destination configuration
*/
export interface Schema$BigQueryDestinationConfig {
/**
* Append only mode
*/
appendOnly?: Schema$AppendOnly;
/**
* Optional. Big Lake Managed Tables (BLMT) configuration.
*/
blmtConfig?: Schema$BlmtConfig;
/**
* 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.
*/
dataFreshness?: string | null;
/**
* The standard mode
*/
merge?: Schema$Merge;
/**
* Single destination dataset.
*/
singleTargetDataset?: Schema$SingleTargetDataset;
/**
* Source hierarchy datasets.
*/
sourceHierarchyDatasets?: Schema$SourceHierarchyDatasets;
}
/**
* BigQuery warehouse profile.
*/
export interface Schema$BigQueryProfile {}
/**
* Configuration to use Binary Log Parser CDC technique.
*/
export interface Schema$BinaryLogParser {
/**
* Use Oracle directories.
*/
logFileDirectories?: Schema$LogFileDirectories;
/**
* Use Oracle ASM.
*/
oracleAsmLogFileAccess?: Schema$OracleAsmLogFileAccess;
}
/**
* Use Binary log position based replication.
*/
export interface Schema$BinaryLogPosition {}
/**
* The configuration for BLMT.
*/
export interface Schema$BlmtConfig {
/**
* Required. The Cloud Storage bucket name.
*/
bucket?: string | null;
/**
* Required. The bigquery connection. Format: `{project\}.{location\}.{name\}`
*/
connectionName?: string | null;
/**
* Required. The file format.
*/
fileFormat?: string | null;
/**
* The root path inside the Cloud Storage bucket.
*/
rootPath?: string | null;
/**
* Required. The table format.
*/
tableFormat?: string | null;
}
/**
* The request message for Operations.CancelOperation.
*/
export interface Schema$CancelOperationRequest {}
/**
* The strategy that the stream uses for CDC replication.
*/
export interface Schema$CdcStrategy {
/**
* Optional. Start replicating from the most recent position in the source.
*/
mostRecentStartPosition?: Schema$MostRecentStartPosition;
/**
* Optional. Resume replication from the next available position in the source.
*/
nextAvailableStartPosition?: Schema$NextAvailableStartPosition;
/**
* Optional. Start replicating from a specific position in the source.
*/
specificStartPosition?: Schema$SpecificStartPosition;
}
/**
* A set of reusable connection configurations to be used as a source or destination for a stream.
*/
export interface Schema$ConnectionProfile {
/**
* BigQuery Connection Profile configuration.
*/
bigqueryProfile?: Schema$BigQueryProfile;
/**
* Output only. The create time of the resource.
*/
createTime?: string | null;
/**
* Required. Display name.
*/
displayName?: string | null;
/**
* Forward SSH tunnel connectivity.
*/
forwardSshConnectivity?: Schema$ForwardSshTunnelConnectivity;
/**
* Cloud Storage ConnectionProfile configuration.
*/
gcsProfile?: Schema$GcsProfile;
/**
* Labels.
*/
labels?: {[key: string]: string} | null;
/**
* MongoDB Connection Profile configuration.
*/
mongodbProfile?: Schema$MongodbProfile;
/**
* MySQL ConnectionProfile configuration.
*/
mysqlProfile?: Schema$MysqlProfile;
/**
* Output only. Identifier. The resource's name.
*/
name?: string | null;
/**
* Oracle ConnectionProfile configuration.
*/
oracleProfile?: Schema$OracleProfile;
/**
* PostgreSQL Connection Profile configuration.
*/
postgresqlProfile?: Schema$PostgresqlProfile;
/**
* Private connectivity.
*/
privateConnectivity?: Schema$PrivateConnectivity;
/**
* Salesforce Connection Profile configuration.
*/
salesforceProfile?: Schema$SalesforceProfile;
/**
* Output only. Reserved for future use.
*/
satisfiesPzi?: boolean | null;
/**
* Output only. Reserved for future use.
*/
satisfiesPzs?: boolean | null;
/**
* SQLServer Connection Profile configuration.
*/
sqlServerProfile?: Schema$SqlServerProfile;
/**
* Static Service IP connectivity.
*/
staticServiceIpConnectivity?: Schema$StaticServiceIpConnectivity;
/**
* Output only. The update time of the resource.
*/
updateTime?: string | null;
}
/**
* Dataset template used for dynamic dataset creation.
*/
export interface Schema$DatasetTemplate {
/**
* 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. _.
*/
datasetIdPrefix?: string | null;
/**
* 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.
*/
kmsKeyName?: string | null;
/**
* Required. The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.
*/
location?: string | null;
}
/**
* The configuration of the stream destination.
*/
export interface Schema$DestinationConfig {
/**
* BigQuery destination configuration.
*/
bigqueryDestinationConfig?: Schema$BigQueryDestinationConfig;
/**
* Required. Destination connection profile resource. Format: `projects/{project\}/locations/{location\}/connectionProfiles/{name\}`
*/
destinationConnectionProfile?: string | null;
/**
* A configuration for how data should be loaded to Cloud Storage.
*/
gcsDestinationConfig?: Schema$GcsDestinationConfig;
}
/**
* Request message for 'discover' ConnectionProfile request.
*/
export interface Schema$DiscoverConnectionProfileRequest {
/**
* An ad-hoc connection profile configuration.
*/
connectionProfile?: Schema$ConnectionProfile;
/**
* A reference to an existing connection profile.
*/
connectionProfileName?: string | null;
/**
* Whether to retrieve the full hierarchy of data objects (TRUE) or only the current level (FALSE).
*/
fullHierarchy?: boolean | null;
/**
* The number of hierarchy levels below the current level to be retrieved.
*/
hierarchyDepth?: number | null;
/**
* MongoDB cluster to enrich with child data objects and metadata.
*/
mongodbCluster?: Schema$MongodbCluster;
/**
* MySQL RDBMS to enrich with child data objects and metadata.
*/
mysqlRdbms?: Schema$MysqlRdbms;
/**
* Oracle RDBMS to enrich with child data objects and metadata.
*/
oracleRdbms?: Schema$OracleRdbms;
/**
* PostgreSQL RDBMS to enrich with child data objects and metadata.
*/
postgresqlRdbms?: Schema$PostgresqlRdbms;
/**
* Salesforce organization to enrich with child data objects and metadata.
*/
salesforceOrg?: Schema$SalesforceOrg;
/**
* SQLServer RDBMS to enrich with child data objects and metadata.
*/
sqlServerRdbms?: Schema$SqlServerRdbms;
}
/**
* Response from a discover request.
*/
export interface Schema$DiscoverConnectionProfileResponse {
/**
* Enriched MongoDB cluster.
*/
mongodbCluster?: Schema$MongodbCluster;
/**
* Enriched MySQL RDBMS object.
*/
mysqlRdbms?: Schema$MysqlRdbms;
/**
* Enriched Oracle RDBMS object.
*/
oracleRdbms?: Schema$OracleRdbms;
/**
* Enriched PostgreSQL RDBMS object.
*/
postgresqlRdbms?: Schema$PostgresqlRdbms;
/**
* Enriched Salesforce organization.
*/
salesforceOrg?: Schema$SalesforceOrg;
/**
* Enriched SQLServer RDBMS object.
*/
sqlServerRdbms?: Schema$SqlServerRdbms;
}
/**
* Configuration to drop large object values.
*/
export interface Schema$DropLargeObjects {}
/**
* A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); \}
*/
export interface Schema$Empty {}
/**
* Message to represent the option where Datastream will enforce encryption and authenticate server identity. ca_certificate must be set if user selects this option.
*/
export interface Schema$EncryptionAndServerValidation {
/**
* Optional. Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.
*/
caCertificate?: string | null;
/**
* 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.
*/
serverCertificateHostname?: string | null;
}
/**
* Message to represent the option where encryption is not enforced. An empty message right now to allow future extensibility.
*/
export interface Schema$EncryptionNotEnforced {}
/**
* Represent a user-facing Error.
*/
export interface Schema$Error {
/**
* Additional information about the error.
*/
details?: {[key: string]: string} | null;
/**
* The time when the error occurred.
*/
errorTime?: string | null;
/**
* A unique identifier for this specific error, allowing it to be traced throughout the system in logs and API responses.
*/
errorUuid?: string | null;
/**
* A message containing more information about the error that occurred.
*/
message?: string | null;
/**
* A title that explains the reason for the error.
*/
reason?: string | null;
}
/**
* Response message for a 'FetchStaticIps' response.
*/
export interface Schema$FetchStaticIpsResponse {
/**
* A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
*/
nextPageToken?: string | null;
/**
* list of static ips by account
*/
staticIps?: string[] | null;
}
/**
* Forward SSH Tunnel connectivity.
*/
export interface Schema$ForwardSshTunnelConnectivity {
/**
* Required. Hostname for the SSH tunnel.
*/
hostname?: string | null;
/**
* Input only. SSH password.
*/
password?: string | null;
/**
* Port for the SSH tunnel, default value is 22.
*/
port?: number | null;
/**
* Input only. SSH private key.
*/
privateKey?: string | null;
/**
* Required. Username for the SSH tunnel.
*/
username?: string | null;
}
/**
* Google Cloud Storage destination configuration
*/
export interface Schema$GcsDestinationConfig {
/**
* AVRO file format configuration.
*/
avroFileFormat?: Schema$AvroFileFormat;
/**
* 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.
*/
fileRotationInterval?: string | null;
/**
* The maximum file size to be saved in the bucket.
*/
fileRotationMb?: number | null;
/**
* JSON file format configuration.
*/
jsonFileFormat?: Schema$JsonFileFormat;
/**
* Path inside the Cloud Storage bucket to write data to.
*/
path?: string | null;
}
/**
* Cloud Storage bucket profile.
*/
export interface Schema$GcsProfile {
/**
* Required. The Cloud Storage bucket name.
*/
bucket?: string | null;
/**
* The root path inside the Cloud Storage bucket.
*/
rootPath?: string | null;
}
/**
* Use GTID based replication.
*/
export interface Schema$Gtid {}
/**
* A HostAddress represents a transport end point, which is the combination of an IP address or hostname and a port number.
*/
export interface Schema$HostAddress {
/**
* Required. Hostname for the connection.
*/
hostname?: string | null;
/**
* Optional. Port for the connection.
*/
port?: number | null;
}
/**
* JSON file format configuration.
*/
export interface Schema$JsonFileFormat {
/**
* Compression of the loaded JSON file.
*/
compression?: string | null;
/**
* The schema file format along JSON data files.
*/
schemaFileFormat?: string | null;
}
/**
* Response message for listing connection profiles.
*/
export interface Schema$ListConnectionProfilesResponse {
/**
* List of connection profiles.
*/
connectionProfiles?: Schema$ConnectionProfile[];
/**
* A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
*/
nextPageToken?: string | null;
/**
* Locations that could not be reached.
*/
unreachable?: string[] | null;
}
/**
* The response message for Locations.ListLocations.
*/
export interface Schema$ListLocationsResponse {
/**
* A list of locations that matches the specified filter in the request.
*/
locations?: Schema$Location[];
/**
* The standard List next-page token.
*/
nextPageToken?: string | null;
}
/**
* The response message for Operations.ListOperations.
*/
export interface Schema$ListOperationsResponse {
/**
* The standard List next-page token.
*/
nextPageToken?: string | null;
/**
* A list of operations that matches the specified filter in the request.
*/
operations?: Schema$Operation[];
}
/**
* Response containing a list of private connection configurations.
*/
export interface Schema$ListPrivateConnectionsResponse {
/**
* A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
*/
nextPageToken?: string | null;
/**
* List of private connectivity configurations.
*/
privateConnections?: Schema$PrivateConnection[];
/**
* Locations that could not be reached.
*/
unreachable?: string[] | null;
}
/**
* Route list response.
*/
export interface Schema$ListRoutesResponse {
/**
* A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
*/
nextPageToken?: string | null;
/**
* List of Routes.
*/
routes?: Schema$Route[];
/**
* Locations that could not be reached.
*/
unreachable?: string[] | null;
}
/**
* Response containing the objects for a stream.
*/
export interface Schema$ListStreamObjectsResponse {
/**
* A token, which can be sent as `page_token` to retrieve the next page.
*/
nextPageToken?: string | null;
/**
* List of stream objects.
*/
streamObjects?: Schema$StreamObject[];
}
/**
* Response message for listing streams.
*/
export interface Schema$ListStreamsResponse {
/**
* A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
*/
nextPageToken?: string | null;
/**
* List of streams
*/
streams?: Schema$Stream[];
/**
* Locations that could not be reached.
*/
unreachable?: string[] | null;
}
/**
* A resource that represents a Google Cloud location.
*/
export interface Schema$Location {
/**
* The friendly name for this location, typically a nearby city name. For example, "Tokyo".
*/
displayName?: string | null;
/**
* Cross-service attributes for the location. For example {"cloud.googleapis.com/region": "us-east1"\}
*/
labels?: {[key: string]: string} | null;
/**
* The canonical id for this location. For example: `"us-east1"`.
*/
locationId?: string | null;
/**
* Service-specific metadata. For example the available capacity at the given location.
*/
metadata?: {[key: string]: any} | null;
/**
* Resource name for the location, which may vary between implementations. For example: `"projects/example-project/locations/us-east1"`
*/
name?: string | null;
}
/**
* Configuration to specify the Oracle directories to access the log files.
*/
export interface Schema$LogFileDirectories {
/**
* Required. Oracle directory for archived logs.
*/
archivedLogDirectory?: string | null;
/**
* Required. Oracle directory for online logs.
*/
onlineLogDirectory?: string | null;
}
/**
* Configuration to use LogMiner CDC method.
*/
export interface Schema$LogMiner {}
/**
* Request for looking up a specific stream object by its source object identifier.
*/
export interface Schema$LookupStreamObjectRequest {
/**
* Required. The source object identifier which maps to the stream object.
*/
sourceObjectIdentifier?: Schema$SourceObjectIdentifier;
}
/**
* Merge mode defines that all changes to a table will be merged at the destination table.
*/
export interface Schema$Merge {}
/**
* MongoDB change stream position
*/
export interface Schema$MongodbChangeStreamPosition {
/**
* Required. The timestamp (in epoch seconds) to start change stream from.
*/
startTime?: string | null;
}
/**
* MongoDB Cluster structure.
*/
export interface Schema$MongodbCluster {
/**
* MongoDB databases in the cluster.
*/
databases?: Schema$MongodbDatabase[];
}
/**
* MongoDB Collection.
*/
export interface Schema$MongodbCollection {
/**
* Collection name.
*/
collection?: string | null;
/**
* Fields in the collection.
*/
fields?: Schema$MongodbField[];
}
/**
* MongoDB Database.
*/
export interface Schema$MongodbDatabase {
/**
* Collections in the database.
*/
collections?: Schema$MongodbCollection[];
/**
* Database name.
*/
database?: string | null;
}
/**
* MongoDB Field.
*/
export interface Schema$MongodbField {
/**
* Field name.
*/
field?: string | null;
}
/**
* MongoDB data source object identifier.
*/
export interface Schema$MongodbObjectIdentifier {
/**
* Required. The collection name.
*/
collection?: string | null;
/**
* Required. The database name.
*/
database?: string | null;
}
/**
* MongoDB profile.
*/
export interface Schema$MongodbProfile {
/**
* 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.
*/
hostAddresses?: Schema$HostAddress[];
/**
* Optional. Password for the MongoDB connection. Mutually exclusive with the `secret_manager_stored_password` field.
*/
password?: string | null;
/**
* 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.
*/
replicaSet?: string | null;
/**
* Optional. A reference to a Secret Manager resource name storing the SQLServer connection password. Mutually exclusive with the `password` field.
*/
secretManagerStoredPassword?: string | null;
/**
* Srv connection format.
*/
srvConnectionFormat?: Schema$SrvConnectionFormat;
/**
* Optional. SSL configuration for the MongoDB connection.
*/
sslConfig?: Schema$MongodbSslConfig;
/**
* Standard connection format.
*/
standardConnectionFormat?: Schema$StandardConnectionFormat;
/**
* Required. Username for the MongoDB connection.
*/
username?: string | null;
}
/**
* MongoDB source configuration.
*/
export interface Schema$MongodbSourceConfig {
/**
* MongoDB collections to exclude from the stream.
*/
excludeObjects?: Schema$MongodbCluster;
/**
* MongoDB collections to include in the stream.
*/
includeObjects?: Schema$MongodbCluster;
/**
* 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
*/
maxConcurrentBackfillTasks?: number | null;
}
/**
* MongoDB SSL configuration information.
*/
export interface Schema$MongodbSslConfig {
/**
* Optional. Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.
*/
caCertificate?: string | null;
/**
* Output only. Indicates whether the ca_certificate field is set.
*/
caCertificateSet?: boolean | null;
/**
* 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.
*/
clientCertificate?: string | null;
/**
* Output only. Indicates whether the client_certificate field is set.
*/
clientCertificateSet?: boolean | null;
/**
* 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.
*/
clientKey?: string | null;
/**
* Output only. Indicates whether the client_key field is set.
*/
clientKeySet?: boolean | null;
/**
* 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.
*/
secretManagerStoredClientKey?: string | null;
}
/**
* CDC strategy to start replicating from the most recent position in the source.
*/
export interface Schema$MostRecentStartPosition {}
/**
* MySQL Column.
*/
export interface Schema$MysqlColumn {
/**
* Column collation.
*/
collation?: string | null;
/**
* Column name.
*/
column?: string | null;
/**
* The MySQL data type. Full data types list can be found here: https://dev.mysql.com/doc/refman/8.0/en/data-types.html
*/
dataType?: string | null;
/**
* Column length.
*/
length?: number | null;
/**
* Whether or not the column can accept a null value.
*/
nullable?: boolean | null;
/**
* The ordinal position of the column in the table.
*/
ordinalPosition?: number | null;
/**
* Column precision.
*/
precision?: number | null;
/**
* Whether or not the column represents a primary key.
*/
primaryKey?: boolean | null;
/**
* Column scale.
*/
scale?: number | null;
}
/**
* MySQL database.
*/
export interface Schema$MysqlDatabase {
/**
* Database name.
*/
database?: string | null;
/**
* Tables in the database.
*/
mysqlTables?: Schema$MysqlTable[];
}
/**
* MySQL GTID position
*/
export interface Schema$MysqlGtidPosition {
/**
* Required. The gtid set to start replication from.
*/
gtidSet?: string | null;
}
/**
* MySQL log position
*/
export interface Schema$MysqlLogPosition {
/**
* Required. The binary log file name.
*/
logFile?: string | null;
/**
* Optional. The position within the binary log file. Default is head of file.
*/
logPosition?: number | null;
}
/**
* Mysql data source object identifier.
*/
export interface Schema$MysqlObjectIdentifier {
/**
* Required. The database name.
*/
database?: string | null;
/**
* Required. The table name.
*/
table?: string | null;
}
/**
* MySQL database profile.
*/
export interface Schema$MysqlProfile {
/**
* Required. Hostname for the MySQL connection.
*/
hostname?: string | null;
/**
* Optional. Input only. Password for the MySQL connection. Mutually exclusive with the `secret_manager_stored_password` field.
*/
password?: string | null;
/**
* Port for the MySQL connection, default value is 3306.
*/
port?: number | null;
/**
* Optional. A reference to a Secret Manager resource name storing the MySQL connection password. Mutually exclusive with the `password` field.
*/
secretManagerStoredPassword?: string | null;
/**
* SSL configuration for the MySQL connection.
*/
sslConfig?: Schema$MysqlSslConfig;
/**
* Required. Username for the MySQL connection.
*/
username?: string | null;
}
/**
* MySQL database structure
*/
export interface Schema$MysqlRdbms {
/**
* Mysql databases on the server
*/
mysqlDatabases?: Schema$MysqlDatabase[];
}
/**
* MySQL source configuration
*/
export interface Schema$MysqlSourceConfig {
/**
* Use Binary log position based replication.
*/
binaryLogPosition?: Schema$BinaryLogPosition;
/**
* MySQL objects to exclude from the stream.
*/
excludeObjects?: Schema$MysqlRdbms;
/**
* Use GTID based replication.
*/
gtid?: Schema$Gtid;
/**
* MySQL objects to retrieve from the source.
*/
includeObjects?: Schema$MysqlRdbms;
/**
* 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.
*/
maxConcurrentBackfillTasks?: number | null;
/**
* 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.
*/
maxConcurrentCdcTasks?: number | null;
}
/**
* MySQL SSL configuration information.
*/
export interface Schema$MysqlSslConfig {
/**
* Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.
*/
caCertificate?: string | null;
/**
* Output only. Indicates whether the ca_certificate field is set.
*/
caCertificateSet?: boolean | null;
/**
* 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.
*/
clientCertificate?: string | null;
/**
* Output only. Indicates whether the client_certificate field is set.
*/
clientCertificateSet?: boolean | null;
/**
* 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.
*/
clientKey?: string | null;
/**
* Output only. Indicates whether the client_key field is set.
*/
clientKeySet?: boolean | null;
}
/**
* MySQL table.
*/
export interface Schema$MysqlTable {
/**
* MySQL columns in the database. When unspecified as part of include/exclude objects, includes/excludes everything.
*/
mysqlColumns?: Schema$MysqlColumn[];
/**
* Table name.
*/
table?: string | null;
}
/**
* CDC strategy to resume replication from the next available position in the source.
*/
export interface Schema$NextAvailableStartPosition {}
/**
* OAuth2 Client Credentials.
*/
export interface Schema$Oauth2ClientCredentials {
/**
* Required. Client ID for Salesforce OAuth2 Client Credentials.
*/
clientId?: string | null;
/**
* Optional. Client secret for Salesforce OAuth2 Client Credentials. Mutually exclusive with the `secret_manager_stored_client_secret` field.
*/
clientSecret?: string | null;
/**
* Optional. A reference to a Secret Manager resource name storing the Salesforce OAuth2 client_secret. Mutually exclusive with the `client_secret` field.
*/
secretManagerStoredClientSecret?: string | null;
}
/**
* This resource represents a long-running operation that is the result of a network API call.
*/
export interface Schema$Operation {
/**
* If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
*/
done?: boolean | null;
/**
* The error result of the operation in case of failure or cancellation.
*/
error?: Schema$Status;
/**
* Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
*/
metadata?: {[key: string]: any} | null;
/**
* The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id\}`.
*/
name?: string | null;
/**
* The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
*/
response?: {[key: string]: any} | null;
}
/**
* Represents the metadata of the long-running operation.
*/
export interface Schema$OperationMetadata {
/**
* Output only. API version used to start the operation.
*/
apiVersion?: string | null;
/**
* Output only. The time the operation was created.
*/
createTime?: string | null;
/**
* Output only. The time the operation finished running.
*/
endTime?: string | null;
/**
* Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
*/
requestedCancellation?: boolean | null;
/**
* Output only. Human-readable status of the operation, if any.
*/
statusMessage?: string | null;
/**
* Output only. Server-defined resource path for the target of the operation.
*/
target?: string | null;
/**
* Output only. Results of executed validations if there are any.
*/
validationResult?: Schema$ValidationResult;
/**
* Output only. Name of the verb executed by the operation.
*/
verb?: string | null;
}
/**
* Configuration for Oracle Automatic Storage Management (ASM) connection.
*/
export interface Schema$OracleAsmConfig {
/**
* Required. ASM service name for the Oracle ASM connection.
*/
asmService?: string | null;
/**
* Optional. Connection string attributes
*/
connectionAttributes?: {[key: string]: string} | null;
/**
* Required. Hostname for the Oracle ASM connection.
*/
hostname?: string | null;
/**
* Optional. SSL configuration for the Oracle connection.
*/
oracleSslConfig?: Schema$OracleSslConfig;
/**
* Optional. Password for the Oracle ASM connection. Mutually exclusive with the `secret_manager_stored_password` field.
*/
password?: string | null;
/**
* Required. Port for the Oracle ASM connection.
*/
port?: number | null;
/**
* Optional. A reference to a Secret Manager resource name storing the Oracle ASM connection password. Mutually exclusive with the `password` field.
*/
secretManagerStoredPassword?: string | null;
/**
* Required. Username for the Oracle ASM connection.
*/
username?: string | null;
}
/**
* Configuration to use Oracle ASM to access the log files.
*/
export interface Schema$OracleAsmLogFileAccess {}
/**
* Oracle Column.
*/
export interface Schema$OracleColumn {
/**
* Column name.
*/
column?: string | null;
/**
* The Oracle data type.
*/
dataType?: string | null;
/**
* Column encoding.
*/
encoding?: string | null;
/**
* Column length.
*/
length?: number | null;
/**
* Whether or not the column can accept a null value.
*/
nullable?: boolean | null;
/**
* The ordinal position of the column in the table.
*/
ordinalPosition?: number | null;
/**
* Column precision.
*/
precision?: number | null;
/**
* Whether or not the column represents a primary key.
*/
primaryKey?: boolean | null;
/**
* Column scale.
*/
scale?: number | null;
}
/**
* Oracle data source object identifier.
*/
export interface Schema$OracleObjectIdentifier {
/**
* Required. The schema name.
*/
schema?: string | null;
/**
* Required. The table name.
*/
table?: string | null;
}
/**
* Oracle database profile.
*/
export interface Schema$OracleProfile {
/**
* Connection string attributes
*/
connectionAttributes?: {[key: string]: string} | null;
/**
* Required. Database for the Oracle connection.
*/
databaseService?: string | null;
/**
* Required. Hostname for the Oracle connection.
*/
hostname?: string | null;
/**
* Optional. Configuration for Oracle ASM connection.
*/
oracleAsmConfig?: Schema$OracleAsmConfig;
/**
* Optional. SSL configuration for the Oracle connection.
*/
oracleSslConfig?: Schema$OracleSslConfig;
/**
* Optional. Password for the Oracle connection. Mutually exclusive with the `secret_manager_stored_password` field.
*/
password?: string | null;
/**
* Port for the Oracle connection, default value is 1521.
*/
port?: number | null;
/**
* Optional. A reference to a Secret Manager resource name storing the Oracle connection password. Mutually exclusive with the `password` field.
*/
secretManagerStoredPassword?: string | null;
/**
* Required. Username for the Oracle connection.
*/
username?: string | null;
}
/**
* Oracle database structure.
*/
export interface Schema$OracleRdbms {
/**
* Oracle schemas/databases in the database server.
*/
oracleSchemas?: Schema$OracleSchema[];
}
/**
* Oracle schema.
*/
export interface Schema$OracleSchema {
/**
* Tables in the schema.
*/
oracleTables?: Schema$OracleTable[];
/**
* Schema name.
*/
schema?: string | null;
}
/**
* Oracle SCN position
*/
export interface Schema$OracleScnPosition {
/**
* Required. SCN number from where Logs will be read
*/
scn?: string | null;
}
/**
* Oracle data source configuration
*/
export interface Schema$OracleSourceConfig {
/**
* Use Binary Log Parser.
*/
binaryLogParser?: Schema$BinaryLogParser;
/**
* Drop large object values.
*/
dropLargeObjects?: Schema$DropLargeObjects;
/**
* Oracle objects to exclude from the stream.
*/
excludeObjects?: Schema$OracleRdbms;
/**
* Oracle objects to include in the stream.
*/
includeObjects?: Schema$OracleRdbms;
/**
* Use LogMiner.
*/
logMiner?: Schema$LogMiner;
/**
* 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.
*/
maxConcurrentBackfillTasks?: number | null;
/**
* 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.
*/
maxConcurrentCdcTasks?: number | null;
/**
* Stream large object values.
*/
streamLargeObjects?: Schema$StreamLargeObjects;
}
/**
* Oracle SSL configuration information.
*/
export interface Schema$OracleSslConfig {
/**
* Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.
*/
caCertificate?: string | null;
/**
* Output only. Indicates whether the ca_certificate field has been set for this Connection-Profile.
*/
caCertificateSet?: boolean | null;
/**
* 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.
*/
serverCertificateDistinguishedName?: string | null;
}
/**
* Oracle table.
*/
export interface Schema$OracleTable {
/**
* Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.
*/
oracleColumns?: Schema$OracleColumn[];
/**
* Table name.
*/
table?: string | null;
}
/**
* PostgreSQL Column.
*/
export interface Schema$PostgresqlColumn {
/**
* Column name.
*/
column?: string | null;
/**
* The PostgreSQL data type.
*/
dataType?: string | null;
/**
* Column length.
*/
length?: number | null;
/**
* Whether or not the column can accept a null value.
*/
nullable?: boolean | null;
/**
* The ordinal position of the column in the table.
*/
ordinalPosition?: number | null;
/**
* Column precision.
*/
precision?: number | null;
/**
* Whether or not the column represents a primary key.
*/
primaryKey?: boolean | null;
/**
* Column scale.
*/
scale?: number | null;
}
/**
* PostgreSQL data source object identifier.
*/
export interface Schema$PostgresqlObjectIdentifier {
/**
* Required. The schema name.
*/
schema?: string | null;
/**
* Required. The table name.
*/
table?: string | null;
}
/**
* PostgreSQL database profile.
*/
export interface Schema$PostgresqlProfile {
/**
* Required. Database for the PostgreSQL connection.
*/
database?: string | null;
/**
* Required. Hostname for the PostgreSQL connection.
*/
hostname?: string | null;
/**
* Optional. Password for the PostgreSQL connection. Mutually exclusive with the `secret_manager_stored_password` field.
*/
password?: string | null;
/**
* Port for the PostgreSQL connection, default value is 5432.
*/
port?: number | null;
/**
* Optional. A reference to a Secret Manager resource name storing the PostgreSQL connection password. Mutually exclusive with the `password` field.
*/
secretManagerStoredPassword?: string | null;
/**
* 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)
*/
sslConfig?: Schema$PostgresqlSslConfig;
/**
* Required. Username for the PostgreSQL connection.
*/
username?: string | null;
}
/**
* PostgreSQL database structure.
*/
export interface Schema$PostgresqlRdbms {
/**
* PostgreSQL schemas in the database server.
*/
postgresqlSchemas?: Schema$PostgresqlSchema[];
}
/**
* PostgreSQL schema.
*/
export interface Schema$PostgresqlSchema {
/**
* Tables in the schema.
*/
postgresqlTables?: Schema$PostgresqlTable[];
/**
* Schema name.
*/
schema?: string | null;
}
/**
* PostgreSQL data source configuration
*/
export interface Schema$PostgresqlSourceConfig {
/**
* PostgreSQL objects to exclude from the stream.
*/
excludeObjects?: Schema$PostgresqlRdbms;
/**
* PostgreSQL objects to include in the stream.
*/
includeObjects?: Schema$PostgresqlRdbms;
/**
* 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.
*/
maxConcurrentBackfillTasks?: number | null;
/**
* Required. The name of the publication that includes the set of all tables that are defined in the stream's include_objects.
*/
publication?: string | null;
/**
* Required. Immutable. The name of the logical replication slot that's configured with the pgoutput plugin.
*/
replicationSlot?: string | null;
}
/**
* PostgreSQL SSL configuration information.
*/
export interface Schema$PostgresqlSslConfig {
/**
* 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.
*/
serverAndClientVerification?: Schema$ServerAndClientVerification;
/**
* If this field is set, the communication will be encrypted with TLS encryption and the server identity will be authenticated.
*/
serverVerification?: Schema$ServerVerification;
}
/**
* PostgreSQL table.
*/
export interface Schema$PostgresqlTable {
/**
* PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.
*/
postgresqlColumns?: Schema$PostgresqlColumn[];
/**
* Table name.
*/
table?: string | null;
}
/**
* The PrivateConnection resource is used to establish private connectivity between Datastream and a customer's network.
*/
export interface Schema$PrivateConnection {
/**
* Output only. The create time of the resource.
*/
createTime?: string | null;
/**
* Required. Display name.
*/
displayName?: string | null;
/**
* Output only. In case of error, the details of the error in a user-friendly format.
*/
error?: Schema$Error;
/**
* Labels.
*/
labels?: {[key: string]: string} | null;
/**
* Output only. Identifier. The resource's name.
*/
name?: string | null;
/**
* PSC Interface Config.
*/
pscInterfaceConfig?: Schema$PscInterfaceConfig;
/**
* Output only. Reserved for future use.
*/
satisfiesPzi?: boolean | null;
/**
* Output only. Reserved for future use.
*/
satisfiesPzs?: boolean | null;
/**
* Output only. The state of the Private Connection.
*/
state?: string | null;
/**
* Output only. The update time of the resource.
*/
updateTime?: string | null;
/**
* VPC Peering Config.
*/
vpcPeeringConfig?: Schema$VpcPeeringConfig;
}
/**
* Private Connectivity
*/
export interface Schema$PrivateConnec