@googleapis/datastream
Version:
1,665 lines (1,641 loc) • 230 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_v1alpha1 {
export interface Options extends GlobalOptions {
version: 'v1alpha1';
}
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('v1alpha1');
* ```
*/
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);
}
}
/**
* 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 {
/**
* MySQL data source objects to avoid backfilling.
*/
mysqlExcludedObjects?: Schema$MysqlRdbms;
/**
* Oracle data source objects to avoid backfilling.
*/
oracleExcludedObjects?: Schema$OracleRdbms;
}
/**
* 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;
/**
* 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 {}
/**
* The request message for Operations.CancelOperation.
*/
export interface Schema$CancelOperationRequest {}
export interface Schema$ConnectionProfile {
/**
* 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;
/**
* MySQL ConnectionProfile configuration.
*/
mysqlProfile?: Schema$MysqlProfile;
/**
* Output only. The resource's name.
*/
name?: string | null;
/**
* No connectivity option chosen.
*/
noConnectivity?: Schema$NoConnectivitySettings;
/**
* Oracle ConnectionProfile configuration.
*/
oracleProfile?: Schema$OracleProfile;
/**
* Private connectivity.
*/
privateConnectivity?: Schema$PrivateConnectivity;
/**
* Static Service IP connectivity.
*/
staticServiceIpConnectivity?: Schema$StaticServiceIpConnectivity;
/**
* Output only. The update time of the resource.
*/
updateTime?: string | null;
}
/**
* The configuration of the stream destination.
*/
export interface Schema$DestinationConfig {
/**
* Required. Destination connection profile identifier.
*/
destinationConnectionProfileName?: string | null;
/**
* GCS destination configuration.
*/
gcsDestinationConfig?: Schema$GcsDestinationConfig;
}
/**
* Request message for 'discover' ConnectionProfile request.
*/
export interface Schema$DiscoverConnectionProfileRequest {
/**
* An ad-hoc ConnectionProfile configuration.
*/
connectionProfile?: Schema$ConnectionProfile;
/**
* A reference to an existing ConnectionProfile.
*/
connectionProfileName?: string | null;
/**
* 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;
/**
* The number of hierarchy levels below the current level to be retrieved.
*/
recursionDepth?: number | null;
/**
* Whether to retrieve the full hierarchy of data objects (TRUE) or only the current level (FALSE).
*/
recursive?: boolean | null;
}
export interface Schema$DiscoverConnectionProfileResponse {
/**
* Enriched MySQL RDBMS object.
*/
mysqlRdbms?: Schema$MysqlRdbms;
/**
* Enriched Oracle RDBMS object.
*/
oracleRdbms?: Schema$OracleRdbms;
}
/**
* 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 {}
/**
* 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;
}
/**
* Request message for 'FetchErrors' request.
*/
export interface Schema$FetchErrorsRequest {}
/**
* Response message for a 'FetchErrors' response.
*/
export interface Schema$FetchErrorsResponse {
/**
* The list of errors on the Stream.
*/
errors?: Schema$Error[];
}
/**
* 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.
*/
fileRotationInterval?: string | null;
/**
* The maximum file size to be saved in the bucket.
*/
fileRotationMb?: number | null;
/**
* File format that data should be written in. Deprecated field (b/169501737) - use file_format instead.
*/
gcsFileFormat?: string | 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 full project and resource path for Cloud Storage bucket including the name.
*/
bucketName?: string | null;
/**
* The root path inside the Cloud Storage bucket.
*/
rootPath?: string | 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;
}
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[];
}
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[];
}
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;
}
/**
* MySQL Column.
*/
export interface Schema$MysqlColumn {
/**
* Column collation.
*/
collation?: string | null;
/**
* Column name.
*/
columnName?: 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;
/**
* Whether or not the column represents a primary key.
*/
primaryKey?: boolean | null;
}
/**
* MySQL database.
*/
export interface Schema$MysqlDatabase {
/**
* Database name.
*/
databaseName?: string | null;
/**
* Tables in the database.
*/
mysqlTables?: Schema$MysqlTable[];
}
/**
* 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;
/**
* Required. Input only. Password for the MySQL connection.
*/
password?: string | null;
/**
* Port for the MySQL connection, default value is 3306.
*/
port?: number | 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 {
/**
* MySQL objects to retrieve from the source.
*/
allowlist?: Schema$MysqlRdbms;
/**
* MySQL objects to exclude from the stream.
*/
rejectlist?: Schema$MysqlRdbms;
}
/**
* 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;
/**
* 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;
/**
* 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 lists, includes/excludes everything.
*/
mysqlColumns?: Schema$MysqlColumn[];
/**
* Table name.
*/
tableName?: string | null;
}
/**
* No connectivity settings.
*/
export interface Schema$NoConnectivitySettings {}
/**
* 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;
}
/**
* Oracle Column.
*/
export interface Schema$OracleColumn {
/**
* Column name.
*/
columnName?: 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;
/**
* Required. Password for the Oracle connection.
*/
password?: string | null;
/**
* Port for the Oracle connection, default value is 1521.
*/
port?: number | 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.
*/
schemaName?: string | null;
}
/**
* Oracle data source configuration
*/
export interface Schema$OracleSourceConfig {
/**
* Oracle objects to include in the stream.
*/
allowlist?: Schema$OracleRdbms;
/**
* Drop large object values.
*/
dropLargeObjects?: Schema$DropLargeObjects;
/**
* Oracle objects to exclude from the stream.
*/
rejectlist?: Schema$OracleRdbms;
}
/**
* Oracle table.
*/
export interface Schema$OracleTable {
/**
* Oracle columns in the schema. When unspecified as part of inclue/exclude lists, includes/excludes everything.
*/
oracleColumns?: Schema$OracleColumn[];
/**
* Table name.
*/
tableName?: 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. The resource's name.
*/
name?: string | 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$PrivateConnectivity {
privateConnectionName?: string | null;
}
/**
* The Route resource is the child of the PrivateConnection resource. It used to define a route for a PrivateConnection setup.
*/
export interface Schema$Route {
/**
* Output only. The create time of the resource.
*/
createTime?: string | null;
/**
* Required. Destination address for connection
*/
destinationAddress?: string | null;
/**
* Destination port for connection
*/
destinationPort?: number | null;
/**
* Required. Display name.
*/
displayName?: string | null;
/**
* Labels.
*/
labels?: {[key: string]: string} | null;
/**
* Output only. The resource's name.
*/
name?: string | null;
/**
* Output only. The update time of the resource.
*/
updateTime?: string | null;
}
/**
* The configuration of the stream source.
*/
export interface Schema$SourceConfig {
/**
* MySQL data source configuration
*/
mysqlSourceConfig?: Schema$MysqlSourceConfig;
/**
* Oracle data source configuration
*/
oracleSourceConfig?: Schema$OracleSourceConfig;
/**
* Required. Source connection profile identifier.
*/
sourceConnectionProfileName?: string | null;
}
/**
* Represents an identifier of an object in the data source.
*/
export interface Schema$SourceObjectIdentifier {
/**
* Mysql data source object identifier.
*/
mysqlIdentifier?: Schema$MysqlObjectIdentifier;
/**
* Oracle data source object identifier.
*/
oracleIdentifier?: Schema$OracleObjectIdentifier;
}
/**
* Response for manually initiating a backfill job for a specific stream object.
*/
export interface Schema$StartBackfillJobResponse {
/**
* The stream object resource a backfill job was started for.
*/
object?: Schema$StreamObject;
}
/**
* Static IP address connectivity.
*/
export interface Schema$StaticServiceIpConnectivity {}
/**
* The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
*/
export interface Schema$Status {
/**
* The status code, which should be an enum value of google.rpc.Code.
*/
code?: number | null;
/**
* A list of messages that carry the error details. There is a common set of message types for APIs to use.
*/
details?: Array<{[key: string]: any}> | null;
/**
* A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
*/
message?: string | null;
}
/**
* Response for manually stop a backfill job for a specific stream object.
*/
export interface Schema$StopBackfillJobResponse {
/**
* The stream object resource the backfill job was stopped for.
*/
object?: Schema$StreamObject;
}
export interface Schema$Stream {
/**
* Automatically backfill objects included in the stream source configuration. Specific objects can be excluded.
*/
backfillAll?: Schema$BackfillAllStrategy;
/**
* Do not automatically backfill any objects.
*/
backfillNone?: Schema$BackfillNoneStrategy;
/**
* Output only. The creation time of the stream.
*/
createTime?: string | null;
/**
* 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.
*/
customerManagedEncryptionKey?: string | null;
/**
* Required. Destination connection profile configuration.
*/
destinationConfig?: Schema$DestinationConfig;
/**
* Required. Display name.
*/
displayName?: string | null;
/**
* Output only. Errors on the Stream.
*/
errors?: Schema$Error[];
/**
* Labels.
*/
labels?: {[key: string]: string} | null;
/**
* Output only. The stream's name.
*/
name?: string | null;
/**
* Required. Source connection profile configuration.
*/
sourceConfig?: Schema$SourceConfig;
/**
* The state of the stream.
*/
state?: string | null;
/**
* Output only. The last update time of the stream.
*/
updateTime?: string | null;
}
/**
* A specific stream object (e.g a specific DB table).
*/
export interface Schema$StreamObject {
/**
* The latest backfill job that was initiated for the stream object.
*/
backfillJob?: Schema$BackfillJob;
/**
* Output only. The creation time of the object.
*/
createTime?: string | null;
/**
* Required. Display name.
*/
displayName?: string | null;
/**
* Output only. Active errors on the object.
*/
errors?: Schema$Error[];
/**
* Output only. The object's name.
*/
name?: string | null;
/**
* The object identifier in the data source.
*/
sourceObject?: Schema$SourceObjectIdentifier;
/**
* Output only. The last update time of the object.
*/
updateTime?: string | null;
}
export interface Schema$Validation {
/**
* A custom code identifying this validation.
*/
code?: string | null;
/**
* A short description of the validation.
*/
description?: string | null;
/**
* Messages reflecting the validation results.
*/
message?: Schema$ValidationMessage[];
/**
* Validation execution status.
*/
status?: string | null;
}
/**
* Represent user-facing validation result message.
*/
export interface Schema$ValidationMessage {
/**
* A custom code identifying this specific message.
*/
code?: string | null;
/**
* Message severity level (warning or error).
*/
level?: string | null;
/**
* The result of the validation.
*/
message?: string | null;
/**
* Additional metadata related to the result.
*/
metadata?: {[key: string]: string} | null;
}
/**
* Contains the current validation results.
*/
export interface Schema$ValidationResult {
/**
* A list of validations (includes both executed as well as not executed validations).
*/
validations?: Schema$Validation[];
}
/**
* The VPC Peering configuration is used to create VPC peering between Datastream and the consumer's VPC.
*/
export interface Schema$VpcPeeringConfig {
/**
* Required. A free subnet for peering. (CIDR of /29)
*/
subnet?: string | null;
/**
* Required. fully qualified name of the VPC Datastream will peer to.
*/
vpcName?: string | null;
}
export class Resource$Projects {
context: APIRequestContext;
locations: Resource$Projects$Locations;
constructor(context: APIRequestContext) {
this.context = context;
this.locations = new Resource$Projects$Locations(this.context);
}
}
export class Resource$Projects$Locations {
context: APIRequestContext;
connectionProfiles: Resource$Projects$Locations$Connectionprofiles;
operations: Resource$Projects$Locations$Operations;
privateConnections: Resource$Projects$Locations$Privateconnections;
streams: Resource$Projects$Locations$Streams;
constructor(context: APIRequestContext) {
this.context = context;
this.connectionProfiles =
new Resource$Projects$Locations$Connectionprofiles(this.context);
this.operations = new Resource$Projects$Locations$Operations(
this.context
);
this.privateConnections =
new Resource$Projects$Locations$Privateconnections(this.context);
this.streams = new Resource$Projects$Locations$Streams(this.context);
}
/**
* The FetchStaticIps API call exposes the static IP addresses used by Datastream.
* @example
* ```js
* // Before running the sample:
* // - Enable the API at:
* // https://console.developers.google.com/apis/api/datastream.googleapis.com
* // - Login into gcloud by running:
* // ```sh
* // $ gcloud auth application-default login
* // ```
* // - Install the npm module by running:
* // ```sh
* // $ npm install googleapis
* // ```
*
* const {google} = require('googleapis');
* const datastream = google.datastream('v1alpha1');
*
* async function main() {
* const auth = new google.auth.GoogleAuth({
* // Scopes can be specified either as an array or as a single, space-delimited string.
* scopes: ['https://www.googleapis.com/auth/cloud-platform'],
* });
*
* // Acquire an auth client, and bind it to all future calls
* const authClient = await auth.getClient();
* google.options({auth: authClient});
*
* // Do the magic
* const res = await datastream.projects.locations.fetchStaticIps({
* // Required. The name resource of the Response type. Must be in the format `projects/x/locations/x`.
* name: 'projects/my-project/locations/my-location',
* // Maximum number of Ips to return, will likely not be specified.
* pageSize: 'placeholder-value',
* // A page token, received from a previous `ListStaticIps` call. will likely not be specified.
* pageToken: 'placeholder-value',
* });
* console.log(res.data);
*
* // Example response
* // {
* // "nextPageToken": "my_nextPageToken",
* // "staticIps": []
* // }
* }
*
* main().catch(e => {
* console.error(e);
* throw e;
* });
*
* ```
*
* @param params - Parameters for request
* @param options - Optionally override request options, such as `url`, `method`, and `encoding`.
* @param callback - Optional callback that handles the response.
* @returns A promise if used with async/await, or void if used with a callback.
*/
fetchStaticIps(
params: Params$Resource$Projects$Locations$Fetchstaticips,
options: StreamMethodOptions
): Promise<GaxiosResponseWithHTTP2<Readable>>;
fetchStaticIps(
params?: Params$Resource$Projects$Locations$Fetchstaticips,
options?: MethodOptions
): Promise<GaxiosResponseWithHTTP2<Schema$FetchStaticIpsResponse>>;
fetchStaticIps(
params: Params$Resource$Projects$Locations$Fetchstaticips,
options: StreamMethodOptions | BodyResponseCallback<Readable>,
callback: BodyResponseCallback<Readable>
): void;
fetchStaticIps(
params: Params$Resource$Projects$Locations$Fetchstaticips,
options:
| MethodOptions
| BodyResponseCallback<Schema$FetchStaticIpsResponse>,
callback: BodyResponseCallback<Schema$FetchStaticIpsResponse>
): void;
fetchStaticIps(
params: Params$Resource$Projects$Locations$Fetchstaticips,
callback: BodyResponseCallback<Schema$FetchStaticIpsResponse>
): void;
fetchStaticIps(
callback: BodyResponseCallback<Schema$FetchStaticIpsResponse>
): void;
fetchStaticIps(
paramsOrCallback?:
| Params$Resource$Projects$Locations$Fetchstaticips
| BodyResponseCallback<Schema$FetchStaticIpsResponse>
| BodyResponseCallback<Readable>,
optionsOrCallback?:
| MethodOptions
| StreamMethodOptions
| BodyResponseCallback<Schema$FetchStaticIpsResponse>
| BodyResponseCallback<Readable>,
callback?:
| BodyResponseCallback<Schema$FetchStaticIpsResponse>
| BodyResponseCallback<Readable>
):
| void
| Promise<GaxiosResponseWithHTTP2<Schema$FetchStaticIpsResponse>>
| Promise<GaxiosResponseWithHTTP2<Readable>> {
let params = (paramsOrCallback ||
{}) as Params$Resource$Projects$Locations$Fetchstaticips;
let options = (optionsOrCallback || {}) as MethodOptions;
if (typeof paramsOrCallback === 'function') {
callback = paramsOrCallback;
params = {} as Params$Resource$Projects$Locations$Fetchstaticips;
options = {};
}
if (typeof optionsOrCallback === 'function') {
callback = optionsOrCallback;
options = {};
}
const rootUrl = options.rootUrl || 'https://datastream.googleapis.com/';
const parameters = {
options: Object.assign(
{
url: (rootUrl + '/v1alpha1/{+name}:fetchStaticIps').replace(
/([^:]\/)\/+/g,
'$1'
),
method: 'GET',
apiVersion: '',
},
options
),
params,
requiredParams: ['name'],
pathParams: ['name'],
context: this.context,
};
if (callback) {
createAPIRequest<Schema$FetchStaticIpsResponse>(
parameters,
callback as BodyResponseCallback<unknown>
);
} else {
return createAPIRequest<Schema$FetchStaticIpsResponse>(parameters);
}
}
/**
* Gets information about a location.
* @example
* ```js
* // Before running the sample:
* // - Enable the API at:
* // https://console.developers.google.com/apis/api/datastream.googleapis.com
* // - Login into gcloud by running:
* // ```sh
* // $ gcloud auth application-default login
* // ```
* // - Install the npm module by running:
* // ```sh
* // $ npm install googleapis
* // ```
*
* const {google} = require('googleapis');
* const datastream = google.datastream('v1alpha1');
*
* async function main() {
* const auth = new google.auth.GoogleAuth({
* // Scopes can be specified either as an array or as a single, space-delimited string.
* scopes: ['https://www.googleapis.com/auth/cloud-platform'],
* });
*
* // Acquire an auth client, and bind it to all future calls
* const authClient = await auth.getClient();
* google.options({auth: authClient});
*
* // Do the magic
* const res = await datastream.projects.locations.get({
* // Resource name for the location.
* name: 'projects/my-project/locations/my-location',
* });
* console.log(res.data);
*
* // Example response
* // {
* // "displayName": "my_displayName",
* // "labels": {},
* // "locationId": "my_locationId",
* // "metadata": {},
* // "name": "my_name"
* // }
* }
*
* main().catch(e => {
* console.error(e);
* throw e;
* });
*
* ```
*
* @param params - Parameters for request
* @param options - Optionally override request options, such as `url`, `method`, and `encoding`.
* @param callback - Optional callback that handles the response.
* @returns A promise if used with async/await, or void if used with a callback.
*/
get(
params: Params$Resource$Projects$Locations$Get,
options: StreamMethodOptions
): Promise<GaxiosResponseWithHTTP2<Readable>>;
get(
params?: Params$Resource$Projects$Locations$Get,
options?: MethodOptions
): Promise<GaxiosResponseWithHTTP2<Schema$Location>>;
get(
params: Params$Resource$Projects$Locations$Get,
options: StreamMethodOptions | BodyResponseCallback<Readable>,
callback: BodyResponseCallback<Readable>
): void;
get(
params: Params$Resource$Projects$Locations$Get,
options: MethodOptions | BodyResponseCallback<Schema$Location>,
callback: BodyResponseCallback<Schema$Location>
): void;
get(
params: Params$Resource$Projects$Locations$Get,
callback: BodyResponseCallback<Schema$Location>
): void;
get(callback: BodyResponseCallback<Schema$Location>): void;
get(
paramsOrCallback?:
| Params$Resource$Projects$Locations$Get
| BodyResponseCallback<Schema$Location>
| BodyResponseCallback<Readable>,
optionsOrCallback?:
| MethodOptions
| StreamMethodOptions
| BodyResponseCallback<Schema$Location>
| BodyResponseCallback<Readable>,
callback?:
| BodyResponseCallback<Schema$Location>
| BodyResponseCallback<Readable>
):
| void
| Promise<GaxiosResponseWithHTTP2<Schema$Location>>
| Promise<GaxiosResponseWithHTTP2<Readable>> {
let params = (paramsOrCallback ||
{}) as Params$Resource$Projects$Locations$Get;
let options = (optionsOrCallback || {}) as MethodOptions;
if (typeof paramsOrCallback === 'function') {
callback = paramsOrCallback;
params = {} as Params$Resource$Projects$Locations$Get;
options = {};
}
if (typeof optionsOrCallback === 'function') {
callback = optionsOrCallback;
options = {};
}
const rootUrl = options.rootUrl || 'https://datastream.googleapis.com/';
const parameters = {
options: Object.assign(
{
url: (rootUrl + '/v1alpha1/{+name}').replace(/([^:]\/)\/+/g, '$1'),
method: 'GET',
apiVersion: '',
},
options
),
params,
requiredParams: ['name'],
pathParams: ['name'],
context: this.context,
};
if (callback) {
createAPIRequest<Schema$Location>(
parameters,
callback as BodyResponseCallback<unknown>
);
} else {
return createAPIRequest<Schema$Location>(parameters);
}
}
/**
* Lists information about the supported locations for this service.
* @example
* ```js
* // Before running the sample:
* // - Enable the API at:
* // https://console.developers.google.com/apis/api/datastream.googleapis.com
* // - Login into gcloud by running:
* // ```sh
* // $ gcloud auth application-default login
* // ```
* // - Install the npm module by running:
* // ```sh
* // $ npm install googleapis
* // ```
*
* const {google} = require('googleapis');
* const datastream = google.datastream('v1alpha1');
*
* async function main() {
* const auth = new google.auth.GoogleAuth({
* // Scopes can be specified either as an array or as a single, space-delimited string.
* scopes: ['https://www.googleapis.com/auth/cloud-platform'],
* });
*
* // Acquire an auth client, and bind it to all future calls
* const authClient = await auth.getClient();
* google.options({auth: authClient});
*
* // Do the magic
* const res = await datastream.projects.locations.list({
* // Optional. Do not use this field. It is unsupported and is ignored unless explicitly documented otherwise. This is primarily for internal usage.
* extraLocationTypes: 'placeholder-value',
* // A filter to narrow down results to a preferred subset. The filtering language accepts strings like `"displayName=tokyo"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
* filter: 'placeholder-value',
* // The resource that owns the locations collection, if applicable.
* name: 'projects/my-project',
* // The maximum number of results to return. If not set, the service selects a default.
* pageSize: 'placeholder-value',
* // A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
* pageToken: 'placeholder-value',
* });
* console.log(res.data);
*
* // Example response
* // {
* // "locations": [],
* // "nextPageToken": "my_nextPageToken"
* // }
* }
*
* main().catch(e => {
* console.error(e);
* throw e;
* });
*
* ```
*
* @param params - Parameters for request
* @param options - Optionally override request options, such as `url`, `method`, and `encoding`.
* @param callback - Optional callback that handles the response.
* @returns A promise if used with async/await, or void if used with a callback.
*/
list(
params: Params$Resource$Projects$Locations$List,
options: StreamMethodOptions
): Promise<GaxiosResponseWithHTTP2<Readable>>;
list(
params?: Params$Resource$Projects$Locations$List,
options?: MethodOptions
): Promise<GaxiosResponseWithHTTP2<Schema$ListLocationsResponse>>;
list(
params: Params$Resource$Projects$Locations$List,
options: StreamMethodOptions | BodyResponseCallback<Readable>,
callback: BodyResponseCallback<Readable>
): void;
list(
params: Params$Resource$Projects$Locations$List,
options:
| MethodOptions
| BodyResponseCallback<Schema$ListLocationsResponse>,
callback: BodyResponseCallback<Schema$ListLocationsResponse>
): void;
list(
params: Params$Resource$Projects$Locations$List,
callback: BodyResponseCallback<Schema$ListLocationsResponse>
): void;
list(callback: BodyResponseCallback<Schema$ListLocationsResponse>): void;
list(
paramsOrCallback?:
| Params$Resource$Projects$Locations$List
| BodyResponseCallback<Schema$ListLocationsResponse>
| BodyResponseCallback<Readable>,
optionsOrCallback?:
| MethodOptions
| StreamMethodOptions
| BodyResponseCallback<Schema$ListLocationsResponse>
| BodyResponseCallback<Readable>,
callback?:
| BodyResponseCallback<Schema$ListLocationsResponse>
| BodyResponseCallback<Readable>
):
| void
| Promise<GaxiosResponseWithHTTP2<Schema$ListLocationsResponse>>
| Promise<GaxiosResponseWithHTTP2<Readable>> {
let params = (paramsOrCallback ||
{}) as Params$Resource$Projects$Locations$List;
let options = (optionsOrCallback || {}) as MethodOptions;
if (typeof paramsOrCallback === 'function') {
callback = paramsOrCallback;
params = {} as Params$Resource$Projects$Locations$List;
options = {};
}
if (typeof optionsOrCallback === 'function') {
callback = optionsOrCallback;
options = {};
}
const rootUrl = options.rootUrl || 'https://datastream.googleapis.com/';
const parameters = {
options: Object.assign(
{
url: (rootUrl + '/v1alpha1/{+name}/locations').replace(
/([^:]\/)\/+/g,
'$1'
),
method: 'GET',
apiVersion: '',
},
options
),
params,
requiredParams: ['name'],
pathParams: ['name'],
context: this.context,
};
if (callback) {
createAPIRequest<Schema$ListLocationsResponse>(
parameters,
callback as BodyResponseCallback<unknown>
);
} else {
return createAPIRequest<Schema$ListLocationsResponse>(parameters);
}
}
}
export interface Params$Resource$Projects$Locations$Fetchstaticips
extends StandardParameters {
/**
* Required. The name resource of the Response type. Must be in the format `projects/x/locations/x`.
*/
name?: string;
/**
* Maximum number of Ips to return, will likely not be specified.
*/
pageSize?: number;
/**
* A page token, received from a previous `ListStaticIps` call. will likely not be specified.
*/
pageToken?: string;
}
export interface Params$Resource$Projects$Locations$Get
extends StandardParameters {
/**
* Resource name for the location.
*/
name?: string;
}
export interface Params$Resource$Projects$Locations$List
extends StandardParameters {
/**
* Optional. Do not use this field. It is unsupporte