UNPKG

@google-cloud/datastream

Version:
2,082 lines 136 kB
import type * as gax from 'google-gax';
import type { Callback, CallOptions, Descriptors, ClientOptions, LROperation, PaginationCallback, IamClient, IamProtos, LocationsClient, LocationProtos } from 'google-gax';
import { Transform } from 'stream';
import * as protos from '../../protos/protos';
/**
 *  Datastream service
 * @class
 * @memberof v1
 */
export declare class DatastreamClient {
    private _terminated;
    private _opts;
    private _providedCustomServicePath;
    private _gaxModule;
    private _gaxGrpc;
    private _protos;
    private _defaults;
    private _universeDomain;
    private _servicePath;
    private _log;
    auth: gax.GoogleAuth;
    descriptors: Descriptors;
    warn: (code: string, message: string, warnType?: string) => void;
    innerApiCalls: {
        [name: string]: Function;
    };
    iamClient: IamClient;
    locationsClient: LocationsClient;
    pathTemplates: {
        [name: string]: gax.PathTemplate;
    };
    operationsClient: gax.OperationsClient;
    datastreamStub?: Promise<{
        [name: string]: Function;
    }>;
    /**
     * Construct an instance of DatastreamClient.
     *
     * @param {object} [options] - The configuration object.
     * The options accepted by the constructor are described in detail
     * in [this document](https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#creating-the-client-instance).
     * The common options are:
     * @param {object} [options.credentials] - Credentials object.
     * @param {string} [options.credentials.client_email]
     * @param {string} [options.credentials.private_key]
     * @param {string} [options.email] - Account email address. Required when
     *     using a .pem or .p12 keyFilename.
     * @param {string} [options.keyFilename] - Full path to the a .json, .pem, or
     *     .p12 key downloaded from the Google Developers Console. If you provide
     *     a path to a JSON file, the projectId option below is not necessary.
     *     NOTE: .pem and .p12 require you to specify options.email as well.
     * @param {number} [options.port] - The port on which to connect to
     *     the remote host.
     * @param {string} [options.projectId] - The project ID from the Google
     *     Developer's Console, e.g. 'grape-spaceship-123'. We will also check
     *     the environment variable GCLOUD_PROJECT for your project ID. If your
     *     app is running in an environment which supports
     *     {@link https://cloud.google.com/docs/authentication/application-default-credentials Application Default Credentials},
     *     your project ID will be detected automatically.
     * @param {string} [options.apiEndpoint] - The domain name of the
     *     API remote host.
     * @param {gax.ClientConfig} [options.clientConfig] - Client configuration override.
     *     Follows the structure of {@link gapicConfig}.
     * @param {boolean} [options.fallback] - Use HTTP/1.1 REST mode.
     *     For more information, please check the
     *     {@link https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#http11-rest-api-mode documentation}.
     * @param {gax} [gaxInstance]: loaded instance of `google-gax`. Useful if you
     *     need to avoid loading the default gRPC version and want to use the fallback
     *     HTTP implementation. Load only fallback version and pass it to the constructor:
     *     ```
     *     const gax = require('google-gax/build/src/fallback'); // avoids loading google-gax with gRPC
     *     const client = new DatastreamClient({fallback: true}, gax);
     *     ```
     */
    constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback);
    /**
     * Initialize the client.
     * Performs asynchronous operations (such as authentication) and prepares the client.
     * This function will be called automatically when any class method is called for the
     * first time, but if you need to initialize it before calling an actual method,
     * feel free to call initialize() directly.
     *
     * You can await on this method if you want to make sure the client is initialized.
     *
     * @returns {Promise} A promise that resolves to an authenticated service stub.
     */
    initialize(): Promise<{
        [name: string]: Function;
    }>;
    /**
     * The DNS address for this API service.
     * @deprecated Use the apiEndpoint method of the client instance.
     * @returns {string} The DNS address for this service.
     */
    static get servicePath(): string;
    /**
     * The DNS address for this API service - same as servicePath.
     * @deprecated Use the apiEndpoint method of the client instance.
     * @returns {string} The DNS address for this service.
     */
    static get apiEndpoint(): string;
    /**
     * The DNS address for this API service.
     * @returns {string} The DNS address for this service.
     */
    get apiEndpoint(): string;
    get universeDomain(): string;
    /**
     * The port for this API service.
     * @returns {number} The default port for this service.
     */
    static get port(): number;
    /**
     * The scopes needed to make gRPC calls for every method defined
     * in this service.
     * @returns {string[]} List of default scopes.
     */
    static get scopes(): string[];
    getProjectId(): Promise<string>;
    getProjectId(callback: Callback<string, undefined, undefined>): void;
    /**
     * Use this method to get details about a connection profile.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Required. The name of the connection profile resource to get.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link protos.google.cloud.datastream.v1.ConnectionProfile|ConnectionProfile}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.get_connection_profile.js</caption>
     * region_tag:datastream_v1_generated_Datastream_GetConnectionProfile_async
     */
    getConnectionProfile(request?: protos.google.cloud.datastream.v1.IGetConnectionProfileRequest, options?: CallOptions): Promise<[
        protos.google.cloud.datastream.v1.IConnectionProfile,
        (protos.google.cloud.datastream.v1.IGetConnectionProfileRequest | undefined),
        {} | undefined
    ]>;
    getConnectionProfile(request: protos.google.cloud.datastream.v1.IGetConnectionProfileRequest, options: CallOptions, callback: Callback<protos.google.cloud.datastream.v1.IConnectionProfile, protos.google.cloud.datastream.v1.IGetConnectionProfileRequest | null | undefined, {} | null | undefined>): void;
    getConnectionProfile(request: protos.google.cloud.datastream.v1.IGetConnectionProfileRequest, callback: Callback<protos.google.cloud.datastream.v1.IConnectionProfile, protos.google.cloud.datastream.v1.IGetConnectionProfileRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Use this method to discover a connection profile.
     * The discover API call exposes the data objects and metadata belonging to
     * the profile. Typically, a request returns children data objects of a
     * parent data object that's optionally supplied in the request.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent resource of the connection profile type. Must be in
     *   the format `projects/* /locations/*`.
     * @param {google.cloud.datastream.v1.ConnectionProfile} request.connectionProfile
     *   An ad-hoc connection profile configuration.
     * @param {string} request.connectionProfileName
     *   A reference to an existing connection profile.
     * @param {boolean} request.fullHierarchy
     *   Whether to retrieve the full hierarchy of data objects (TRUE) or only the
     *   current level (FALSE).
     * @param {number} request.hierarchyDepth
     *   The number of hierarchy levels below the current level to be retrieved.
     * @param {google.cloud.datastream.v1.OracleRdbms} request.oracleRdbms
     *   Oracle RDBMS to enrich with child data objects and metadata.
     * @param {google.cloud.datastream.v1.MysqlRdbms} request.mysqlRdbms
     *   MySQL RDBMS to enrich with child data objects and metadata.
     * @param {google.cloud.datastream.v1.PostgresqlRdbms} request.postgresqlRdbms
     *   PostgreSQL RDBMS to enrich with child data objects and metadata.
     * @param {google.cloud.datastream.v1.SqlServerRdbms} request.sqlServerRdbms
     *   SQLServer RDBMS to enrich with child data objects and metadata.
     * @param {google.cloud.datastream.v1.SalesforceOrg} request.salesforceOrg
     *   Salesforce organization to enrich with child data objects and metadata.
     * @param {google.cloud.datastream.v1.MongodbCluster} request.mongodbCluster
     *   MongoDB cluster to enrich with child data objects and metadata.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link protos.google.cloud.datastream.v1.DiscoverConnectionProfileResponse|DiscoverConnectionProfileResponse}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.discover_connection_profile.js</caption>
     * region_tag:datastream_v1_generated_Datastream_DiscoverConnectionProfile_async
     */
    discoverConnectionProfile(request?: protos.google.cloud.datastream.v1.IDiscoverConnectionProfileRequest, options?: CallOptions): Promise<[
        protos.google.cloud.datastream.v1.IDiscoverConnectionProfileResponse,
        (protos.google.cloud.datastream.v1.IDiscoverConnectionProfileRequest | undefined),
        {} | undefined
    ]>;
    discoverConnectionProfile(request: protos.google.cloud.datastream.v1.IDiscoverConnectionProfileRequest, options: CallOptions, callback: Callback<protos.google.cloud.datastream.v1.IDiscoverConnectionProfileResponse, protos.google.cloud.datastream.v1.IDiscoverConnectionProfileRequest | null | undefined, {} | null | undefined>): void;
    discoverConnectionProfile(request: protos.google.cloud.datastream.v1.IDiscoverConnectionProfileRequest, callback: Callback<protos.google.cloud.datastream.v1.IDiscoverConnectionProfileResponse, protos.google.cloud.datastream.v1.IDiscoverConnectionProfileRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Use this method to get details about a stream.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Required. The name of the stream resource to get.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link protos.google.cloud.datastream.v1.Stream|Stream}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.get_stream.js</caption>
     * region_tag:datastream_v1_generated_Datastream_GetStream_async
     */
    getStream(request?: protos.google.cloud.datastream.v1.IGetStreamRequest, options?: CallOptions): Promise<[
        protos.google.cloud.datastream.v1.IStream,
        protos.google.cloud.datastream.v1.IGetStreamRequest | undefined,
        {} | undefined
    ]>;
    getStream(request: protos.google.cloud.datastream.v1.IGetStreamRequest, options: CallOptions, callback: Callback<protos.google.cloud.datastream.v1.IStream, protos.google.cloud.datastream.v1.IGetStreamRequest | null | undefined, {} | null | undefined>): void;
    getStream(request: protos.google.cloud.datastream.v1.IGetStreamRequest, callback: Callback<protos.google.cloud.datastream.v1.IStream, protos.google.cloud.datastream.v1.IGetStreamRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Use this method to get details about a stream object.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Required. The name of the stream object resource to get.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link protos.google.cloud.datastream.v1.StreamObject|StreamObject}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.get_stream_object.js</caption>
     * region_tag:datastream_v1_generated_Datastream_GetStreamObject_async
     */
    getStreamObject(request?: protos.google.cloud.datastream.v1.IGetStreamObjectRequest, options?: CallOptions): Promise<[
        protos.google.cloud.datastream.v1.IStreamObject,
        protos.google.cloud.datastream.v1.IGetStreamObjectRequest | undefined,
        {} | undefined
    ]>;
    getStreamObject(request: protos.google.cloud.datastream.v1.IGetStreamObjectRequest, options: CallOptions, callback: Callback<protos.google.cloud.datastream.v1.IStreamObject, protos.google.cloud.datastream.v1.IGetStreamObjectRequest | null | undefined, {} | null | undefined>): void;
    getStreamObject(request: protos.google.cloud.datastream.v1.IGetStreamObjectRequest, callback: Callback<protos.google.cloud.datastream.v1.IStreamObject, protos.google.cloud.datastream.v1.IGetStreamObjectRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Use this method to look up a stream object by its source object identifier.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent stream that owns the collection of objects.
     * @param {google.cloud.datastream.v1.SourceObjectIdentifier} request.sourceObjectIdentifier
     *   Required. The source object identifier which maps to the stream object.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link protos.google.cloud.datastream.v1.StreamObject|StreamObject}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.lookup_stream_object.js</caption>
     * region_tag:datastream_v1_generated_Datastream_LookupStreamObject_async
     */
    lookupStreamObject(request?: protos.google.cloud.datastream.v1.ILookupStreamObjectRequest, options?: CallOptions): Promise<[
        protos.google.cloud.datastream.v1.IStreamObject,
        protos.google.cloud.datastream.v1.ILookupStreamObjectRequest | undefined,
        {} | undefined
    ]>;
    lookupStreamObject(request: protos.google.cloud.datastream.v1.ILookupStreamObjectRequest, options: CallOptions, callback: Callback<protos.google.cloud.datastream.v1.IStreamObject, protos.google.cloud.datastream.v1.ILookupStreamObjectRequest | null | undefined, {} | null | undefined>): void;
    lookupStreamObject(request: protos.google.cloud.datastream.v1.ILookupStreamObjectRequest, callback: Callback<protos.google.cloud.datastream.v1.IStreamObject, protos.google.cloud.datastream.v1.ILookupStreamObjectRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Use this method to start a backfill job for the specified stream object.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.object
     *   Required. The name of the stream object resource to start a backfill job
     *   for.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link protos.google.cloud.datastream.v1.StartBackfillJobResponse|StartBackfillJobResponse}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.start_backfill_job.js</caption>
     * region_tag:datastream_v1_generated_Datastream_StartBackfillJob_async
     */
    startBackfillJob(request?: protos.google.cloud.datastream.v1.IStartBackfillJobRequest, options?: CallOptions): Promise<[
        protos.google.cloud.datastream.v1.IStartBackfillJobResponse,
        protos.google.cloud.datastream.v1.IStartBackfillJobRequest | undefined,
        {} | undefined
    ]>;
    startBackfillJob(request: protos.google.cloud.datastream.v1.IStartBackfillJobRequest, options: CallOptions, callback: Callback<protos.google.cloud.datastream.v1.IStartBackfillJobResponse, protos.google.cloud.datastream.v1.IStartBackfillJobRequest | null | undefined, {} | null | undefined>): void;
    startBackfillJob(request: protos.google.cloud.datastream.v1.IStartBackfillJobRequest, callback: Callback<protos.google.cloud.datastream.v1.IStartBackfillJobResponse, protos.google.cloud.datastream.v1.IStartBackfillJobRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Use this method to stop a backfill job for the specified stream object.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.object
     *   Required. The name of the stream object resource to stop the backfill job
     *   for.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link protos.google.cloud.datastream.v1.StopBackfillJobResponse|StopBackfillJobResponse}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.stop_backfill_job.js</caption>
     * region_tag:datastream_v1_generated_Datastream_StopBackfillJob_async
     */
    stopBackfillJob(request?: protos.google.cloud.datastream.v1.IStopBackfillJobRequest, options?: CallOptions): Promise<[
        protos.google.cloud.datastream.v1.IStopBackfillJobResponse,
        protos.google.cloud.datastream.v1.IStopBackfillJobRequest | undefined,
        {} | undefined
    ]>;
    stopBackfillJob(request: protos.google.cloud.datastream.v1.IStopBackfillJobRequest, options: CallOptions, callback: Callback<protos.google.cloud.datastream.v1.IStopBackfillJobResponse, protos.google.cloud.datastream.v1.IStopBackfillJobRequest | null | undefined, {} | null | undefined>): void;
    stopBackfillJob(request: protos.google.cloud.datastream.v1.IStopBackfillJobRequest, callback: Callback<protos.google.cloud.datastream.v1.IStopBackfillJobResponse, protos.google.cloud.datastream.v1.IStopBackfillJobRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Use this method to get details about a private connectivity configuration.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Required. The name of the  private connectivity configuration to get.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link protos.google.cloud.datastream.v1.PrivateConnection|PrivateConnection}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.get_private_connection.js</caption>
     * region_tag:datastream_v1_generated_Datastream_GetPrivateConnection_async
     */
    getPrivateConnection(request?: protos.google.cloud.datastream.v1.IGetPrivateConnectionRequest, options?: CallOptions): Promise<[
        protos.google.cloud.datastream.v1.IPrivateConnection,
        (protos.google.cloud.datastream.v1.IGetPrivateConnectionRequest | undefined),
        {} | undefined
    ]>;
    getPrivateConnection(request: protos.google.cloud.datastream.v1.IGetPrivateConnectionRequest, options: CallOptions, callback: Callback<protos.google.cloud.datastream.v1.IPrivateConnection, protos.google.cloud.datastream.v1.IGetPrivateConnectionRequest | null | undefined, {} | null | undefined>): void;
    getPrivateConnection(request: protos.google.cloud.datastream.v1.IGetPrivateConnectionRequest, callback: Callback<protos.google.cloud.datastream.v1.IPrivateConnection, protos.google.cloud.datastream.v1.IGetPrivateConnectionRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Use this method to get details about a route.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Required. The name of the Route resource to get.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link protos.google.cloud.datastream.v1.Route|Route}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.get_route.js</caption>
     * region_tag:datastream_v1_generated_Datastream_GetRoute_async
     */
    getRoute(request?: protos.google.cloud.datastream.v1.IGetRouteRequest, options?: CallOptions): Promise<[
        protos.google.cloud.datastream.v1.IRoute,
        protos.google.cloud.datastream.v1.IGetRouteRequest | undefined,
        {} | undefined
    ]>;
    getRoute(request: protos.google.cloud.datastream.v1.IGetRouteRequest, options: CallOptions, callback: Callback<protos.google.cloud.datastream.v1.IRoute, protos.google.cloud.datastream.v1.IGetRouteRequest | null | undefined, {} | null | undefined>): void;
    getRoute(request: protos.google.cloud.datastream.v1.IGetRouteRequest, callback: Callback<protos.google.cloud.datastream.v1.IRoute, protos.google.cloud.datastream.v1.IGetRouteRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Use this method to create a connection profile in a project and location.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent that owns the collection of ConnectionProfiles.
     * @param {string} request.connectionProfileId
     *   Required. The connection profile identifier.
     * @param {google.cloud.datastream.v1.ConnectionProfile} request.connectionProfile
     *   Required. The connection profile resource to create.
     * @param {string} [request.requestId]
     *   Optional. A request ID to identify requests. Specify a unique request ID
     *   so that if you must retry your request, the server will know to ignore
     *   the request if it has already been completed. The server will guarantee
     *   that for at least 60 minutes since the first request.
     *
     *   For example, consider a situation where you make an initial request and the
     *   request times out. If you make the request again with the same request ID,
     *   the server can check if original operation with the same request ID was
     *   received, and if so, will ignore the second request. This prevents clients
     *   from accidentally creating duplicate commitments.
     *
     *   The request ID must be a valid UUID with the exception that zero UUID is
     *   not supported (00000000-0000-0000-0000-000000000000).
     * @param {boolean} [request.validateOnly]
     *   Optional. Only validate the connection profile, but don't create any
     *   resources. The default is false.
     * @param {boolean} [request.force]
     *   Optional. Create the connection profile without validating it.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation. Its `promise()` method returns a promise
     *   you can `await` for.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.create_connection_profile.js</caption>
     * region_tag:datastream_v1_generated_Datastream_CreateConnectionProfile_async
     */
    createConnectionProfile(request?: protos.google.cloud.datastream.v1.ICreateConnectionProfileRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.datastream.v1.IConnectionProfile, protos.google.cloud.datastream.v1.IOperationMetadata>,
        protos.google.longrunning.IOperation | undefined,
        {} | undefined
    ]>;
    createConnectionProfile(request: protos.google.cloud.datastream.v1.ICreateConnectionProfileRequest, options: CallOptions, callback: Callback<LROperation<protos.google.cloud.datastream.v1.IConnectionProfile, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    createConnectionProfile(request: protos.google.cloud.datastream.v1.ICreateConnectionProfileRequest, callback: Callback<LROperation<protos.google.cloud.datastream.v1.IConnectionProfile, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    /**
     * Check the status of the long running operation returned by `createConnectionProfile()`.
     * @param {String} name
     *   The operation name that will be passed.
     * @returns {Promise} - The promise which resolves to an object.
     *   The decoded operation object has result and metadata field to get information from.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.create_connection_profile.js</caption>
     * region_tag:datastream_v1_generated_Datastream_CreateConnectionProfile_async
     */
    checkCreateConnectionProfileProgress(name: string): Promise<LROperation<protos.google.cloud.datastream.v1.ConnectionProfile, protos.google.cloud.datastream.v1.OperationMetadata>>;
    /**
     * Use this method to update the parameters of a connection profile.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {google.protobuf.FieldMask} [request.updateMask]
     *   Optional. Field mask is used to specify the fields to be overwritten in the
     *   ConnectionProfile resource by the update.
     *   The fields specified in the update_mask are relative to the resource, not
     *   the full request. A field will be overwritten if it is in the mask. If the
     *   user does not provide a mask then all fields will be overwritten.
     * @param {google.cloud.datastream.v1.ConnectionProfile} request.connectionProfile
     *   Required. The connection profile to update.
     * @param {string} [request.requestId]
     *   Optional. A request ID to identify requests. Specify a unique request ID
     *   so that if you must retry your request, the server will know to ignore
     *   the request if it has already been completed. The server will guarantee
     *   that for at least 60 minutes since the first request.
     *
     *   For example, consider a situation where you make an initial request and the
     *   request times out. If you make the request again with the same request ID,
     *   the server can check if original operation with the same request ID was
     *   received, and if so, will ignore the second request. This prevents clients
     *   from accidentally creating duplicate commitments.
     *
     *   The request ID must be a valid UUID with the exception that zero UUID is
     *   not supported (00000000-0000-0000-0000-000000000000).
     * @param {boolean} [request.validateOnly]
     *   Optional. Only validate the connection profile, but don't update any
     *   resources. The default is false.
     * @param {boolean} [request.force]
     *   Optional. Update the connection profile without validating it.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation. Its `promise()` method returns a promise
     *   you can `await` for.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.update_connection_profile.js</caption>
     * region_tag:datastream_v1_generated_Datastream_UpdateConnectionProfile_async
     */
    updateConnectionProfile(request?: protos.google.cloud.datastream.v1.IUpdateConnectionProfileRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.datastream.v1.IConnectionProfile, protos.google.cloud.datastream.v1.IOperationMetadata>,
        protos.google.longrunning.IOperation | undefined,
        {} | undefined
    ]>;
    updateConnectionProfile(request: protos.google.cloud.datastream.v1.IUpdateConnectionProfileRequest, options: CallOptions, callback: Callback<LROperation<protos.google.cloud.datastream.v1.IConnectionProfile, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    updateConnectionProfile(request: protos.google.cloud.datastream.v1.IUpdateConnectionProfileRequest, callback: Callback<LROperation<protos.google.cloud.datastream.v1.IConnectionProfile, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    /**
     * Check the status of the long running operation returned by `updateConnectionProfile()`.
     * @param {String} name
     *   The operation name that will be passed.
     * @returns {Promise} - The promise which resolves to an object.
     *   The decoded operation object has result and metadata field to get information from.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.update_connection_profile.js</caption>
     * region_tag:datastream_v1_generated_Datastream_UpdateConnectionProfile_async
     */
    checkUpdateConnectionProfileProgress(name: string): Promise<LROperation<protos.google.cloud.datastream.v1.ConnectionProfile, protos.google.cloud.datastream.v1.OperationMetadata>>;
    /**
     * Use this method to delete a connection profile.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Required. The name of the connection profile resource to delete.
     * @param {string} [request.requestId]
     *   Optional. A request ID to identify requests. Specify a unique request ID
     *   so that if you must retry your request, the server will know to ignore
     *   the request if it has already been completed. The server will guarantee
     *   that for at least 60 minutes after the first request.
     *
     *   For example, consider a situation where you make an initial request and the
     *   request times out. If you make the request again with the same request ID,
     *   the server can check if original operation with the same request ID was
     *   received, and if so, will ignore the second request. This prevents clients
     *   from accidentally creating duplicate commitments.
     *
     *   The request ID must be a valid UUID with the exception that zero UUID is
     *   not supported (00000000-0000-0000-0000-000000000000).
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation. Its `promise()` method returns a promise
     *   you can `await` for.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.delete_connection_profile.js</caption>
     * region_tag:datastream_v1_generated_Datastream_DeleteConnectionProfile_async
     */
    deleteConnectionProfile(request?: protos.google.cloud.datastream.v1.IDeleteConnectionProfileRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.protobuf.IEmpty, protos.google.cloud.datastream.v1.IOperationMetadata>,
        protos.google.longrunning.IOperation | undefined,
        {} | undefined
    ]>;
    deleteConnectionProfile(request: protos.google.cloud.datastream.v1.IDeleteConnectionProfileRequest, options: CallOptions, callback: Callback<LROperation<protos.google.protobuf.IEmpty, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    deleteConnectionProfile(request: protos.google.cloud.datastream.v1.IDeleteConnectionProfileRequest, callback: Callback<LROperation<protos.google.protobuf.IEmpty, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    /**
     * Check the status of the long running operation returned by `deleteConnectionProfile()`.
     * @param {String} name
     *   The operation name that will be passed.
     * @returns {Promise} - The promise which resolves to an object.
     *   The decoded operation object has result and metadata field to get information from.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.delete_connection_profile.js</caption>
     * region_tag:datastream_v1_generated_Datastream_DeleteConnectionProfile_async
     */
    checkDeleteConnectionProfileProgress(name: string): Promise<LROperation<protos.google.protobuf.Empty, protos.google.cloud.datastream.v1.OperationMetadata>>;
    /**
     * Use this method to create a stream.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent that owns the collection of streams.
     * @param {string} request.streamId
     *   Required. The stream identifier.
     * @param {google.cloud.datastream.v1.Stream} request.stream
     *   Required. The stream resource to create.
     * @param {string} [request.requestId]
     *   Optional. A request ID to identify requests. Specify a unique request ID
     *   so that if you must retry your request, the server will know to ignore
     *   the request if it has already been completed. The server will guarantee
     *   that for at least 60 minutes since the first request.
     *
     *   For example, consider a situation where you make an initial request and the
     *   request times out. If you make the request again with the same request ID,
     *   the server can check if original operation with the same request ID was
     *   received, and if so, will ignore the second request. This prevents clients
     *   from accidentally creating duplicate commitments.
     *
     *   The request ID must be a valid UUID with the exception that zero UUID is
     *   not supported (00000000-0000-0000-0000-000000000000).
     * @param {boolean} [request.validateOnly]
     *   Optional. Only validate the stream, but don't create any resources.
     *   The default is false.
     * @param {boolean} [request.force]
     *   Optional. Create the stream without validating it.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation. Its `promise()` method returns a promise
     *   you can `await` for.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.create_stream.js</caption>
     * region_tag:datastream_v1_generated_Datastream_CreateStream_async
     */
    createStream(request?: protos.google.cloud.datastream.v1.ICreateStreamRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.datastream.v1.IStream, protos.google.cloud.datastream.v1.IOperationMetadata>,
        protos.google.longrunning.IOperation | undefined,
        {} | undefined
    ]>;
    createStream(request: protos.google.cloud.datastream.v1.ICreateStreamRequest, options: CallOptions, callback: Callback<LROperation<protos.google.cloud.datastream.v1.IStream, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    createStream(request: protos.google.cloud.datastream.v1.ICreateStreamRequest, callback: Callback<LROperation<protos.google.cloud.datastream.v1.IStream, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    /**
     * Check the status of the long running operation returned by `createStream()`.
     * @param {String} name
     *   The operation name that will be passed.
     * @returns {Promise} - The promise which resolves to an object.
     *   The decoded operation object has result and metadata field to get information from.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.create_stream.js</caption>
     * region_tag:datastream_v1_generated_Datastream_CreateStream_async
     */
    checkCreateStreamProgress(name: string): Promise<LROperation<protos.google.cloud.datastream.v1.Stream, protos.google.cloud.datastream.v1.OperationMetadata>>;
    /**
     * Use this method to update the configuration of a stream.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {google.protobuf.FieldMask} [request.updateMask]
     *   Optional. Field mask is used to specify the fields to be overwritten in the
     *   stream resource by the update.
     *   The fields specified in the update_mask are relative to the resource, not
     *   the full request. A field will be overwritten if it is in the mask. If the
     *   user does not provide a mask then all fields will be overwritten.
     * @param {google.cloud.datastream.v1.Stream} request.stream
     *   Required. The stream resource to update.
     * @param {string} [request.requestId]
     *   Optional. A request ID to identify requests. Specify a unique request ID
     *   so that if you must retry your request, the server will know to ignore
     *   the request if it has already been completed. The server will guarantee
     *   that for at least 60 minutes since the first request.
     *
     *   For example, consider a situation where you make an initial request and the
     *   request times out. If you make the request again with the same request ID,
     *   the server can check if original operation with the same request ID was
     *   received, and if so, will ignore the second request. This prevents clients
     *   from accidentally creating duplicate commitments.
     *
     *   The request ID must be a valid UUID with the exception that zero UUID is
     *   not supported (00000000-0000-0000-0000-000000000000).
     * @param {boolean} [request.validateOnly]
     *   Optional. Only validate the stream with the changes, without actually
     *   updating it. The default is false.
     * @param {boolean} [request.force]
     *   Optional. Update the stream without validating it.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation. Its `promise()` method returns a promise
     *   you can `await` for.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.update_stream.js</caption>
     * region_tag:datastream_v1_generated_Datastream_UpdateStream_async
     */
    updateStream(request?: protos.google.cloud.datastream.v1.IUpdateStreamRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.datastream.v1.IStream, protos.google.cloud.datastream.v1.IOperationMetadata>,
        protos.google.longrunning.IOperation | undefined,
        {} | undefined
    ]>;
    updateStream(request: protos.google.cloud.datastream.v1.IUpdateStreamRequest, options: CallOptions, callback: Callback<LROperation<protos.google.cloud.datastream.v1.IStream, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    updateStream(request: protos.google.cloud.datastream.v1.IUpdateStreamRequest, callback: Callback<LROperation<protos.google.cloud.datastream.v1.IStream, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    /**
     * Check the status of the long running operation returned by `updateStream()`.
     * @param {String} name
     *   The operation name that will be passed.
     * @returns {Promise} - The promise which resolves to an object.
     *   The decoded operation object has result and metadata field to get information from.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.update_stream.js</caption>
     * region_tag:datastream_v1_generated_Datastream_UpdateStream_async
     */
    checkUpdateStreamProgress(name: string): Promise<LROperation<protos.google.cloud.datastream.v1.Stream, protos.google.cloud.datastream.v1.OperationMetadata>>;
    /**
     * Use this method to delete a stream.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Required. The name of the stream resource to delete.
     * @param {string} [request.requestId]
     *   Optional. A request ID to identify requests. Specify a unique request ID
     *   so that if you must retry your request, the server will know to ignore
     *   the request if it has already been completed. The server will guarantee
     *   that for at least 60 minutes after the first request.
     *
     *   For example, consider a situation where you make an initial request and the
     *   request times out. If you make the request again with the same request ID,
     *   the server can check if original operation with the same request ID was
     *   received, and if so, will ignore the second request. This prevents clients
     *   from accidentally creating duplicate commitments.
     *
     *   The request ID must be a valid UUID with the exception that zero UUID is
     *   not supported (00000000-0000-0000-0000-000000000000).
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation. Its `promise()` method returns a promise
     *   you can `await` for.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.delete_stream.js</caption>
     * region_tag:datastream_v1_generated_Datastream_DeleteStream_async
     */
    deleteStream(request?: protos.google.cloud.datastream.v1.IDeleteStreamRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.protobuf.IEmpty, protos.google.cloud.datastream.v1.IOperationMetadata>,
        protos.google.longrunning.IOperation | undefined,
        {} | undefined
    ]>;
    deleteStream(request: protos.google.cloud.datastream.v1.IDeleteStreamRequest, options: CallOptions, callback: Callback<LROperation<protos.google.protobuf.IEmpty, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    deleteStream(request: protos.google.cloud.datastream.v1.IDeleteStreamRequest, callback: Callback<LROperation<protos.google.protobuf.IEmpty, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    /**
     * Check the status of the long running operation returned by `deleteStream()`.
     * @param {String} name
     *   The operation name that will be passed.
     * @returns {Promise} - The promise which resolves to an object.
     *   The decoded operation object has result and metadata field to get information from.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.delete_stream.js</caption>
     * region_tag:datastream_v1_generated_Datastream_DeleteStream_async
     */
    checkDeleteStreamProgress(name: string): Promise<LROperation<protos.google.protobuf.Empty, protos.google.cloud.datastream.v1.OperationMetadata>>;
    /**
     * Use this method to start, resume or recover a stream with a non default CDC
     * strategy.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Required. Name of the stream resource to start, in the format:
     *   projects/{project_id}/locations/{location}/streams/{stream_name}
     * @param {google.cloud.datastream.v1.CdcStrategy} [request.cdcStrategy]
     *   Optional. The CDC strategy of the stream. If not set, the system's default
     *   value will be used.
     * @param {boolean} [request.force]
     *   Optional. Update the stream without validating it.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation. Its `promise()` method returns a promise
     *   you can `await` for.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.run_stream.js</caption>
     * region_tag:datastream_v1_generated_Datastream_RunStream_async
     */
    runStream(request?: protos.google.cloud.datastream.v1.IRunStreamRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.datastream.v1.IStream, protos.google.cloud.datastream.v1.IOperationMetadata>,
        protos.google.longrunning.IOperation | undefined,
        {} | undefined
    ]>;
    runStream(request: protos.google.cloud.datastream.v1.IRunStreamRequest, options: CallOptions, callback: Callback<LROperation<protos.google.cloud.datastream.v1.IStream, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    runStream(request: protos.google.cloud.datastream.v1.IRunStreamRequest, callback: Callback<LROperation<protos.google.cloud.datastream.v1.IStream, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    /**
     * Check the status of the long running operation returned by `runStream()`.
     * @param {String} name
     *   The operation name that will be passed.
     * @returns {Promise} - The promise which resolves to an object.
     *   The decoded operation object has result and metadata field to get information from.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.run_stream.js</caption>
     * region_tag:datastream_v1_generated_Datastream_RunStream_async
     */
    checkRunStreamProgress(name: string): Promise<LROperation<protos.google.cloud.datastream.v1.Stream, protos.google.cloud.datastream.v1.OperationMetadata>>;
    /**
     * Use this method to create a private connectivity configuration.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent that owns the collection of PrivateConnections.
     * @param {string} request.privateConnectionId
     *   Required. The private connectivity identifier.
     * @param {google.cloud.datastream.v1.PrivateConnection} request.privateConnection
     *   Required. The Private Connectivity resource to create.
     * @param {string} [request.requestId]
     *   Optional. A request ID to identify requests. Specify a unique request ID
     *   so that if you must retry your request, the server will know to ignore
     *   the request if it has already been completed. The server will guarantee
     *   that for at least 60 minutes since the first request.
     *
     *   For example, consider a situation where you make an initial request and the
     *   request times out. If you make the request again with the same request ID,
     *   the server can check if original operation with the same request ID was
     *   received, and if so, will ignore the second request. This prevents clients
     *   from accidentally creating duplicate commitments.
     *
     *   The request ID must be a valid UUID with the exception that zero UUID is
     *   not supported (00000000-0000-0000-0000-000000000000).
     * @param {boolean} [request.force]
     *   Optional. If set to true, will skip validations.
     * @param {boolean} [request.validateOnly]
     *   Optional. When supplied with PSC Interface config, will get/create the
     *   tenant project required for the customer to allow list and won't actually
     *   create the private connection.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation. Its `promise()` method returns a promise
     *   you can `await` for.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.create_private_connection.js</caption>
     * region_tag:datastream_v1_generated_Datastream_CreatePrivateConnection_async
     */
    createPrivateConnection(request?: protos.google.cloud.datastream.v1.ICreatePrivateConnectionRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.datastream.v1.IPrivateConnection, protos.google.cloud.datastream.v1.IOperationMetadata>,
        protos.google.longrunning.IOperation | undefined,
        {} | undefined
    ]>;
    createPrivateConnection(request: protos.google.cloud.datastream.v1.ICreatePrivateConnectionRequest, options: CallOptions, callback: Callback<LROperation<protos.google.cloud.datastream.v1.IPrivateConnection, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    createPrivateConnection(request: protos.google.cloud.datastream.v1.ICreatePrivateConnectionRequest, callback: Callback<LROperation<protos.google.cloud.datastream.v1.IPrivateConnection, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    /**
     * Check the status of the long running operation returned by `createPrivateConnection()`.
     * @param {String} name
     *   The operation name that will be passed.
     * @returns {Promise} - The promise which resolves to an object.
     *   The decoded operation object has result and metadata field to get information from.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.create_private_connection.js</caption>
     * region_tag:datastream_v1_generated_Datastream_CreatePrivateConnection_async
     */
    checkCreatePrivateConnectionProgress(name: string): Promise<LROperation<protos.google.cloud.datastream.v1.PrivateConnection, protos.google.cloud.datastream.v1.OperationMetadata>>;
    /**
     * Use this method to delete a private connectivity configuration.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Required. The name of the private connectivity configuration to delete.
     * @param {string} [request.requestId]
     *   Optional. A request ID to identify requests. Specify a unique request ID
     *   so that if you must retry your request, the server will know to ignore
     *   the request if it has already been completed. The server will guarantee
     *   that for at least 60 minutes after the first request.
     *
     *   For example, consider a situation where you make an initial request and the
     *   request times out. If you make the request again with the same request ID,
     *   the server can check if original operation with the same request ID was
     *   received, and if so, will ignore the second request. This prevents clients
     *   from accidentally creating duplicate commitments.
     *
     *   The request ID must be a valid UUID with the exception that zero UUID is
     *   not supported (00000000-0000-0000-0000-000000000000).
     * @param {boolean} [request.force]
     *   Optional. If set to true, any child routes that belong to this
     *   PrivateConnection will also be deleted.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation. Its `promise()` method returns a promise
     *   you can `await` for.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.delete_private_connection.js</caption>
     * region_tag:datastream_v1_generated_Datastream_DeletePrivateConnection_async
     */
    deletePrivateConnection(request?: protos.google.cloud.datastream.v1.IDeletePrivateConnectionRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.protobuf.IEmpty, protos.google.cloud.datastream.v1.IOperationMetadata>,
        protos.google.longrunning.IOperation | undefined,
        {} | undefined
    ]>;
    deletePrivateConnection(request: protos.google.cloud.datastream.v1.IDeletePrivateConnectionRequest, options: CallOptions, callback: Callback<LROperation<protos.google.protobuf.IEmpty, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    deletePrivateConnection(request: protos.google.cloud.datastream.v1.IDeletePrivateConnectionRequest, callback: Callback<LROperation<protos.google.protobuf.IEmpty, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    /**
     * Check the status of the long running operation returned by `deletePrivateConnection()`.
     * @param {String} name
     *   The operation name that will be passed.
     * @returns {Promise} - The promise which resolves to an object.
     *   The decoded operation object has result and metadata field to get information from.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.delete_private_connection.js</caption>
     * region_tag:datastream_v1_generated_Datastream_DeletePrivateConnection_async
     */
    checkDeletePrivateConnectionProgress(name: string): Promise<LROperation<protos.google.protobuf.Empty, protos.google.cloud.datastream.v1.OperationMetadata>>;
    /**
     * Use this method to create a route for a private connectivity configuration
     * in a project and location.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent that owns the collection of Routes.
     * @param {string} request.routeId
     *   Required. The Route identifier.
     * @param {google.cloud.datastream.v1.Route} request.route
     *   Required. The Route resource to create.
     * @param {string} [request.requestId]
     *   Optional. A request ID to identify requests. Specify a unique request ID
     *   so that if you must retry your request, the server will know to ignore
     *   the request if it has already been completed. The server will guarantee
     *   that for at least 60 minutes since the first request.
     *
     *   For example, consider a situation where you make an initial request and the
     *   request times out. If you make the request again with the same request ID,
     *   the server can check if original operation with the same request ID was
     *   received, and if so, will ignore the second request. This prevents clients
     *   from accidentally creating duplicate commitments.
     *
     *   The request ID must be a valid UUID with the exception that zero UUID is
     *   not supported (00000000-0000-0000-0000-000000000000).
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation. Its `promise()` method returns a promise
     *   you can `await` for.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.create_route.js</caption>
     * region_tag:datastream_v1_generated_Datastream_CreateRoute_async
     */
    createRoute(request?: protos.google.cloud.datastream.v1.ICreateRouteRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.datastream.v1.IRoute, protos.google.cloud.datastream.v1.IOperationMetadata>,
        protos.google.longrunning.IOperation | undefined,
        {} | undefined
    ]>;
    createRoute(request: protos.google.cloud.datastream.v1.ICreateRouteRequest, options: CallOptions, callback: Callback<LROperation<protos.google.cloud.datastream.v1.IRoute, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    createRoute(request: protos.google.cloud.datastream.v1.ICreateRouteRequest, callback: Callback<LROperation<protos.google.cloud.datastream.v1.IRoute, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    /**
     * Check the status of the long running operation returned by `createRoute()`.
     * @param {String} name
     *   The operation name that will be passed.
     * @returns {Promise} - The promise which resolves to an object.
     *   The decoded operation object has result and metadata field to get information from.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.create_route.js</caption>
     * region_tag:datastream_v1_generated_Datastream_CreateRoute_async
     */
    checkCreateRouteProgress(name: string): Promise<LROperation<protos.google.cloud.datastream.v1.Route, protos.google.cloud.datastream.v1.OperationMetadata>>;
    /**
     * Use this method to delete a route.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Required. The name of the Route resource to delete.
     * @param {string} [request.requestId]
     *   Optional. A request ID to identify requests. Specify a unique request ID
     *   so that if you must retry your request, the server will know to ignore
     *   the request if it has already been completed. The server will guarantee
     *   that for at least 60 minutes after the first request.
     *
     *   For example, consider a situation where you make an initial request and the
     *   request times out. If you make the request again with the same request ID,
     *   the server can check if original operation with the same request ID was
     *   received, and if so, will ignore the second request. This prevents clients
     *   from accidentally creating duplicate commitments.
     *
     *   The request ID must be a valid UUID with the exception that zero UUID is
     *   not supported (00000000-0000-0000-0000-000000000000).
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation. Its `promise()` method returns a promise
     *   you can `await` for.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.delete_route.js</caption>
     * region_tag:datastream_v1_generated_Datastream_DeleteRoute_async
     */
    deleteRoute(request?: protos.google.cloud.datastream.v1.IDeleteRouteRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.protobuf.IEmpty, protos.google.cloud.datastream.v1.IOperationMetadata>,
        protos.google.longrunning.IOperation | undefined,
        {} | undefined
    ]>;
    deleteRoute(request: protos.google.cloud.datastream.v1.IDeleteRouteRequest, options: CallOptions, callback: Callback<LROperation<protos.google.protobuf.IEmpty, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    deleteRoute(request: protos.google.cloud.datastream.v1.IDeleteRouteRequest, callback: Callback<LROperation<protos.google.protobuf.IEmpty, protos.google.cloud.datastream.v1.IOperationMetadata>, protos.google.longrunning.IOperation | null | undefined, {} | null | undefined>): void;
    /**
     * Check the status of the long running operation returned by `deleteRoute()`.
     * @param {String} name
     *   The operation name that will be passed.
     * @returns {Promise} - The promise which resolves to an object.
     *   The decoded operation object has result and metadata field to get information from.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.delete_route.js</caption>
     * region_tag:datastream_v1_generated_Datastream_DeleteRoute_async
     */
    checkDeleteRouteProgress(name: string): Promise<LROperation<protos.google.protobuf.Empty, protos.google.cloud.datastream.v1.OperationMetadata>>;
    /**
     * Use this method to list connection profiles created in a project and
     * location.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent that owns the collection of connection profiles.
     * @param {number} request.pageSize
     *   Maximum number of connection profiles to return.
     *   If unspecified, at most 50 connection profiles will be returned.
     *   The maximum value is 1000; values above 1000 will be coerced to 1000.
     * @param {string} request.pageToken
     *   Page token received from a previous `ListConnectionProfiles` call.
     *   Provide this to retrieve the subsequent page.
     *
     *   When paginating, all other parameters provided to `ListConnectionProfiles`
     *   must match the call that provided the page token.
     * @param {string} request.filter
     *   Filter request.
     * @param {string} request.orderBy
     *   Order by fields for the result.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is Array of {@link protos.google.cloud.datastream.v1.ConnectionProfile|ConnectionProfile}.
     *   The client library will perform auto-pagination by default: it will call the API as many
     *   times as needed and will merge results from all the pages into this array.
     *   Note that it can affect your quota.
     *   We recommend using `listConnectionProfilesAsync()`
     *   method described below for async iteration which you can stop as needed.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     */
    listConnectionProfiles(request?: protos.google.cloud.datastream.v1.IListConnectionProfilesRequest, options?: CallOptions): Promise<[
        protos.google.cloud.datastream.v1.IConnectionProfile[],
        protos.google.cloud.datastream.v1.IListConnectionProfilesRequest | null,
        protos.google.cloud.datastream.v1.IListConnectionProfilesResponse
    ]>;
    listConnectionProfiles(request: protos.google.cloud.datastream.v1.IListConnectionProfilesRequest, options: CallOptions, callback: PaginationCallback<protos.google.cloud.datastream.v1.IListConnectionProfilesRequest, protos.google.cloud.datastream.v1.IListConnectionProfilesResponse | null | undefined, protos.google.cloud.datastream.v1.IConnectionProfile>): void;
    listConnectionProfiles(request: protos.google.cloud.datastream.v1.IListConnectionProfilesRequest, callback: PaginationCallback<protos.google.cloud.datastream.v1.IListConnectionProfilesRequest, protos.google.cloud.datastream.v1.IListConnectionProfilesResponse | null | undefined, protos.google.cloud.datastream.v1.IConnectionProfile>): void;
    /**
     * Equivalent to `listConnectionProfiles`, but returns a NodeJS Stream object.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent that owns the collection of connection profiles.
     * @param {number} request.pageSize
     *   Maximum number of connection profiles to return.
     *   If unspecified, at most 50 connection profiles will be returned.
     *   The maximum value is 1000; values above 1000 will be coerced to 1000.
     * @param {string} request.pageToken
     *   Page token received from a previous `ListConnectionProfiles` call.
     *   Provide this to retrieve the subsequent page.
     *
     *   When paginating, all other parameters provided to `ListConnectionProfiles`
     *   must match the call that provided the page token.
     * @param {string} request.filter
     *   Filter request.
     * @param {string} request.orderBy
     *   Order by fields for the result.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Stream}
     *   An object stream which emits an object representing {@link protos.google.cloud.datastream.v1.ConnectionProfile|ConnectionProfile} on 'data' event.
     *   The client library will perform auto-pagination by default: it will call the API as many
     *   times as needed. Note that it can affect your quota.
     *   We recommend using `listConnectionProfilesAsync()`
     *   method described below for async iteration which you can stop as needed.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     */
    listConnectionProfilesStream(request?: protos.google.cloud.datastream.v1.IListConnectionProfilesRequest, options?: CallOptions): Transform;
    /**
     * Equivalent to `listConnectionProfiles`, but returns an iterable object.
     *
     * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent that owns the collection of connection profiles.
     * @param {number} request.pageSize
     *   Maximum number of connection profiles to return.
     *   If unspecified, at most 50 connection profiles will be returned.
     *   The maximum value is 1000; values above 1000 will be coerced to 1000.
     * @param {string} request.pageToken
     *   Page token received from a previous `ListConnectionProfiles` call.
     *   Provide this to retrieve the subsequent page.
     *
     *   When paginating, all other parameters provided to `ListConnectionProfiles`
     *   must match the call that provided the page token.
     * @param {string} request.filter
     *   Filter request.
     * @param {string} request.orderBy
     *   Order by fields for the result.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Object}
     *   An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }.
     *   When you iterate the returned iterable, each element will be an object representing
     *   {@link protos.google.cloud.datastream.v1.ConnectionProfile|ConnectionProfile}. The API will be called under the hood as needed, once per the page,
     *   so you can stop the iteration when you don't need more results.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.list_connection_profiles.js</caption>
     * region_tag:datastream_v1_generated_Datastream_ListConnectionProfiles_async
     */
    listConnectionProfilesAsync(request?: protos.google.cloud.datastream.v1.IListConnectionProfilesRequest, options?: CallOptions): AsyncIterable<protos.google.cloud.datastream.v1.IConnectionProfile>;
    /**
     * Use this method to list streams in a project and location.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent that owns the collection of streams.
     * @param {number} request.pageSize
     *   Maximum number of streams to return.
     *   If unspecified, at most 50 streams will  be returned. The maximum
     *   value is 1000; values above 1000 will be coerced to 1000.
     * @param {string} request.pageToken
     *   Page token received from a previous `ListStreams` call.
     *   Provide this to retrieve the subsequent page.
     *
     *   When paginating, all other parameters provided to `ListStreams`
     *   must match the call that provided the page token.
     * @param {string} request.filter
     *   Filter request.
     * @param {string} request.orderBy
     *   Order by fields for the result.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is Array of {@link protos.google.cloud.datastream.v1.Stream|Stream}.
     *   The client library will perform auto-pagination by default: it will call the API as many
     *   times as needed and will merge results from all the pages into this array.
     *   Note that it can affect your quota.
     *   We recommend using `listStreamsAsync()`
     *   method described below for async iteration which you can stop as needed.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     */
    listStreams(request?: protos.google.cloud.datastream.v1.IListStreamsRequest, options?: CallOptions): Promise<[
        protos.google.cloud.datastream.v1.IStream[],
        protos.google.cloud.datastream.v1.IListStreamsRequest | null,
        protos.google.cloud.datastream.v1.IListStreamsResponse
    ]>;
    listStreams(request: protos.google.cloud.datastream.v1.IListStreamsRequest, options: CallOptions, callback: PaginationCallback<protos.google.cloud.datastream.v1.IListStreamsRequest, protos.google.cloud.datastream.v1.IListStreamsResponse | null | undefined, protos.google.cloud.datastream.v1.IStream>): void;
    listStreams(request: protos.google.cloud.datastream.v1.IListStreamsRequest, callback: PaginationCallback<protos.google.cloud.datastream.v1.IListStreamsRequest, protos.google.cloud.datastream.v1.IListStreamsResponse | null | undefined, protos.google.cloud.datastream.v1.IStream>): void;
    /**
     * Equivalent to `listStreams`, but returns a NodeJS Stream object.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent that owns the collection of streams.
     * @param {number} request.pageSize
     *   Maximum number of streams to return.
     *   If unspecified, at most 50 streams will  be returned. The maximum
     *   value is 1000; values above 1000 will be coerced to 1000.
     * @param {string} request.pageToken
     *   Page token received from a previous `ListStreams` call.
     *   Provide this to retrieve the subsequent page.
     *
     *   When paginating, all other parameters provided to `ListStreams`
     *   must match the call that provided the page token.
     * @param {string} request.filter
     *   Filter request.
     * @param {string} request.orderBy
     *   Order by fields for the result.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Stream}
     *   An object stream which emits an object representing {@link protos.google.cloud.datastream.v1.Stream|Stream} on 'data' event.
     *   The client library will perform auto-pagination by default: it will call the API as many
     *   times as needed. Note that it can affect your quota.
     *   We recommend using `listStreamsAsync()`
     *   method described below for async iteration which you can stop as needed.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     */
    listStreamsStream(request?: protos.google.cloud.datastream.v1.IListStreamsRequest, options?: CallOptions): Transform;
    /**
     * Equivalent to `listStreams`, but returns an iterable object.
     *
     * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent that owns the collection of streams.
     * @param {number} request.pageSize
     *   Maximum number of streams to return.
     *   If unspecified, at most 50 streams will  be returned. The maximum
     *   value is 1000; values above 1000 will be coerced to 1000.
     * @param {string} request.pageToken
     *   Page token received from a previous `ListStreams` call.
     *   Provide this to retrieve the subsequent page.
     *
     *   When paginating, all other parameters provided to `ListStreams`
     *   must match the call that provided the page token.
     * @param {string} request.filter
     *   Filter request.
     * @param {string} request.orderBy
     *   Order by fields for the result.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Object}
     *   An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }.
     *   When you iterate the returned iterable, each element will be an object representing
     *   {@link protos.google.cloud.datastream.v1.Stream|Stream}. The API will be called under the hood as needed, once per the page,
     *   so you can stop the iteration when you don't need more results.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.list_streams.js</caption>
     * region_tag:datastream_v1_generated_Datastream_ListStreams_async
     */
    listStreamsAsync(request?: protos.google.cloud.datastream.v1.IListStreamsRequest, options?: CallOptions): AsyncIterable<protos.google.cloud.datastream.v1.IStream>;
    /**
     * Use this method to list the objects of a specific stream.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent stream that owns the collection of objects.
     * @param {number} request.pageSize
     *   Maximum number of objects to return. Default is 50.
     *   The maximum value is 1000; values above 1000 will be coerced to 1000.
     * @param {string} request.pageToken
     *   Page token received from a previous `ListStreamObjectsRequest` call.
     *   Provide this to retrieve the subsequent page.
     *
     *   When paginating, all other parameters provided to
     *   `ListStreamObjectsRequest` must match the call that provided the page
     *   token.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is Array of {@link protos.google.cloud.datastream.v1.StreamObject|StreamObject}.
     *   The client library will perform auto-pagination by default: it will call the API as many
     *   times as needed and will merge results from all the pages into this array.
     *   Note that it can affect your quota.
     *   We recommend using `listStreamObjectsAsync()`
     *   method described below for async iteration which you can stop as needed.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     */
    listStreamObjects(request?: protos.google.cloud.datastream.v1.IListStreamObjectsRequest, options?: CallOptions): Promise<[
        protos.google.cloud.datastream.v1.IStreamObject[],
        protos.google.cloud.datastream.v1.IListStreamObjectsRequest | null,
        protos.google.cloud.datastream.v1.IListStreamObjectsResponse
    ]>;
    listStreamObjects(request: protos.google.cloud.datastream.v1.IListStreamObjectsRequest, options: CallOptions, callback: PaginationCallback<protos.google.cloud.datastream.v1.IListStreamObjectsRequest, protos.google.cloud.datastream.v1.IListStreamObjectsResponse | null | undefined, protos.google.cloud.datastream.v1.IStreamObject>): void;
    listStreamObjects(request: protos.google.cloud.datastream.v1.IListStreamObjectsRequest, callback: PaginationCallback<protos.google.cloud.datastream.v1.IListStreamObjectsRequest, protos.google.cloud.datastream.v1.IListStreamObjectsResponse | null | undefined, protos.google.cloud.datastream.v1.IStreamObject>): void;
    /**
     * Equivalent to `listStreamObjects`, but returns a NodeJS Stream object.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent stream that owns the collection of objects.
     * @param {number} request.pageSize
     *   Maximum number of objects to return. Default is 50.
     *   The maximum value is 1000; values above 1000 will be coerced to 1000.
     * @param {string} request.pageToken
     *   Page token received from a previous `ListStreamObjectsRequest` call.
     *   Provide this to retrieve the subsequent page.
     *
     *   When paginating, all other parameters provided to
     *   `ListStreamObjectsRequest` must match the call that provided the page
     *   token.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Stream}
     *   An object stream which emits an object representing {@link protos.google.cloud.datastream.v1.StreamObject|StreamObject} on 'data' event.
     *   The client library will perform auto-pagination by default: it will call the API as many
     *   times as needed. Note that it can affect your quota.
     *   We recommend using `listStreamObjectsAsync()`
     *   method described below for async iteration which you can stop as needed.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     */
    listStreamObjectsStream(request?: protos.google.cloud.datastream.v1.IListStreamObjectsRequest, options?: CallOptions): Transform;
    /**
     * Equivalent to `listStreamObjects`, but returns an iterable object.
     *
     * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent stream that owns the collection of objects.
     * @param {number} request.pageSize
     *   Maximum number of objects to return. Default is 50.
     *   The maximum value is 1000; values above 1000 will be coerced to 1000.
     * @param {string} request.pageToken
     *   Page token received from a previous `ListStreamObjectsRequest` call.
     *   Provide this to retrieve the subsequent page.
     *
     *   When paginating, all other parameters provided to
     *   `ListStreamObjectsRequest` must match the call that provided the page
     *   token.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Object}
     *   An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }.
     *   When you iterate the returned iterable, each element will be an object representing
     *   {@link protos.google.cloud.datastream.v1.StreamObject|StreamObject}. The API will be called under the hood as needed, once per the page,
     *   so you can stop the iteration when you don't need more results.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.list_stream_objects.js</caption>
     * region_tag:datastream_v1_generated_Datastream_ListStreamObjects_async
     */
    listStreamObjectsAsync(request?: protos.google.cloud.datastream.v1.IListStreamObjectsRequest, options?: CallOptions): AsyncIterable<protos.google.cloud.datastream.v1.IStreamObject>;
    /**
     * The FetchStaticIps API call exposes the static IP addresses used by
     * Datastream.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Required. The resource name for the location for which static IPs should be
     *   returned. Must be in the format `projects/* /locations/*`.
     * @param {number} request.pageSize
     *   Maximum number of Ips to return, will likely not be specified.
     * @param {string} request.pageToken
     *   A page token, received from a previous `ListStaticIps` call.
     *   will likely not be specified.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is Array of string.
     *   The client library will perform auto-pagination by default: it will call the API as many
     *   times as needed and will merge results from all the pages into this array.
     *   Note that it can affect your quota.
     *   We recommend using `fetchStaticIpsAsync()`
     *   method described below for async iteration which you can stop as needed.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     */
    fetchStaticIps(request?: protos.google.cloud.datastream.v1.IFetchStaticIpsRequest, options?: CallOptions): Promise<[
        string[],
        protos.google.cloud.datastream.v1.IFetchStaticIpsRequest | null,
        protos.google.cloud.datastream.v1.IFetchStaticIpsResponse
    ]>;
    fetchStaticIps(request: protos.google.cloud.datastream.v1.IFetchStaticIpsRequest, options: CallOptions, callback: PaginationCallback<protos.google.cloud.datastream.v1.IFetchStaticIpsRequest, protos.google.cloud.datastream.v1.IFetchStaticIpsResponse | null | undefined, string>): void;
    fetchStaticIps(request: protos.google.cloud.datastream.v1.IFetchStaticIpsRequest, callback: PaginationCallback<protos.google.cloud.datastream.v1.IFetchStaticIpsRequest, protos.google.cloud.datastream.v1.IFetchStaticIpsResponse | null | undefined, string>): void;
    /**
     * Equivalent to `fetchStaticIps`, but returns a NodeJS Stream object.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Required. The resource name for the location for which static IPs should be
     *   returned. Must be in the format `projects/* /locations/*`.
     * @param {number} request.pageSize
     *   Maximum number of Ips to return, will likely not be specified.
     * @param {string} request.pageToken
     *   A page token, received from a previous `ListStaticIps` call.
     *   will likely not be specified.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Stream}
     *   An object stream which emits an object representing string on 'data' event.
     *   The client library will perform auto-pagination by default: it will call the API as many
     *   times as needed. Note that it can affect your quota.
     *   We recommend using `fetchStaticIpsAsync()`
     *   method described below for async iteration which you can stop as needed.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     */
    fetchStaticIpsStream(request?: protos.google.cloud.datastream.v1.IFetchStaticIpsRequest, options?: CallOptions): Transform;
    /**
     * Equivalent to `fetchStaticIps`, but returns an iterable object.
     *
     * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Required. The resource name for the location for which static IPs should be
     *   returned. Must be in the format `projects/* /locations/*`.
     * @param {number} request.pageSize
     *   Maximum number of Ips to return, will likely not be specified.
     * @param {string} request.pageToken
     *   A page token, received from a previous `ListStaticIps` call.
     *   will likely not be specified.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Object}
     *   An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }.
     *   When you iterate the returned iterable, each element will be an object representing
     *   string. The API will be called under the hood as needed, once per the page,
     *   so you can stop the iteration when you don't need more results.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.fetch_static_ips.js</caption>
     * region_tag:datastream_v1_generated_Datastream_FetchStaticIps_async
     */
    fetchStaticIpsAsync(request?: protos.google.cloud.datastream.v1.IFetchStaticIpsRequest, options?: CallOptions): AsyncIterable<string>;
    /**
     * Use this method to list private connectivity configurations in a project
     * and location.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent that owns the collection of private connectivity
     *   configurations.
     * @param {number} request.pageSize
     *   Maximum number of private connectivity configurations to return.
     *   If unspecified, at most 50 private connectivity configurations that will be
     *   returned. The maximum value is 1000; values above 1000 will be coerced to
     *   1000.
     * @param {string} request.pageToken
     *   Page token received from a previous `ListPrivateConnections` call.
     *   Provide this to retrieve the subsequent page.
     *
     *   When paginating, all other parameters provided to
     *   `ListPrivateConnections` must match the call that provided the page
     *   token.
     * @param {string} request.filter
     *   Filter request.
     * @param {string} request.orderBy
     *   Order by fields for the result.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is Array of {@link protos.google.cloud.datastream.v1.PrivateConnection|PrivateConnection}.
     *   The client library will perform auto-pagination by default: it will call the API as many
     *   times as needed and will merge results from all the pages into this array.
     *   Note that it can affect your quota.
     *   We recommend using `listPrivateConnectionsAsync()`
     *   method described below for async iteration which you can stop as needed.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     */
    listPrivateConnections(request?: protos.google.cloud.datastream.v1.IListPrivateConnectionsRequest, options?: CallOptions): Promise<[
        protos.google.cloud.datastream.v1.IPrivateConnection[],
        protos.google.cloud.datastream.v1.IListPrivateConnectionsRequest | null,
        protos.google.cloud.datastream.v1.IListPrivateConnectionsResponse
    ]>;
    listPrivateConnections(request: protos.google.cloud.datastream.v1.IListPrivateConnectionsRequest, options: CallOptions, callback: PaginationCallback<protos.google.cloud.datastream.v1.IListPrivateConnectionsRequest, protos.google.cloud.datastream.v1.IListPrivateConnectionsResponse | null | undefined, protos.google.cloud.datastream.v1.IPrivateConnection>): void;
    listPrivateConnections(request: protos.google.cloud.datastream.v1.IListPrivateConnectionsRequest, callback: PaginationCallback<protos.google.cloud.datastream.v1.IListPrivateConnectionsRequest, protos.google.cloud.datastream.v1.IListPrivateConnectionsResponse | null | undefined, protos.google.cloud.datastream.v1.IPrivateConnection>): void;
    /**
     * Equivalent to `listPrivateConnections`, but returns a NodeJS Stream object.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent that owns the collection of private connectivity
     *   configurations.
     * @param {number} request.pageSize
     *   Maximum number of private connectivity configurations to return.
     *   If unspecified, at most 50 private connectivity configurations that will be
     *   returned. The maximum value is 1000; values above 1000 will be coerced to
     *   1000.
     * @param {string} request.pageToken
     *   Page token received from a previous `ListPrivateConnections` call.
     *   Provide this to retrieve the subsequent page.
     *
     *   When paginating, all other parameters provided to
     *   `ListPrivateConnections` must match the call that provided the page
     *   token.
     * @param {string} request.filter
     *   Filter request.
     * @param {string} request.orderBy
     *   Order by fields for the result.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Stream}
     *   An object stream which emits an object representing {@link protos.google.cloud.datastream.v1.PrivateConnection|PrivateConnection} on 'data' event.
     *   The client library will perform auto-pagination by default: it will call the API as many
     *   times as needed. Note that it can affect your quota.
     *   We recommend using `listPrivateConnectionsAsync()`
     *   method described below for async iteration which you can stop as needed.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     */
    listPrivateConnectionsStream(request?: protos.google.cloud.datastream.v1.IListPrivateConnectionsRequest, options?: CallOptions): Transform;
    /**
     * Equivalent to `listPrivateConnections`, but returns an iterable object.
     *
     * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent that owns the collection of private connectivity
     *   configurations.
     * @param {number} request.pageSize
     *   Maximum number of private connectivity configurations to return.
     *   If unspecified, at most 50 private connectivity configurations that will be
     *   returned. The maximum value is 1000; values above 1000 will be coerced to
     *   1000.
     * @param {string} request.pageToken
     *   Page token received from a previous `ListPrivateConnections` call.
     *   Provide this to retrieve the subsequent page.
     *
     *   When paginating, all other parameters provided to
     *   `ListPrivateConnections` must match the call that provided the page
     *   token.
     * @param {string} request.filter
     *   Filter request.
     * @param {string} request.orderBy
     *   Order by fields for the result.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Object}
     *   An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }.
     *   When you iterate the returned iterable, each element will be an object representing
     *   {@link protos.google.cloud.datastream.v1.PrivateConnection|PrivateConnection}. The API will be called under the hood as needed, once per the page,
     *   so you can stop the iteration when you don't need more results.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.list_private_connections.js</caption>
     * region_tag:datastream_v1_generated_Datastream_ListPrivateConnections_async
     */
    listPrivateConnectionsAsync(request?: protos.google.cloud.datastream.v1.IListPrivateConnectionsRequest, options?: CallOptions): AsyncIterable<protos.google.cloud.datastream.v1.IPrivateConnection>;
    /**
     * Use this method to list routes created for a private connectivity
     * configuration in a project and location.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent that owns the collection of Routess.
     * @param {number} request.pageSize
     *   Maximum number of Routes to return. The service may return
     *   fewer than this value. If unspecified, at most 50 Routes
     *   will be returned. The maximum value is 1000; values above 1000 will be
     *   coerced to 1000.
     * @param {string} request.pageToken
     *   Page token received from a previous `ListRoutes` call.
     *   Provide this to retrieve the subsequent page.
     *
     *   When paginating, all other parameters provided to
     *   `ListRoutes` must match the call that provided the page
     *   token.
     * @param {string} request.filter
     *   Filter request.
     * @param {string} request.orderBy
     *   Order by fields for the result.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is Array of {@link protos.google.cloud.datastream.v1.Route|Route}.
     *   The client library will perform auto-pagination by default: it will call the API as many
     *   times as needed and will merge results from all the pages into this array.
     *   Note that it can affect your quota.
     *   We recommend using `listRoutesAsync()`
     *   method described below for async iteration which you can stop as needed.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     */
    listRoutes(request?: protos.google.cloud.datastream.v1.IListRoutesRequest, options?: CallOptions): Promise<[
        protos.google.cloud.datastream.v1.IRoute[],
        protos.google.cloud.datastream.v1.IListRoutesRequest | null,
        protos.google.cloud.datastream.v1.IListRoutesResponse
    ]>;
    listRoutes(request: protos.google.cloud.datastream.v1.IListRoutesRequest, options: CallOptions, callback: PaginationCallback<protos.google.cloud.datastream.v1.IListRoutesRequest, protos.google.cloud.datastream.v1.IListRoutesResponse | null | undefined, protos.google.cloud.datastream.v1.IRoute>): void;
    listRoutes(request: protos.google.cloud.datastream.v1.IListRoutesRequest, callback: PaginationCallback<protos.google.cloud.datastream.v1.IListRoutesRequest, protos.google.cloud.datastream.v1.IListRoutesResponse | null | undefined, protos.google.cloud.datastream.v1.IRoute>): void;
    /**
     * Equivalent to `listRoutes`, but returns a NodeJS Stream object.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent that owns the collection of Routess.
     * @param {number} request.pageSize
     *   Maximum number of Routes to return. The service may return
     *   fewer than this value. If unspecified, at most 50 Routes
     *   will be returned. The maximum value is 1000; values above 1000 will be
     *   coerced to 1000.
     * @param {string} request.pageToken
     *   Page token received from a previous `ListRoutes` call.
     *   Provide this to retrieve the subsequent page.
     *
     *   When paginating, all other parameters provided to
     *   `ListRoutes` must match the call that provided the page
     *   token.
     * @param {string} request.filter
     *   Filter request.
     * @param {string} request.orderBy
     *   Order by fields for the result.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Stream}
     *   An object stream which emits an object representing {@link protos.google.cloud.datastream.v1.Route|Route} on 'data' event.
     *   The client library will perform auto-pagination by default: it will call the API as many
     *   times as needed. Note that it can affect your quota.
     *   We recommend using `listRoutesAsync()`
     *   method described below for async iteration which you can stop as needed.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     */
    listRoutesStream(request?: protos.google.cloud.datastream.v1.IListRoutesRequest, options?: CallOptions): Transform;
    /**
     * Equivalent to `listRoutes`, but returns an iterable object.
     *
     * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   Required. The parent that owns the collection of Routess.
     * @param {number} request.pageSize
     *   Maximum number of Routes to return. The service may return
     *   fewer than this value. If unspecified, at most 50 Routes
     *   will be returned. The maximum value is 1000; values above 1000 will be
     *   coerced to 1000.
     * @param {string} request.pageToken
     *   Page token received from a previous `ListRoutes` call.
     *   Provide this to retrieve the subsequent page.
     *
     *   When paginating, all other parameters provided to
     *   `ListRoutes` must match the call that provided the page
     *   token.
     * @param {string} request.filter
     *   Filter request.
     * @param {string} request.orderBy
     *   Order by fields for the result.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Object}
     *   An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }.
     *   When you iterate the returned iterable, each element will be an object representing
     *   {@link protos.google.cloud.datastream.v1.Route|Route}. The API will be called under the hood as needed, once per the page,
     *   so you can stop the iteration when you don't need more results.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/datastream.list_routes.js</caption>
     * region_tag:datastream_v1_generated_Datastream_ListRoutes_async
     */
    listRoutesAsync(request?: protos.google.cloud.datastream.v1.IListRoutesRequest, options?: CallOptions): AsyncIterable<protos.google.cloud.datastream.v1.IRoute>;
    /**
     * Gets the access control policy for a resource. Returns an empty policy
     * if the resource exists and does not have a policy set.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.resource
     *   REQUIRED: The resource for which the policy is being requested.
     *   See the operation documentation for the appropriate value for this field.
     * @param {Object} [request.options]
     *   OPTIONAL: A `GetPolicyOptions` object for specifying options to
     *   `GetIamPolicy`. This field is only used by Cloud IAM.
     *
     *   This object should have the same structure as {@link google.iam.v1.GetPolicyOptions | GetPolicyOptions}.
     * @param {Object} [options]
     *   Optional parameters. You can override the default settings for this call, e.g, timeout,
     *   retries, paginations, etc. See {@link https://googleapis.github.io/gax-nodejs/interfaces/CallOptions.html | gax.CallOptions} for the details.
     * @param {function(?Error, ?Object)} [callback]
     *   The function which will be called with the result of the API call.
     *
     *   The second parameter to the callback is an object representing {@link google.iam.v1.Policy | Policy}.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link google.iam.v1.Policy | Policy}.
     *   The promise has a method named "cancel" which cancels the ongoing API call.
     */
    getIamPolicy(request: IamProtos.google.iam.v1.GetIamPolicyRequest, options?: gax.CallOptions | Callback<IamProtos.google.iam.v1.Policy, IamProtos.google.iam.v1.GetIamPolicyRequest | null | undefined, {} | null | undefined>, callback?: Callback<IamProtos.google.iam.v1.Policy, IamProtos.google.iam.v1.GetIamPolicyRequest | null | undefined, {} | null | undefined>): Promise<[IamProtos.google.iam.v1.Policy]>;
    /**
     * Returns permissions that a caller has on the specified resource. If the
     * resource does not exist, this will return an empty set of
     * permissions, not a NOT_FOUND error.
     *
     * Note: This operation is designed to be used for building
     * permission-aware UIs and command-line tools, not for authorization
     * checking. This operation may "fail open" without warning.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.resource
     *   REQUIRED: The resource for which the policy detail is being requested.
     *   See the operation documentation for the appropriate value for this field.
     * @param {string[]} request.permissions
     *   The set of permissions to check for the `resource`. Permissions with
     *   wildcards (such as '*' or 'storage.*') are not allowed. For more
     *   information see {@link https://cloud.google.com/iam/docs/overview#permissions | IAM Overview }.
     * @param {Object} [options]
     *   Optional parameters. You can override the default settings for this call, e.g, timeout,
     *   retries, paginations, etc. See {@link https://googleapis.github.io/gax-nodejs/interfaces/CallOptions.html | gax.CallOptions} for the details.
     * @param {function(?Error, ?Object)} [callback]
     *   The function which will be called with the result of the API call.
     *
     *   The second parameter to the callback is an object representing {@link google.iam.v1.TestIamPermissionsResponse | TestIamPermissionsResponse}.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link google.iam.v1.TestIamPermissionsResponse | TestIamPermissionsResponse}.
     *   The promise has a method named "cancel" which cancels the ongoing API call.
     */
    setIamPolicy(request: IamProtos.google.iam.v1.SetIamPolicyRequest, options?: gax.CallOptions | Callback<IamProtos.google.iam.v1.Policy, IamProtos.google.iam.v1.SetIamPolicyRequest | null | undefined, {} | null | undefined>, callback?: Callback<IamProtos.google.iam.v1.Policy, IamProtos.google.iam.v1.SetIamPolicyRequest | null | undefined, {} | null | undefined>): Promise<[IamProtos.google.iam.v1.Policy]>;
    /**
     * Returns permissions that a caller has on the specified resource. If the
     * resource does not exist, this will return an empty set of
     * permissions, not a NOT_FOUND error.
     *
     * Note: This operation is designed to be used for building
     * permission-aware UIs and command-line tools, not for authorization
     * checking. This operation may "fail open" without warning.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.resource
     *   REQUIRED: The resource for which the policy detail is being requested.
     *   See the operation documentation for the appropriate value for this field.
     * @param {string[]} request.permissions
     *   The set of permissions to check for the `resource`. Permissions with
     *   wildcards (such as '*' or 'storage.*') are not allowed. For more
     *   information see {@link https://cloud.google.com/iam/docs/overview#permissions | IAM Overview }.
     * @param {Object} [options]
     *   Optional parameters. You can override the default settings for this call, e.g, timeout,
     *   retries, paginations, etc. See {@link https://googleapis.github.io/gax-nodejs/interfaces/CallOptions.html | gax.CallOptions} for the details.
     * @param {function(?Error, ?Object)} [callback]
     *   The function which will be called with the result of the API call.
     *
     *   The second parameter to the callback is an object representing {@link google.iam.v1.TestIamPermissionsResponse | TestIamPermissionsResponse}.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link google.iam.v1.TestIamPermissionsResponse | TestIamPermissionsResponse}.
     *   The promise has a method named "cancel" which cancels the ongoing API call.
     *
     */
    testIamPermissions(request: IamProtos.google.iam.v1.TestIamPermissionsRequest, options?: gax.CallOptions | Callback<IamProtos.google.iam.v1.TestIamPermissionsResponse, IamProtos.google.iam.v1.TestIamPermissionsRequest | null | undefined, {} | null | undefined>, callback?: Callback<IamProtos.google.iam.v1.TestIamPermissionsResponse, IamProtos.google.iam.v1.TestIamPermissionsRequest | null | undefined, {} | null | undefined>): Promise<[IamProtos.google.iam.v1.TestIamPermissionsResponse]>;
    /**
     * Gets information about a location.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Resource name for the location.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html | CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link google.cloud.location.Location | Location}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example
     * ```
     * const [response] = await client.getLocation(request);
     * ```
     */
    getLocation(request: LocationProtos.google.cloud.location.IGetLocationRequest, options?: gax.CallOptions | Callback<LocationProtos.google.cloud.location.ILocation, LocationProtos.google.cloud.location.IGetLocationRequest | null | undefined, {} | null | undefined>, callback?: Callback<LocationProtos.google.cloud.location.ILocation, LocationProtos.google.cloud.location.IGetLocationRequest | null | undefined, {} | null | undefined>): Promise<LocationProtos.google.cloud.location.ILocation>;
    /**
     * Lists information about the supported locations for this service. Returns an iterable object.
     *
     * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   The resource that owns the locations collection, if applicable.
     * @param {string} request.filter
     *   The standard list filter.
     * @param {number} request.pageSize
     *   The standard list page size.
     * @param {string} request.pageToken
     *   The standard list page token.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Object}
     *   An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }.
     *   When you iterate the returned iterable, each element will be an object representing
     *   {@link google.cloud.location.Location | Location}. The API will be called under the hood as needed, once per the page,
     *   so you can stop the iteration when you don't need more results.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     * @example
     * ```
     * const iterable = client.listLocationsAsync(request);
     * for await (const response of iterable) {
     *   // process response
     * }
     * ```
     */
    listLocationsAsync(request: LocationProtos.google.cloud.location.IListLocationsRequest, options?: CallOptions): AsyncIterable<LocationProtos.google.cloud.location.ILocation>;
    /**
     * Gets the latest state of a long-running operation.  Clients can use this
     * method to poll the operation result at intervals as recommended by the API
     * service.
     *
     * @param {Object} request - The request object that will be sent.
     * @param {string} request.name - The name of the operation resource.
     * @param {Object=} options
     *   Optional parameters. You can override the default settings for this call,
     *   e.g, timeout, retries, paginations, etc. See {@link
     *   https://googleapis.github.io/gax-nodejs/global.html#CallOptions | gax.CallOptions}
     *   for the details.
     * @param {function(?Error, ?Object)=} callback
     *   The function which will be called with the result of the API call.
     *
     *   The second parameter to the callback is an object representing
     *   {@link google.longrunning.Operation | google.longrunning.Operation}.
     * @return {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     * {@link google.longrunning.Operation | google.longrunning.Operation}.
     * The promise has a method named "cancel" which cancels the ongoing API call.
     *
     * @example
     * ```
     * const client = longrunning.operationsClient();
     * const name = '';
     * const [response] = await client.getOperation({name});
     * // doThingsWith(response)
     * ```
     */
    getOperation(request: protos.google.longrunning.GetOperationRequest, optionsOrCallback?: gax.CallOptions | Callback<protos.google.longrunning.Operation, protos.google.longrunning.GetOperationRequest, {} | null | undefined>, callback?: Callback<protos.google.longrunning.Operation, protos.google.longrunning.GetOperationRequest, {} | null | undefined>): Promise<[protos.google.longrunning.Operation]>;
    /**
     * Lists operations that match the specified filter in the request. If the
     * server doesn't support this method, it returns `UNIMPLEMENTED`. Returns an iterable object.
     *
     * For-await-of syntax is used with the iterable to recursively get response element on-demand.
     *
     * @param {Object} request - The request object that will be sent.
     * @param {string} request.name - The name of the operation collection.
     * @param {string} request.filter - The standard list filter.
     * @param {number=} request.pageSize -
     *   The maximum number of resources contained in the underlying API
     *   response. If page streaming is performed per-resource, this
     *   parameter does not affect the return value. If page streaming is
     *   performed per-page, this determines the maximum number of
     *   resources in a page.
     * @param {Object=} options
     *   Optional parameters. You can override the default settings for this call,
     *   e.g, timeout, retries, paginations, etc. See {@link
     *   https://googleapis.github.io/gax-nodejs/global.html#CallOptions | gax.CallOptions} for the
     *   details.
     * @returns {Object}
     *   An iterable Object that conforms to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | iteration protocols}.
     *
     * @example
     * ```
     * const client = longrunning.operationsClient();
     * for await (const response of client.listOperationsAsync(request));
     * // doThingsWith(response)
     * ```
     */
    listOperationsAsync(request: protos.google.longrunning.ListOperationsRequest, options?: gax.CallOptions): AsyncIterable<protos.google.longrunning.IOperation>;
    /**
     * Starts asynchronous cancellation on a long-running operation.  The server
     * makes a best effort to cancel the operation, but success is not
     * guaranteed.  If the server doesn't support this method, it returns
     * `google.rpc.Code.UNIMPLEMENTED`.  Clients can use
     * {@link Operations.GetOperation} or
     * other methods to check whether the cancellation succeeded or whether the
     * operation completed despite cancellation. On successful cancellation,
     * the operation is not deleted; instead, it becomes an operation with
     * an {@link Operation.error} value with a {@link google.rpc.Status.code} of
     * 1, corresponding to `Code.CANCELLED`.
     *
     * @param {Object} request - The request object that will be sent.
     * @param {string} request.name - The name of the operation resource to be cancelled.
     * @param {Object=} options
     *   Optional parameters. You can override the default settings for this call,
     * e.g, timeout, retries, paginations, etc. See {@link
     * https://googleapis.github.io/gax-nodejs/global.html#CallOptions | gax.CallOptions} for the
     * details.
     * @param {function(?Error)=} callback
     *   The function which will be called with the result of the API call.
     * @return {Promise} - The promise which resolves when API call finishes.
     *   The promise has a method named "cancel" which cancels the ongoing API
     * call.
     *
     * @example
     * ```
     * const client = longrunning.operationsClient();
     * await client.cancelOperation({name: ''});
     * ```
     */
    cancelOperation(request: protos.google.longrunning.CancelOperationRequest, optionsOrCallback?: gax.CallOptions | Callback<protos.google.longrunning.CancelOperationRequest, protos.google.protobuf.Empty, {} | undefined | null>, callback?: Callback<protos.google.longrunning.CancelOperationRequest, protos.google.protobuf.Empty, {} | undefined | null>): Promise<protos.google.protobuf.Empty>;
    /**
     * Deletes a long-running operation. This method indicates that the client is
     * no longer interested in the operation result. It does not cancel the
     * operation. If the server doesn't support this method, it returns
     * `google.rpc.Code.UNIMPLEMENTED`.
     *
     * @param {Object} request - The request object that will be sent.
     * @param {string} request.name - The name of the operation resource to be deleted.
     * @param {Object=} options
     *   Optional parameters. You can override the default settings for this call,
     * e.g, timeout, retries, paginations, etc. See {@link
     * https://googleapis.github.io/gax-nodejs/global.html#CallOptions | gax.CallOptions}
     * for the details.
     * @param {function(?Error)=} callback
     *   The function which will be called with the result of the API call.
     * @return {Promise} - The promise which resolves when API call finishes.
     *   The promise has a method named "cancel" which cancels the ongoing API
     * call.
     *
     * @example
     * ```
     * const client = longrunning.operationsClient();
     * await client.deleteOperation({name: ''});
     * ```
     */
    deleteOperation(request: protos.google.longrunning.DeleteOperationRequest, optionsOrCallback?: gax.CallOptions | Callback<protos.google.protobuf.Empty, protos.google.longrunning.DeleteOperationRequest, {} | null | undefined>, callback?: Callback<protos.google.protobuf.Empty, protos.google.longrunning.DeleteOperationRequest, {} | null | undefined>): Promise<protos.google.protobuf.Empty>;
    /**
     * Return a fully-qualified connectionProfile resource name string.
     *
     * @param {string} project
     * @param {string} location
     * @param {string} connection_profile
     * @returns {string} Resource name string.
     */
    connectionProfilePath(project: string, location: string, connectionProfile: string): string;
    /**
     * Parse the project from ConnectionProfile resource.
     *
     * @param {string} connectionProfileName
     *   A fully-qualified path representing ConnectionProfile resource.
     * @returns {string} A string representing the project.
     */
    matchProjectFromConnectionProfileName(connectionProfileName: string): string | number;
    /**
     * Parse the location from ConnectionProfile resource.
     *
     * @param {string} connectionProfileName
     *   A fully-qualified path representing ConnectionProfile resource.
     * @returns {string} A string representing the location.
     */
    matchLocationFromConnectionProfileName(connectionProfileName: string): string | number;
    /**
     * Parse the connection_profile from ConnectionProfile resource.
     *
     * @param {string} connectionProfileName
     *   A fully-qualified path representing ConnectionProfile resource.
     * @returns {string} A string representing the connection_profile.
     */
    matchConnectionProfileFromConnectionProfileName(connectionProfileName: string): string | number;
    /**
     * Return a fully-qualified location resource name string.
     *
     * @param {string} project
     * @param {string} location
     * @returns {string} Resource name string.
     */
    locationPath(project: string, location: string): string;
    /**
     * Parse the project from Location resource.
     *
     * @param {string} locationName
     *   A fully-qualified path representing Location resource.
     * @returns {string} A string representing the project.
     */
    matchProjectFromLocationName(locationName: string): string | number;
    /**
     * Parse the location from Location resource.
     *
     * @param {string} locationName
     *   A fully-qualified path representing Location resource.
     * @returns {string} A string representing the location.
     */
    matchLocationFromLocationName(locationName: string): string | number;
    /**
     * Return a fully-qualified privateConnection resource name string.
     *
     * @param {string} project
     * @param {string} location
     * @param {string} private_connection
     * @returns {string} Resource name string.
     */
    privateConnectionPath(project: string, location: string, privateConnection: string): string;
    /**
     * Parse the project from PrivateConnection resource.
     *
     * @param {string} privateConnectionName
     *   A fully-qualified path representing PrivateConnection resource.
     * @returns {string} A string representing the project.
     */
    matchProjectFromPrivateConnectionName(privateConnectionName: string): string | number;
    /**
     * Parse the location from PrivateConnection resource.
     *
     * @param {string} privateConnectionName
     *   A fully-qualified path representing PrivateConnection resource.
     * @returns {string} A string representing the location.
     */
    matchLocationFromPrivateConnectionName(privateConnectionName: string): string | number;
    /**
     * Parse the private_connection from PrivateConnection resource.
     *
     * @param {string} privateConnectionName
     *   A fully-qualified path representing PrivateConnection resource.
     * @returns {string} A string representing the private_connection.
     */
    matchPrivateConnectionFromPrivateConnectionName(privateConnectionName: string): string | number;
    /**
     * Return a fully-qualified project resource name string.
     *
     * @param {string} project
     * @returns {string} Resource name string.
     */
    projectPath(project: string): string;
    /**
     * Parse the project from Project resource.
     *
     * @param {string} projectName
     *   A fully-qualified path representing Project resource.
     * @returns {string} A string representing the project.
     */
    matchProjectFromProjectName(projectName: string): string | number;
    /**
     * Return a fully-qualified route resource name string.
     *
     * @param {string} project
     * @param {string} location
     * @param {string} private_connection
     * @param {string} route
     * @returns {string} Resource name string.
     */
    routePath(project: string, location: string, privateConnection: string, route: string): string;
    /**
     * Parse the project from Route resource.
     *
     * @param {string} routeName
     *   A fully-qualified path representing Route resource.
     * @returns {string} A string representing the project.
     */
    matchProjectFromRouteName(routeName: string): string | number;
    /**
     * Parse the location from Route resource.
     *
     * @param {string} routeName
     *   A fully-qualified path representing Route resource.
     * @returns {string} A string representing the location.
     */
    matchLocationFromRouteName(routeName: string): string | number;
    /**
     * Parse the private_connection from Route resource.
     *
     * @param {string} routeName
     *   A fully-qualified path representing Route resource.
     * @returns {string} A string representing the private_connection.
     */
    matchPrivateConnectionFromRouteName(routeName: string): string | number;
    /**
     * Parse the route from Route resource.
     *
     * @param {string} routeName
     *   A fully-qualified path representing Route resource.
     * @returns {string} A string representing the route.
     */
    matchRouteFromRouteName(routeName: string): string | number;
    /**
     * Return a fully-qualified stream resource name string.
     *
     * @param {string} project
     * @param {string} location
     * @param {string} stream
     * @returns {string} Resource name string.
     */
    streamPath(project: string, location: string, stream: string): string;
    /**
     * Parse the project from Stream resource.
     *
     * @param {string} streamName
     *   A fully-qualified path representing Stream resource.
     * @returns {string} A string representing the project.
     */
    matchProjectFromStreamName(streamName: string): string | number;
    /**
     * Parse the location from Stream resource.
     *
     * @param {string} streamName
     *   A fully-qualified path representing Stream resource.
     * @returns {string} A string representing the location.
     */
    matchLocationFromStreamName(streamName: string): string | number;
    /**
     * Parse the stream from Stream resource.
     *
     * @param {string} streamName
     *   A fully-qualified path representing Stream resource.
     * @returns {string} A string representing the stream.
     */
    matchStreamFromStreamName(streamName: string): string | number;
    /**
     * Return a fully-qualified streamObject resource name string.
     *
     * @param {string} project
     * @param {string} location
     * @param {string} stream
     * @param {string} object
     * @returns {string} Resource name string.
     */
    streamObjectPath(project: string, location: string, stream: string, object: string): string;
    /**
     * Parse the project from StreamObject resource.
     *
     * @param {string} streamObjectName
     *   A fully-qualified path representing StreamObject resource.
     * @returns {string} A string representing the project.
     */
    matchProjectFromStreamObjectName(streamObjectName: string): string | number;
    /**
     * Parse the location from StreamObject resource.
     *
     * @param {string} streamObjectName
     *   A fully-qualified path representing StreamObject resource.
     * @returns {string} A string representing the location.
     */
    matchLocationFromStreamObjectName(streamObjectName: string): string | number;
    /**
     * Parse the stream from StreamObject resource.
     *
     * @param {string} streamObjectName
     *   A fully-qualified path representing StreamObject resource.
     * @returns {string} A string representing the stream.
     */
    matchStreamFromStreamObjectName(streamObjectName: string): string | number;
    /**
     * Parse the object from StreamObject resource.
     *
     * @param {string} streamObjectName
     *   A fully-qualified path representing StreamObject resource.
     * @returns {string} A string representing the object.
     */
    matchObjectFromStreamObjectName(streamObjectName: string): string | number;
    /**
     * Terminate the gRPC channel and close the client.
     *
     * The client will no longer be usable and all future behavior is undefined.
     * @returns {Promise} A promise that resolves when the client is closed.
     */
    close(): Promise<void>;
}