UNPKG

@google-cloud/datastream

Version:
32,682 lines 1.72 MB
// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

import type {protobuf as $protobuf} from "google-gax";
import Long = require("long");
/** Namespace google. */
export namespace google {

    /** Namespace cloud. */
    namespace cloud {

        /** Namespace datastream. */
        namespace datastream {

            /** Namespace v1. */
            namespace v1 {

                /** Represents a Datastream */
                class Datastream extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Datastream service.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     */
                    constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                    /**
                     * Creates new Datastream service using the specified rpc implementation.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     * @returns RPC service. Useful where requests and/or responses are streamed.
                     */
                    public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): Datastream;

                    /**
                     * Calls ListConnectionProfiles.
                     * @param request ListConnectionProfilesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListConnectionProfilesResponse
                     */
                    public listConnectionProfiles(request: google.cloud.datastream.v1.IListConnectionProfilesRequest, callback: google.cloud.datastream.v1.Datastream.ListConnectionProfilesCallback): void;

                    /**
                     * Calls ListConnectionProfiles.
                     * @param request ListConnectionProfilesRequest message or plain object
                     * @returns Promise
                     */
                    public listConnectionProfiles(request: google.cloud.datastream.v1.IListConnectionProfilesRequest): Promise<google.cloud.datastream.v1.ListConnectionProfilesResponse>;

                    /**
                     * Calls GetConnectionProfile.
                     * @param request GetConnectionProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ConnectionProfile
                     */
                    public getConnectionProfile(request: google.cloud.datastream.v1.IGetConnectionProfileRequest, callback: google.cloud.datastream.v1.Datastream.GetConnectionProfileCallback): void;

                    /**
                     * Calls GetConnectionProfile.
                     * @param request GetConnectionProfileRequest message or plain object
                     * @returns Promise
                     */
                    public getConnectionProfile(request: google.cloud.datastream.v1.IGetConnectionProfileRequest): Promise<google.cloud.datastream.v1.ConnectionProfile>;

                    /**
                     * Calls CreateConnectionProfile.
                     * @param request CreateConnectionProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createConnectionProfile(request: google.cloud.datastream.v1.ICreateConnectionProfileRequest, callback: google.cloud.datastream.v1.Datastream.CreateConnectionProfileCallback): void;

                    /**
                     * Calls CreateConnectionProfile.
                     * @param request CreateConnectionProfileRequest message or plain object
                     * @returns Promise
                     */
                    public createConnectionProfile(request: google.cloud.datastream.v1.ICreateConnectionProfileRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls UpdateConnectionProfile.
                     * @param request UpdateConnectionProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateConnectionProfile(request: google.cloud.datastream.v1.IUpdateConnectionProfileRequest, callback: google.cloud.datastream.v1.Datastream.UpdateConnectionProfileCallback): void;

                    /**
                     * Calls UpdateConnectionProfile.
                     * @param request UpdateConnectionProfileRequest message or plain object
                     * @returns Promise
                     */
                    public updateConnectionProfile(request: google.cloud.datastream.v1.IUpdateConnectionProfileRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls DeleteConnectionProfile.
                     * @param request DeleteConnectionProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteConnectionProfile(request: google.cloud.datastream.v1.IDeleteConnectionProfileRequest, callback: google.cloud.datastream.v1.Datastream.DeleteConnectionProfileCallback): void;

                    /**
                     * Calls DeleteConnectionProfile.
                     * @param request DeleteConnectionProfileRequest message or plain object
                     * @returns Promise
                     */
                    public deleteConnectionProfile(request: google.cloud.datastream.v1.IDeleteConnectionProfileRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls DiscoverConnectionProfile.
                     * @param request DiscoverConnectionProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiscoverConnectionProfileResponse
                     */
                    public discoverConnectionProfile(request: google.cloud.datastream.v1.IDiscoverConnectionProfileRequest, callback: google.cloud.datastream.v1.Datastream.DiscoverConnectionProfileCallback): void;

                    /**
                     * Calls DiscoverConnectionProfile.
                     * @param request DiscoverConnectionProfileRequest message or plain object
                     * @returns Promise
                     */
                    public discoverConnectionProfile(request: google.cloud.datastream.v1.IDiscoverConnectionProfileRequest): Promise<google.cloud.datastream.v1.DiscoverConnectionProfileResponse>;

                    /**
                     * Calls ListStreams.
                     * @param request ListStreamsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListStreamsResponse
                     */
                    public listStreams(request: google.cloud.datastream.v1.IListStreamsRequest, callback: google.cloud.datastream.v1.Datastream.ListStreamsCallback): void;

                    /**
                     * Calls ListStreams.
                     * @param request ListStreamsRequest message or plain object
                     * @returns Promise
                     */
                    public listStreams(request: google.cloud.datastream.v1.IListStreamsRequest): Promise<google.cloud.datastream.v1.ListStreamsResponse>;

                    /**
                     * Calls GetStream.
                     * @param request GetStreamRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Stream
                     */
                    public getStream(request: google.cloud.datastream.v1.IGetStreamRequest, callback: google.cloud.datastream.v1.Datastream.GetStreamCallback): void;

                    /**
                     * Calls GetStream.
                     * @param request GetStreamRequest message or plain object
                     * @returns Promise
                     */
                    public getStream(request: google.cloud.datastream.v1.IGetStreamRequest): Promise<google.cloud.datastream.v1.Stream>;

                    /**
                     * Calls CreateStream.
                     * @param request CreateStreamRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createStream(request: google.cloud.datastream.v1.ICreateStreamRequest, callback: google.cloud.datastream.v1.Datastream.CreateStreamCallback): void;

                    /**
                     * Calls CreateStream.
                     * @param request CreateStreamRequest message or plain object
                     * @returns Promise
                     */
                    public createStream(request: google.cloud.datastream.v1.ICreateStreamRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls UpdateStream.
                     * @param request UpdateStreamRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateStream(request: google.cloud.datastream.v1.IUpdateStreamRequest, callback: google.cloud.datastream.v1.Datastream.UpdateStreamCallback): void;

                    /**
                     * Calls UpdateStream.
                     * @param request UpdateStreamRequest message or plain object
                     * @returns Promise
                     */
                    public updateStream(request: google.cloud.datastream.v1.IUpdateStreamRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls DeleteStream.
                     * @param request DeleteStreamRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteStream(request: google.cloud.datastream.v1.IDeleteStreamRequest, callback: google.cloud.datastream.v1.Datastream.DeleteStreamCallback): void;

                    /**
                     * Calls DeleteStream.
                     * @param request DeleteStreamRequest message or plain object
                     * @returns Promise
                     */
                    public deleteStream(request: google.cloud.datastream.v1.IDeleteStreamRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls RunStream.
                     * @param request RunStreamRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public runStream(request: google.cloud.datastream.v1.IRunStreamRequest, callback: google.cloud.datastream.v1.Datastream.RunStreamCallback): void;

                    /**
                     * Calls RunStream.
                     * @param request RunStreamRequest message or plain object
                     * @returns Promise
                     */
                    public runStream(request: google.cloud.datastream.v1.IRunStreamRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls GetStreamObject.
                     * @param request GetStreamObjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StreamObject
                     */
                    public getStreamObject(request: google.cloud.datastream.v1.IGetStreamObjectRequest, callback: google.cloud.datastream.v1.Datastream.GetStreamObjectCallback): void;

                    /**
                     * Calls GetStreamObject.
                     * @param request GetStreamObjectRequest message or plain object
                     * @returns Promise
                     */
                    public getStreamObject(request: google.cloud.datastream.v1.IGetStreamObjectRequest): Promise<google.cloud.datastream.v1.StreamObject>;

                    /**
                     * Calls LookupStreamObject.
                     * @param request LookupStreamObjectRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StreamObject
                     */
                    public lookupStreamObject(request: google.cloud.datastream.v1.ILookupStreamObjectRequest, callback: google.cloud.datastream.v1.Datastream.LookupStreamObjectCallback): void;

                    /**
                     * Calls LookupStreamObject.
                     * @param request LookupStreamObjectRequest message or plain object
                     * @returns Promise
                     */
                    public lookupStreamObject(request: google.cloud.datastream.v1.ILookupStreamObjectRequest): Promise<google.cloud.datastream.v1.StreamObject>;

                    /**
                     * Calls ListStreamObjects.
                     * @param request ListStreamObjectsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListStreamObjectsResponse
                     */
                    public listStreamObjects(request: google.cloud.datastream.v1.IListStreamObjectsRequest, callback: google.cloud.datastream.v1.Datastream.ListStreamObjectsCallback): void;

                    /**
                     * Calls ListStreamObjects.
                     * @param request ListStreamObjectsRequest message or plain object
                     * @returns Promise
                     */
                    public listStreamObjects(request: google.cloud.datastream.v1.IListStreamObjectsRequest): Promise<google.cloud.datastream.v1.ListStreamObjectsResponse>;

                    /**
                     * Calls StartBackfillJob.
                     * @param request StartBackfillJobRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StartBackfillJobResponse
                     */
                    public startBackfillJob(request: google.cloud.datastream.v1.IStartBackfillJobRequest, callback: google.cloud.datastream.v1.Datastream.StartBackfillJobCallback): void;

                    /**
                     * Calls StartBackfillJob.
                     * @param request StartBackfillJobRequest message or plain object
                     * @returns Promise
                     */
                    public startBackfillJob(request: google.cloud.datastream.v1.IStartBackfillJobRequest): Promise<google.cloud.datastream.v1.StartBackfillJobResponse>;

                    /**
                     * Calls StopBackfillJob.
                     * @param request StopBackfillJobRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StopBackfillJobResponse
                     */
                    public stopBackfillJob(request: google.cloud.datastream.v1.IStopBackfillJobRequest, callback: google.cloud.datastream.v1.Datastream.StopBackfillJobCallback): void;

                    /**
                     * Calls StopBackfillJob.
                     * @param request StopBackfillJobRequest message or plain object
                     * @returns Promise
                     */
                    public stopBackfillJob(request: google.cloud.datastream.v1.IStopBackfillJobRequest): Promise<google.cloud.datastream.v1.StopBackfillJobResponse>;

                    /**
                     * Calls FetchStaticIps.
                     * @param request FetchStaticIpsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FetchStaticIpsResponse
                     */
                    public fetchStaticIps(request: google.cloud.datastream.v1.IFetchStaticIpsRequest, callback: google.cloud.datastream.v1.Datastream.FetchStaticIpsCallback): void;

                    /**
                     * Calls FetchStaticIps.
                     * @param request FetchStaticIpsRequest message or plain object
                     * @returns Promise
                     */
                    public fetchStaticIps(request: google.cloud.datastream.v1.IFetchStaticIpsRequest): Promise<google.cloud.datastream.v1.FetchStaticIpsResponse>;

                    /**
                     * Calls CreatePrivateConnection.
                     * @param request CreatePrivateConnectionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createPrivateConnection(request: google.cloud.datastream.v1.ICreatePrivateConnectionRequest, callback: google.cloud.datastream.v1.Datastream.CreatePrivateConnectionCallback): void;

                    /**
                     * Calls CreatePrivateConnection.
                     * @param request CreatePrivateConnectionRequest message or plain object
                     * @returns Promise
                     */
                    public createPrivateConnection(request: google.cloud.datastream.v1.ICreatePrivateConnectionRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls GetPrivateConnection.
                     * @param request GetPrivateConnectionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PrivateConnection
                     */
                    public getPrivateConnection(request: google.cloud.datastream.v1.IGetPrivateConnectionRequest, callback: google.cloud.datastream.v1.Datastream.GetPrivateConnectionCallback): void;

                    /**
                     * Calls GetPrivateConnection.
                     * @param request GetPrivateConnectionRequest message or plain object
                     * @returns Promise
                     */
                    public getPrivateConnection(request: google.cloud.datastream.v1.IGetPrivateConnectionRequest): Promise<google.cloud.datastream.v1.PrivateConnection>;

                    /**
                     * Calls ListPrivateConnections.
                     * @param request ListPrivateConnectionsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListPrivateConnectionsResponse
                     */
                    public listPrivateConnections(request: google.cloud.datastream.v1.IListPrivateConnectionsRequest, callback: google.cloud.datastream.v1.Datastream.ListPrivateConnectionsCallback): void;

                    /**
                     * Calls ListPrivateConnections.
                     * @param request ListPrivateConnectionsRequest message or plain object
                     * @returns Promise
                     */
                    public listPrivateConnections(request: google.cloud.datastream.v1.IListPrivateConnectionsRequest): Promise<google.cloud.datastream.v1.ListPrivateConnectionsResponse>;

                    /**
                     * Calls DeletePrivateConnection.
                     * @param request DeletePrivateConnectionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deletePrivateConnection(request: google.cloud.datastream.v1.IDeletePrivateConnectionRequest, callback: google.cloud.datastream.v1.Datastream.DeletePrivateConnectionCallback): void;

                    /**
                     * Calls DeletePrivateConnection.
                     * @param request DeletePrivateConnectionRequest message or plain object
                     * @returns Promise
                     */
                    public deletePrivateConnection(request: google.cloud.datastream.v1.IDeletePrivateConnectionRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls CreateRoute.
                     * @param request CreateRouteRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createRoute(request: google.cloud.datastream.v1.ICreateRouteRequest, callback: google.cloud.datastream.v1.Datastream.CreateRouteCallback): void;

                    /**
                     * Calls CreateRoute.
                     * @param request CreateRouteRequest message or plain object
                     * @returns Promise
                     */
                    public createRoute(request: google.cloud.datastream.v1.ICreateRouteRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls GetRoute.
                     * @param request GetRouteRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Route
                     */
                    public getRoute(request: google.cloud.datastream.v1.IGetRouteRequest, callback: google.cloud.datastream.v1.Datastream.GetRouteCallback): void;

                    /**
                     * Calls GetRoute.
                     * @param request GetRouteRequest message or plain object
                     * @returns Promise
                     */
                    public getRoute(request: google.cloud.datastream.v1.IGetRouteRequest): Promise<google.cloud.datastream.v1.Route>;

                    /**
                     * Calls ListRoutes.
                     * @param request ListRoutesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListRoutesResponse
                     */
                    public listRoutes(request: google.cloud.datastream.v1.IListRoutesRequest, callback: google.cloud.datastream.v1.Datastream.ListRoutesCallback): void;

                    /**
                     * Calls ListRoutes.
                     * @param request ListRoutesRequest message or plain object
                     * @returns Promise
                     */
                    public listRoutes(request: google.cloud.datastream.v1.IListRoutesRequest): Promise<google.cloud.datastream.v1.ListRoutesResponse>;

                    /**
                     * Calls DeleteRoute.
                     * @param request DeleteRouteRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteRoute(request: google.cloud.datastream.v1.IDeleteRouteRequest, callback: google.cloud.datastream.v1.Datastream.DeleteRouteCallback): void;

                    /**
                     * Calls DeleteRoute.
                     * @param request DeleteRouteRequest message or plain object
                     * @returns Promise
                     */
                    public deleteRoute(request: google.cloud.datastream.v1.IDeleteRouteRequest): Promise<google.longrunning.Operation>;
                }

                namespace Datastream {

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|listConnectionProfiles}.
                     * @param error Error, if any
                     * @param [response] ListConnectionProfilesResponse
                     */
                    type ListConnectionProfilesCallback = (error: (Error|null), response?: google.cloud.datastream.v1.ListConnectionProfilesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|getConnectionProfile}.
                     * @param error Error, if any
                     * @param [response] ConnectionProfile
                     */
                    type GetConnectionProfileCallback = (error: (Error|null), response?: google.cloud.datastream.v1.ConnectionProfile) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|createConnectionProfile}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateConnectionProfileCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|updateConnectionProfile}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateConnectionProfileCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|deleteConnectionProfile}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteConnectionProfileCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|discoverConnectionProfile}.
                     * @param error Error, if any
                     * @param [response] DiscoverConnectionProfileResponse
                     */
                    type DiscoverConnectionProfileCallback = (error: (Error|null), response?: google.cloud.datastream.v1.DiscoverConnectionProfileResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|listStreams}.
                     * @param error Error, if any
                     * @param [response] ListStreamsResponse
                     */
                    type ListStreamsCallback = (error: (Error|null), response?: google.cloud.datastream.v1.ListStreamsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|getStream}.
                     * @param error Error, if any
                     * @param [response] Stream
                     */
                    type GetStreamCallback = (error: (Error|null), response?: google.cloud.datastream.v1.Stream) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|createStream}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateStreamCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|updateStream}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateStreamCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|deleteStream}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteStreamCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|runStream}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RunStreamCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|getStreamObject}.
                     * @param error Error, if any
                     * @param [response] StreamObject
                     */
                    type GetStreamObjectCallback = (error: (Error|null), response?: google.cloud.datastream.v1.StreamObject) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|lookupStreamObject}.
                     * @param error Error, if any
                     * @param [response] StreamObject
                     */
                    type LookupStreamObjectCallback = (error: (Error|null), response?: google.cloud.datastream.v1.StreamObject) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|listStreamObjects}.
                     * @param error Error, if any
                     * @param [response] ListStreamObjectsResponse
                     */
                    type ListStreamObjectsCallback = (error: (Error|null), response?: google.cloud.datastream.v1.ListStreamObjectsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|startBackfillJob}.
                     * @param error Error, if any
                     * @param [response] StartBackfillJobResponse
                     */
                    type StartBackfillJobCallback = (error: (Error|null), response?: google.cloud.datastream.v1.StartBackfillJobResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|stopBackfillJob}.
                     * @param error Error, if any
                     * @param [response] StopBackfillJobResponse
                     */
                    type StopBackfillJobCallback = (error: (Error|null), response?: google.cloud.datastream.v1.StopBackfillJobResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|fetchStaticIps}.
                     * @param error Error, if any
                     * @param [response] FetchStaticIpsResponse
                     */
                    type FetchStaticIpsCallback = (error: (Error|null), response?: google.cloud.datastream.v1.FetchStaticIpsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|createPrivateConnection}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreatePrivateConnectionCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|getPrivateConnection}.
                     * @param error Error, if any
                     * @param [response] PrivateConnection
                     */
                    type GetPrivateConnectionCallback = (error: (Error|null), response?: google.cloud.datastream.v1.PrivateConnection) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|listPrivateConnections}.
                     * @param error Error, if any
                     * @param [response] ListPrivateConnectionsResponse
                     */
                    type ListPrivateConnectionsCallback = (error: (Error|null), response?: google.cloud.datastream.v1.ListPrivateConnectionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|deletePrivateConnection}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeletePrivateConnectionCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|createRoute}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateRouteCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|getRoute}.
                     * @param error Error, if any
                     * @param [response] Route
                     */
                    type GetRouteCallback = (error: (Error|null), response?: google.cloud.datastream.v1.Route) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|listRoutes}.
                     * @param error Error, if any
                     * @param [response] ListRoutesResponse
                     */
                    type ListRoutesCallback = (error: (Error|null), response?: google.cloud.datastream.v1.ListRoutesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1.Datastream|deleteRoute}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteRouteCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;
                }

                /** Properties of a DiscoverConnectionProfileRequest. */
                interface IDiscoverConnectionProfileRequest {

                    /** DiscoverConnectionProfileRequest parent */
                    parent?: (string|null);

                    /** DiscoverConnectionProfileRequest connectionProfile */
                    connectionProfile?: (google.cloud.datastream.v1.IConnectionProfile|null);

                    /** DiscoverConnectionProfileRequest connectionProfileName */
                    connectionProfileName?: (string|null);

                    /** DiscoverConnectionProfileRequest fullHierarchy */
                    fullHierarchy?: (boolean|null);

                    /** DiscoverConnectionProfileRequest hierarchyDepth */
                    hierarchyDepth?: (number|null);

                    /** DiscoverConnectionProfileRequest oracleRdbms */
                    oracleRdbms?: (google.cloud.datastream.v1.IOracleRdbms|null);

                    /** DiscoverConnectionProfileRequest mysqlRdbms */
                    mysqlRdbms?: (google.cloud.datastream.v1.IMysqlRdbms|null);

                    /** DiscoverConnectionProfileRequest postgresqlRdbms */
                    postgresqlRdbms?: (google.cloud.datastream.v1.IPostgresqlRdbms|null);

                    /** DiscoverConnectionProfileRequest sqlServerRdbms */
                    sqlServerRdbms?: (google.cloud.datastream.v1.ISqlServerRdbms|null);

                    /** DiscoverConnectionProfileRequest salesforceOrg */
                    salesforceOrg?: (google.cloud.datastream.v1.ISalesforceOrg|null);

                    /** DiscoverConnectionProfileRequest mongodbCluster */
                    mongodbCluster?: (google.cloud.datastream.v1.IMongodbCluster|null);
                }

                /** Represents a DiscoverConnectionProfileRequest. */
                class DiscoverConnectionProfileRequest implements IDiscoverConnectionProfileRequest {

                    /**
                     * Constructs a new DiscoverConnectionProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IDiscoverConnectionProfileRequest);

                    /** DiscoverConnectionProfileRequest parent. */
                    public parent: string;

                    /** DiscoverConnectionProfileRequest connectionProfile. */
                    public connectionProfile?: (google.cloud.datastream.v1.IConnectionProfile|null);

                    /** DiscoverConnectionProfileRequest connectionProfileName. */
                    public connectionProfileName?: (string|null);

                    /** DiscoverConnectionProfileRequest fullHierarchy. */
                    public fullHierarchy?: (boolean|null);

                    /** DiscoverConnectionProfileRequest hierarchyDepth. */
                    public hierarchyDepth?: (number|null);

                    /** DiscoverConnectionProfileRequest oracleRdbms. */
                    public oracleRdbms?: (google.cloud.datastream.v1.IOracleRdbms|null);

                    /** DiscoverConnectionProfileRequest mysqlRdbms. */
                    public mysqlRdbms?: (google.cloud.datastream.v1.IMysqlRdbms|null);

                    /** DiscoverConnectionProfileRequest postgresqlRdbms. */
                    public postgresqlRdbms?: (google.cloud.datastream.v1.IPostgresqlRdbms|null);

                    /** DiscoverConnectionProfileRequest sqlServerRdbms. */
                    public sqlServerRdbms?: (google.cloud.datastream.v1.ISqlServerRdbms|null);

                    /** DiscoverConnectionProfileRequest salesforceOrg. */
                    public salesforceOrg?: (google.cloud.datastream.v1.ISalesforceOrg|null);

                    /** DiscoverConnectionProfileRequest mongodbCluster. */
                    public mongodbCluster?: (google.cloud.datastream.v1.IMongodbCluster|null);

                    /** DiscoverConnectionProfileRequest target. */
                    public target?: ("connectionProfile"|"connectionProfileName");

                    /** DiscoverConnectionProfileRequest hierarchy. */
                    public hierarchy?: ("fullHierarchy"|"hierarchyDepth");

                    /** DiscoverConnectionProfileRequest dataObject. */
                    public dataObject?: ("oracleRdbms"|"mysqlRdbms"|"postgresqlRdbms"|"sqlServerRdbms"|"salesforceOrg"|"mongodbCluster");

                    /**
                     * Creates a new DiscoverConnectionProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiscoverConnectionProfileRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IDiscoverConnectionProfileRequest): google.cloud.datastream.v1.DiscoverConnectionProfileRequest;

                    /**
                     * Encodes the specified DiscoverConnectionProfileRequest message. Does not implicitly {@link google.cloud.datastream.v1.DiscoverConnectionProfileRequest.verify|verify} messages.
                     * @param message DiscoverConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IDiscoverConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiscoverConnectionProfileRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.DiscoverConnectionProfileRequest.verify|verify} messages.
                     * @param message DiscoverConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IDiscoverConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiscoverConnectionProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoverConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.DiscoverConnectionProfileRequest;

                    /**
                     * Decodes a DiscoverConnectionProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoverConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.DiscoverConnectionProfileRequest;

                    /**
                     * Verifies a DiscoverConnectionProfileRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiscoverConnectionProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoverConnectionProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.DiscoverConnectionProfileRequest;

                    /**
                     * Creates a plain object from a DiscoverConnectionProfileRequest message. Also converts values to other types if specified.
                     * @param message DiscoverConnectionProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.DiscoverConnectionProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiscoverConnectionProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiscoverConnectionProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiscoverConnectionProfileResponse. */
                interface IDiscoverConnectionProfileResponse {

                    /** DiscoverConnectionProfileResponse oracleRdbms */
                    oracleRdbms?: (google.cloud.datastream.v1.IOracleRdbms|null);

                    /** DiscoverConnectionProfileResponse mysqlRdbms */
                    mysqlRdbms?: (google.cloud.datastream.v1.IMysqlRdbms|null);

                    /** DiscoverConnectionProfileResponse postgresqlRdbms */
                    postgresqlRdbms?: (google.cloud.datastream.v1.IPostgresqlRdbms|null);

                    /** DiscoverConnectionProfileResponse sqlServerRdbms */
                    sqlServerRdbms?: (google.cloud.datastream.v1.ISqlServerRdbms|null);

                    /** DiscoverConnectionProfileResponse salesforceOrg */
                    salesforceOrg?: (google.cloud.datastream.v1.ISalesforceOrg|null);

                    /** DiscoverConnectionProfileResponse mongodbCluster */
                    mongodbCluster?: (google.cloud.datastream.v1.IMongodbCluster|null);
                }

                /** Represents a DiscoverConnectionProfileResponse. */
                class DiscoverConnectionProfileResponse implements IDiscoverConnectionProfileResponse {

                    /**
                     * Constructs a new DiscoverConnectionProfileResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IDiscoverConnectionProfileResponse);

                    /** DiscoverConnectionProfileResponse oracleRdbms. */
                    public oracleRdbms?: (google.cloud.datastream.v1.IOracleRdbms|null);

                    /** DiscoverConnectionProfileResponse mysqlRdbms. */
                    public mysqlRdbms?: (google.cloud.datastream.v1.IMysqlRdbms|null);

                    /** DiscoverConnectionProfileResponse postgresqlRdbms. */
                    public postgresqlRdbms?: (google.cloud.datastream.v1.IPostgresqlRdbms|null);

                    /** DiscoverConnectionProfileResponse sqlServerRdbms. */
                    public sqlServerRdbms?: (google.cloud.datastream.v1.ISqlServerRdbms|null);

                    /** DiscoverConnectionProfileResponse salesforceOrg. */
                    public salesforceOrg?: (google.cloud.datastream.v1.ISalesforceOrg|null);

                    /** DiscoverConnectionProfileResponse mongodbCluster. */
                    public mongodbCluster?: (google.cloud.datastream.v1.IMongodbCluster|null);

                    /** DiscoverConnectionProfileResponse dataObject. */
                    public dataObject?: ("oracleRdbms"|"mysqlRdbms"|"postgresqlRdbms"|"sqlServerRdbms"|"salesforceOrg"|"mongodbCluster");

                    /**
                     * Creates a new DiscoverConnectionProfileResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiscoverConnectionProfileResponse instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IDiscoverConnectionProfileResponse): google.cloud.datastream.v1.DiscoverConnectionProfileResponse;

                    /**
                     * Encodes the specified DiscoverConnectionProfileResponse message. Does not implicitly {@link google.cloud.datastream.v1.DiscoverConnectionProfileResponse.verify|verify} messages.
                     * @param message DiscoverConnectionProfileResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IDiscoverConnectionProfileResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiscoverConnectionProfileResponse message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.DiscoverConnectionProfileResponse.verify|verify} messages.
                     * @param message DiscoverConnectionProfileResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IDiscoverConnectionProfileResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiscoverConnectionProfileResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoverConnectionProfileResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.DiscoverConnectionProfileResponse;

                    /**
                     * Decodes a DiscoverConnectionProfileResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoverConnectionProfileResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.DiscoverConnectionProfileResponse;

                    /**
                     * Verifies a DiscoverConnectionProfileResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiscoverConnectionProfileResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoverConnectionProfileResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.DiscoverConnectionProfileResponse;

                    /**
                     * Creates a plain object from a DiscoverConnectionProfileResponse message. Also converts values to other types if specified.
                     * @param message DiscoverConnectionProfileResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.DiscoverConnectionProfileResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiscoverConnectionProfileResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiscoverConnectionProfileResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FetchStaticIpsRequest. */
                interface IFetchStaticIpsRequest {

                    /** FetchStaticIpsRequest name */
                    name?: (string|null);

                    /** FetchStaticIpsRequest pageSize */
                    pageSize?: (number|null);

                    /** FetchStaticIpsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a FetchStaticIpsRequest. */
                class FetchStaticIpsRequest implements IFetchStaticIpsRequest {

                    /**
                     * Constructs a new FetchStaticIpsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IFetchStaticIpsRequest);

                    /** FetchStaticIpsRequest name. */
                    public name: string;

                    /** FetchStaticIpsRequest pageSize. */
                    public pageSize: number;

                    /** FetchStaticIpsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new FetchStaticIpsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FetchStaticIpsRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IFetchStaticIpsRequest): google.cloud.datastream.v1.FetchStaticIpsRequest;

                    /**
                     * Encodes the specified FetchStaticIpsRequest message. Does not implicitly {@link google.cloud.datastream.v1.FetchStaticIpsRequest.verify|verify} messages.
                     * @param message FetchStaticIpsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IFetchStaticIpsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FetchStaticIpsRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.FetchStaticIpsRequest.verify|verify} messages.
                     * @param message FetchStaticIpsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IFetchStaticIpsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FetchStaticIpsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FetchStaticIpsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.FetchStaticIpsRequest;

                    /**
                     * Decodes a FetchStaticIpsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FetchStaticIpsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.FetchStaticIpsRequest;

                    /**
                     * Verifies a FetchStaticIpsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FetchStaticIpsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FetchStaticIpsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.FetchStaticIpsRequest;

                    /**
                     * Creates a plain object from a FetchStaticIpsRequest message. Also converts values to other types if specified.
                     * @param message FetchStaticIpsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.FetchStaticIpsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FetchStaticIpsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FetchStaticIpsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FetchStaticIpsResponse. */
                interface IFetchStaticIpsResponse {

                    /** FetchStaticIpsResponse staticIps */
                    staticIps?: (string[]|null);

                    /** FetchStaticIpsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a FetchStaticIpsResponse. */
                class FetchStaticIpsResponse implements IFetchStaticIpsResponse {

                    /**
                     * Constructs a new FetchStaticIpsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IFetchStaticIpsResponse);

                    /** FetchStaticIpsResponse staticIps. */
                    public staticIps: string[];

                    /** FetchStaticIpsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new FetchStaticIpsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FetchStaticIpsResponse instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IFetchStaticIpsResponse): google.cloud.datastream.v1.FetchStaticIpsResponse;

                    /**
                     * Encodes the specified FetchStaticIpsResponse message. Does not implicitly {@link google.cloud.datastream.v1.FetchStaticIpsResponse.verify|verify} messages.
                     * @param message FetchStaticIpsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IFetchStaticIpsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FetchStaticIpsResponse message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.FetchStaticIpsResponse.verify|verify} messages.
                     * @param message FetchStaticIpsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IFetchStaticIpsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FetchStaticIpsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FetchStaticIpsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.FetchStaticIpsResponse;

                    /**
                     * Decodes a FetchStaticIpsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FetchStaticIpsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.FetchStaticIpsResponse;

                    /**
                     * Verifies a FetchStaticIpsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FetchStaticIpsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FetchStaticIpsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.FetchStaticIpsResponse;

                    /**
                     * Creates a plain object from a FetchStaticIpsResponse message. Also converts values to other types if specified.
                     * @param message FetchStaticIpsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.FetchStaticIpsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FetchStaticIpsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FetchStaticIpsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConnectionProfilesRequest. */
                interface IListConnectionProfilesRequest {

                    /** ListConnectionProfilesRequest parent */
                    parent?: (string|null);

                    /** ListConnectionProfilesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListConnectionProfilesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListConnectionProfilesRequest filter */
                    filter?: (string|null);

                    /** ListConnectionProfilesRequest orderBy */
                    orderBy?: (string|null);
                }

                /** Represents a ListConnectionProfilesRequest. */
                class ListConnectionProfilesRequest implements IListConnectionProfilesRequest {

                    /**
                     * Constructs a new ListConnectionProfilesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IListConnectionProfilesRequest);

                    /** ListConnectionProfilesRequest parent. */
                    public parent: string;

                    /** ListConnectionProfilesRequest pageSize. */
                    public pageSize: number;

                    /** ListConnectionProfilesRequest pageToken. */
                    public pageToken: string;

                    /** ListConnectionProfilesRequest filter. */
                    public filter: string;

                    /** ListConnectionProfilesRequest orderBy. */
                    public orderBy: string;

                    /**
                     * Creates a new ListConnectionProfilesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConnectionProfilesRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IListConnectionProfilesRequest): google.cloud.datastream.v1.ListConnectionProfilesRequest;

                    /**
                     * Encodes the specified ListConnectionProfilesRequest message. Does not implicitly {@link google.cloud.datastream.v1.ListConnectionProfilesRequest.verify|verify} messages.
                     * @param message ListConnectionProfilesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IListConnectionProfilesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConnectionProfilesRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.ListConnectionProfilesRequest.verify|verify} messages.
                     * @param message ListConnectionProfilesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IListConnectionProfilesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConnectionProfilesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConnectionProfilesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.ListConnectionProfilesRequest;

                    /**
                     * Decodes a ListConnectionProfilesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConnectionProfilesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.ListConnectionProfilesRequest;

                    /**
                     * Verifies a ListConnectionProfilesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListConnectionProfilesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConnectionProfilesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.ListConnectionProfilesRequest;

                    /**
                     * Creates a plain object from a ListConnectionProfilesRequest message. Also converts values to other types if specified.
                     * @param message ListConnectionProfilesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.ListConnectionProfilesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConnectionProfilesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConnectionProfilesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConnectionProfilesResponse. */
                interface IListConnectionProfilesResponse {

                    /** ListConnectionProfilesResponse connectionProfiles */
                    connectionProfiles?: (google.cloud.datastream.v1.IConnectionProfile[]|null);

                    /** ListConnectionProfilesResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListConnectionProfilesResponse unreachable */
                    unreachable?: (string[]|null);
                }

                /** Represents a ListConnectionProfilesResponse. */
                class ListConnectionProfilesResponse implements IListConnectionProfilesResponse {

                    /**
                     * Constructs a new ListConnectionProfilesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IListConnectionProfilesResponse);

                    /** ListConnectionProfilesResponse connectionProfiles. */
                    public connectionProfiles: google.cloud.datastream.v1.IConnectionProfile[];

                    /** ListConnectionProfilesResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListConnectionProfilesResponse unreachable. */
                    public unreachable: string[];

                    /**
                     * Creates a new ListConnectionProfilesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConnectionProfilesResponse instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IListConnectionProfilesResponse): google.cloud.datastream.v1.ListConnectionProfilesResponse;

                    /**
                     * Encodes the specified ListConnectionProfilesResponse message. Does not implicitly {@link google.cloud.datastream.v1.ListConnectionProfilesResponse.verify|verify} messages.
                     * @param message ListConnectionProfilesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IListConnectionProfilesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConnectionProfilesResponse message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.ListConnectionProfilesResponse.verify|verify} messages.
                     * @param message ListConnectionProfilesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IListConnectionProfilesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConnectionProfilesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConnectionProfilesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.ListConnectionProfilesResponse;

                    /**
                     * Decodes a ListConnectionProfilesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConnectionProfilesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.ListConnectionProfilesResponse;

                    /**
                     * Verifies a ListConnectionProfilesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListConnectionProfilesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConnectionProfilesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.ListConnectionProfilesResponse;

                    /**
                     * Creates a plain object from a ListConnectionProfilesResponse message. Also converts values to other types if specified.
                     * @param message ListConnectionProfilesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.ListConnectionProfilesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConnectionProfilesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConnectionProfilesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetConnectionProfileRequest. */
                interface IGetConnectionProfileRequest {

                    /** GetConnectionProfileRequest name */
                    name?: (string|null);
                }

                /** Represents a GetConnectionProfileRequest. */
                class GetConnectionProfileRequest implements IGetConnectionProfileRequest {

                    /**
                     * Constructs a new GetConnectionProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IGetConnectionProfileRequest);

                    /** GetConnectionProfileRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetConnectionProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetConnectionProfileRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IGetConnectionProfileRequest): google.cloud.datastream.v1.GetConnectionProfileRequest;

                    /**
                     * Encodes the specified GetConnectionProfileRequest message. Does not implicitly {@link google.cloud.datastream.v1.GetConnectionProfileRequest.verify|verify} messages.
                     * @param message GetConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IGetConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetConnectionProfileRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.GetConnectionProfileRequest.verify|verify} messages.
                     * @param message GetConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IGetConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetConnectionProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.GetConnectionProfileRequest;

                    /**
                     * Decodes a GetConnectionProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.GetConnectionProfileRequest;

                    /**
                     * Verifies a GetConnectionProfileRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetConnectionProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetConnectionProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.GetConnectionProfileRequest;

                    /**
                     * Creates a plain object from a GetConnectionProfileRequest message. Also converts values to other types if specified.
                     * @param message GetConnectionProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.GetConnectionProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetConnectionProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetConnectionProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateConnectionProfileRequest. */
                interface ICreateConnectionProfileRequest {

                    /** CreateConnectionProfileRequest parent */
                    parent?: (string|null);

                    /** CreateConnectionProfileRequest connectionProfileId */
                    connectionProfileId?: (string|null);

                    /** CreateConnectionProfileRequest connectionProfile */
                    connectionProfile?: (google.cloud.datastream.v1.IConnectionProfile|null);

                    /** CreateConnectionProfileRequest requestId */
                    requestId?: (string|null);

                    /** CreateConnectionProfileRequest validateOnly */
                    validateOnly?: (boolean|null);

                    /** CreateConnectionProfileRequest force */
                    force?: (boolean|null);
                }

                /** Represents a CreateConnectionProfileRequest. */
                class CreateConnectionProfileRequest implements ICreateConnectionProfileRequest {

                    /**
                     * Constructs a new CreateConnectionProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ICreateConnectionProfileRequest);

                    /** CreateConnectionProfileRequest parent. */
                    public parent: string;

                    /** CreateConnectionProfileRequest connectionProfileId. */
                    public connectionProfileId: string;

                    /** CreateConnectionProfileRequest connectionProfile. */
                    public connectionProfile?: (google.cloud.datastream.v1.IConnectionProfile|null);

                    /** CreateConnectionProfileRequest requestId. */
                    public requestId: string;

                    /** CreateConnectionProfileRequest validateOnly. */
                    public validateOnly: boolean;

                    /** CreateConnectionProfileRequest force. */
                    public force: boolean;

                    /**
                     * Creates a new CreateConnectionProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateConnectionProfileRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ICreateConnectionProfileRequest): google.cloud.datastream.v1.CreateConnectionProfileRequest;

                    /**
                     * Encodes the specified CreateConnectionProfileRequest message. Does not implicitly {@link google.cloud.datastream.v1.CreateConnectionProfileRequest.verify|verify} messages.
                     * @param message CreateConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ICreateConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateConnectionProfileRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.CreateConnectionProfileRequest.verify|verify} messages.
                     * @param message CreateConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ICreateConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateConnectionProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.CreateConnectionProfileRequest;

                    /**
                     * Decodes a CreateConnectionProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.CreateConnectionProfileRequest;

                    /**
                     * Verifies a CreateConnectionProfileRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateConnectionProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateConnectionProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.CreateConnectionProfileRequest;

                    /**
                     * Creates a plain object from a CreateConnectionProfileRequest message. Also converts values to other types if specified.
                     * @param message CreateConnectionProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.CreateConnectionProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateConnectionProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateConnectionProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateConnectionProfileRequest. */
                interface IUpdateConnectionProfileRequest {

                    /** UpdateConnectionProfileRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);

                    /** UpdateConnectionProfileRequest connectionProfile */
                    connectionProfile?: (google.cloud.datastream.v1.IConnectionProfile|null);

                    /** UpdateConnectionProfileRequest requestId */
                    requestId?: (string|null);

                    /** UpdateConnectionProfileRequest validateOnly */
                    validateOnly?: (boolean|null);

                    /** UpdateConnectionProfileRequest force */
                    force?: (boolean|null);
                }

                /** Represents an UpdateConnectionProfileRequest. */
                class UpdateConnectionProfileRequest implements IUpdateConnectionProfileRequest {

                    /**
                     * Constructs a new UpdateConnectionProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IUpdateConnectionProfileRequest);

                    /** UpdateConnectionProfileRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /** UpdateConnectionProfileRequest connectionProfile. */
                    public connectionProfile?: (google.cloud.datastream.v1.IConnectionProfile|null);

                    /** UpdateConnectionProfileRequest requestId. */
                    public requestId: string;

                    /** UpdateConnectionProfileRequest validateOnly. */
                    public validateOnly: boolean;

                    /** UpdateConnectionProfileRequest force. */
                    public force: boolean;

                    /**
                     * Creates a new UpdateConnectionProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateConnectionProfileRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IUpdateConnectionProfileRequest): google.cloud.datastream.v1.UpdateConnectionProfileRequest;

                    /**
                     * Encodes the specified UpdateConnectionProfileRequest message. Does not implicitly {@link google.cloud.datastream.v1.UpdateConnectionProfileRequest.verify|verify} messages.
                     * @param message UpdateConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IUpdateConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateConnectionProfileRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.UpdateConnectionProfileRequest.verify|verify} messages.
                     * @param message UpdateConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IUpdateConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateConnectionProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.UpdateConnectionProfileRequest;

                    /**
                     * Decodes an UpdateConnectionProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.UpdateConnectionProfileRequest;

                    /**
                     * Verifies an UpdateConnectionProfileRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an UpdateConnectionProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateConnectionProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.UpdateConnectionProfileRequest;

                    /**
                     * Creates a plain object from an UpdateConnectionProfileRequest message. Also converts values to other types if specified.
                     * @param message UpdateConnectionProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.UpdateConnectionProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateConnectionProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateConnectionProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteConnectionProfileRequest. */
                interface IDeleteConnectionProfileRequest {

                    /** DeleteConnectionProfileRequest name */
                    name?: (string|null);

                    /** DeleteConnectionProfileRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteConnectionProfileRequest. */
                class DeleteConnectionProfileRequest implements IDeleteConnectionProfileRequest {

                    /**
                     * Constructs a new DeleteConnectionProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IDeleteConnectionProfileRequest);

                    /** DeleteConnectionProfileRequest name. */
                    public name: string;

                    /** DeleteConnectionProfileRequest requestId. */
                    public requestId: string;

                    /**
                     * Creates a new DeleteConnectionProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteConnectionProfileRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IDeleteConnectionProfileRequest): google.cloud.datastream.v1.DeleteConnectionProfileRequest;

                    /**
                     * Encodes the specified DeleteConnectionProfileRequest message. Does not implicitly {@link google.cloud.datastream.v1.DeleteConnectionProfileRequest.verify|verify} messages.
                     * @param message DeleteConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IDeleteConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteConnectionProfileRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.DeleteConnectionProfileRequest.verify|verify} messages.
                     * @param message DeleteConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IDeleteConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteConnectionProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.DeleteConnectionProfileRequest;

                    /**
                     * Decodes a DeleteConnectionProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.DeleteConnectionProfileRequest;

                    /**
                     * Verifies a DeleteConnectionProfileRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteConnectionProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteConnectionProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.DeleteConnectionProfileRequest;

                    /**
                     * Creates a plain object from a DeleteConnectionProfileRequest message. Also converts values to other types if specified.
                     * @param message DeleteConnectionProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.DeleteConnectionProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteConnectionProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteConnectionProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListStreamsRequest. */
                interface IListStreamsRequest {

                    /** ListStreamsRequest parent */
                    parent?: (string|null);

                    /** ListStreamsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListStreamsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListStreamsRequest filter */
                    filter?: (string|null);

                    /** ListStreamsRequest orderBy */
                    orderBy?: (string|null);
                }

                /** Represents a ListStreamsRequest. */
                class ListStreamsRequest implements IListStreamsRequest {

                    /**
                     * Constructs a new ListStreamsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IListStreamsRequest);

                    /** ListStreamsRequest parent. */
                    public parent: string;

                    /** ListStreamsRequest pageSize. */
                    public pageSize: number;

                    /** ListStreamsRequest pageToken. */
                    public pageToken: string;

                    /** ListStreamsRequest filter. */
                    public filter: string;

                    /** ListStreamsRequest orderBy. */
                    public orderBy: string;

                    /**
                     * Creates a new ListStreamsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListStreamsRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IListStreamsRequest): google.cloud.datastream.v1.ListStreamsRequest;

                    /**
                     * Encodes the specified ListStreamsRequest message. Does not implicitly {@link google.cloud.datastream.v1.ListStreamsRequest.verify|verify} messages.
                     * @param message ListStreamsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IListStreamsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListStreamsRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.ListStreamsRequest.verify|verify} messages.
                     * @param message ListStreamsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IListStreamsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListStreamsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListStreamsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.ListStreamsRequest;

                    /**
                     * Decodes a ListStreamsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListStreamsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.ListStreamsRequest;

                    /**
                     * Verifies a ListStreamsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListStreamsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListStreamsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.ListStreamsRequest;

                    /**
                     * Creates a plain object from a ListStreamsRequest message. Also converts values to other types if specified.
                     * @param message ListStreamsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.ListStreamsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListStreamsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListStreamsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListStreamsResponse. */
                interface IListStreamsResponse {

                    /** ListStreamsResponse streams */
                    streams?: (google.cloud.datastream.v1.IStream[]|null);

                    /** ListStreamsResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListStreamsResponse unreachable */
                    unreachable?: (string[]|null);
                }

                /** Represents a ListStreamsResponse. */
                class ListStreamsResponse implements IListStreamsResponse {

                    /**
                     * Constructs a new ListStreamsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IListStreamsResponse);

                    /** ListStreamsResponse streams. */
                    public streams: google.cloud.datastream.v1.IStream[];

                    /** ListStreamsResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListStreamsResponse unreachable. */
                    public unreachable: string[];

                    /**
                     * Creates a new ListStreamsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListStreamsResponse instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IListStreamsResponse): google.cloud.datastream.v1.ListStreamsResponse;

                    /**
                     * Encodes the specified ListStreamsResponse message. Does not implicitly {@link google.cloud.datastream.v1.ListStreamsResponse.verify|verify} messages.
                     * @param message ListStreamsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IListStreamsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListStreamsResponse message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.ListStreamsResponse.verify|verify} messages.
                     * @param message ListStreamsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IListStreamsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListStreamsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListStreamsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.ListStreamsResponse;

                    /**
                     * Decodes a ListStreamsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListStreamsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.ListStreamsResponse;

                    /**
                     * Verifies a ListStreamsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListStreamsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListStreamsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.ListStreamsResponse;

                    /**
                     * Creates a plain object from a ListStreamsResponse message. Also converts values to other types if specified.
                     * @param message ListStreamsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.ListStreamsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListStreamsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListStreamsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetStreamRequest. */
                interface IGetStreamRequest {

                    /** GetStreamRequest name */
                    name?: (string|null);
                }

                /** Represents a GetStreamRequest. */
                class GetStreamRequest implements IGetStreamRequest {

                    /**
                     * Constructs a new GetStreamRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IGetStreamRequest);

                    /** GetStreamRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetStreamRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetStreamRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IGetStreamRequest): google.cloud.datastream.v1.GetStreamRequest;

                    /**
                     * Encodes the specified GetStreamRequest message. Does not implicitly {@link google.cloud.datastream.v1.GetStreamRequest.verify|verify} messages.
                     * @param message GetStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IGetStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetStreamRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.GetStreamRequest.verify|verify} messages.
                     * @param message GetStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IGetStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetStreamRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.GetStreamRequest;

                    /**
                     * Decodes a GetStreamRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.GetStreamRequest;

                    /**
                     * Verifies a GetStreamRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetStreamRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetStreamRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.GetStreamRequest;

                    /**
                     * Creates a plain object from a GetStreamRequest message. Also converts values to other types if specified.
                     * @param message GetStreamRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.GetStreamRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetStreamRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetStreamRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateStreamRequest. */
                interface ICreateStreamRequest {

                    /** CreateStreamRequest parent */
                    parent?: (string|null);

                    /** CreateStreamRequest streamId */
                    streamId?: (string|null);

                    /** CreateStreamRequest stream */
                    stream?: (google.cloud.datastream.v1.IStream|null);

                    /** CreateStreamRequest requestId */
                    requestId?: (string|null);

                    /** CreateStreamRequest validateOnly */
                    validateOnly?: (boolean|null);

                    /** CreateStreamRequest force */
                    force?: (boolean|null);
                }

                /** Represents a CreateStreamRequest. */
                class CreateStreamRequest implements ICreateStreamRequest {

                    /**
                     * Constructs a new CreateStreamRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ICreateStreamRequest);

                    /** CreateStreamRequest parent. */
                    public parent: string;

                    /** CreateStreamRequest streamId. */
                    public streamId: string;

                    /** CreateStreamRequest stream. */
                    public stream?: (google.cloud.datastream.v1.IStream|null);

                    /** CreateStreamRequest requestId. */
                    public requestId: string;

                    /** CreateStreamRequest validateOnly. */
                    public validateOnly: boolean;

                    /** CreateStreamRequest force. */
                    public force: boolean;

                    /**
                     * Creates a new CreateStreamRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateStreamRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ICreateStreamRequest): google.cloud.datastream.v1.CreateStreamRequest;

                    /**
                     * Encodes the specified CreateStreamRequest message. Does not implicitly {@link google.cloud.datastream.v1.CreateStreamRequest.verify|verify} messages.
                     * @param message CreateStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ICreateStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateStreamRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.CreateStreamRequest.verify|verify} messages.
                     * @param message CreateStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ICreateStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateStreamRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.CreateStreamRequest;

                    /**
                     * Decodes a CreateStreamRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.CreateStreamRequest;

                    /**
                     * Verifies a CreateStreamRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateStreamRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateStreamRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.CreateStreamRequest;

                    /**
                     * Creates a plain object from a CreateStreamRequest message. Also converts values to other types if specified.
                     * @param message CreateStreamRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.CreateStreamRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateStreamRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateStreamRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateStreamRequest. */
                interface IUpdateStreamRequest {

                    /** UpdateStreamRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);

                    /** UpdateStreamRequest stream */
                    stream?: (google.cloud.datastream.v1.IStream|null);

                    /** UpdateStreamRequest requestId */
                    requestId?: (string|null);

                    /** UpdateStreamRequest validateOnly */
                    validateOnly?: (boolean|null);

                    /** UpdateStreamRequest force */
                    force?: (boolean|null);
                }

                /** Represents an UpdateStreamRequest. */
                class UpdateStreamRequest implements IUpdateStreamRequest {

                    /**
                     * Constructs a new UpdateStreamRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IUpdateStreamRequest);

                    /** UpdateStreamRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /** UpdateStreamRequest stream. */
                    public stream?: (google.cloud.datastream.v1.IStream|null);

                    /** UpdateStreamRequest requestId. */
                    public requestId: string;

                    /** UpdateStreamRequest validateOnly. */
                    public validateOnly: boolean;

                    /** UpdateStreamRequest force. */
                    public force: boolean;

                    /**
                     * Creates a new UpdateStreamRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateStreamRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IUpdateStreamRequest): google.cloud.datastream.v1.UpdateStreamRequest;

                    /**
                     * Encodes the specified UpdateStreamRequest message. Does not implicitly {@link google.cloud.datastream.v1.UpdateStreamRequest.verify|verify} messages.
                     * @param message UpdateStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IUpdateStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateStreamRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.UpdateStreamRequest.verify|verify} messages.
                     * @param message UpdateStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IUpdateStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateStreamRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.UpdateStreamRequest;

                    /**
                     * Decodes an UpdateStreamRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.UpdateStreamRequest;

                    /**
                     * Verifies an UpdateStreamRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an UpdateStreamRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateStreamRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.UpdateStreamRequest;

                    /**
                     * Creates a plain object from an UpdateStreamRequest message. Also converts values to other types if specified.
                     * @param message UpdateStreamRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.UpdateStreamRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateStreamRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateStreamRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteStreamRequest. */
                interface IDeleteStreamRequest {

                    /** DeleteStreamRequest name */
                    name?: (string|null);

                    /** DeleteStreamRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteStreamRequest. */
                class DeleteStreamRequest implements IDeleteStreamRequest {

                    /**
                     * Constructs a new DeleteStreamRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IDeleteStreamRequest);

                    /** DeleteStreamRequest name. */
                    public name: string;

                    /** DeleteStreamRequest requestId. */
                    public requestId: string;

                    /**
                     * Creates a new DeleteStreamRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteStreamRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IDeleteStreamRequest): google.cloud.datastream.v1.DeleteStreamRequest;

                    /**
                     * Encodes the specified DeleteStreamRequest message. Does not implicitly {@link google.cloud.datastream.v1.DeleteStreamRequest.verify|verify} messages.
                     * @param message DeleteStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IDeleteStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteStreamRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.DeleteStreamRequest.verify|verify} messages.
                     * @param message DeleteStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IDeleteStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteStreamRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.DeleteStreamRequest;

                    /**
                     * Decodes a DeleteStreamRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.DeleteStreamRequest;

                    /**
                     * Verifies a DeleteStreamRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteStreamRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteStreamRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.DeleteStreamRequest;

                    /**
                     * Creates a plain object from a DeleteStreamRequest message. Also converts values to other types if specified.
                     * @param message DeleteStreamRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.DeleteStreamRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteStreamRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteStreamRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RunStreamRequest. */
                interface IRunStreamRequest {

                    /** RunStreamRequest name */
                    name?: (string|null);

                    /** RunStreamRequest cdcStrategy */
                    cdcStrategy?: (google.cloud.datastream.v1.ICdcStrategy|null);

                    /** RunStreamRequest force */
                    force?: (boolean|null);
                }

                /** Represents a RunStreamRequest. */
                class RunStreamRequest implements IRunStreamRequest {

                    /**
                     * Constructs a new RunStreamRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IRunStreamRequest);

                    /** RunStreamRequest name. */
                    public name: string;

                    /** RunStreamRequest cdcStrategy. */
                    public cdcStrategy?: (google.cloud.datastream.v1.ICdcStrategy|null);

                    /** RunStreamRequest force. */
                    public force: boolean;

                    /**
                     * Creates a new RunStreamRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RunStreamRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IRunStreamRequest): google.cloud.datastream.v1.RunStreamRequest;

                    /**
                     * Encodes the specified RunStreamRequest message. Does not implicitly {@link google.cloud.datastream.v1.RunStreamRequest.verify|verify} messages.
                     * @param message RunStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IRunStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RunStreamRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.RunStreamRequest.verify|verify} messages.
                     * @param message RunStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IRunStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RunStreamRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RunStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.RunStreamRequest;

                    /**
                     * Decodes a RunStreamRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RunStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.RunStreamRequest;

                    /**
                     * Verifies a RunStreamRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RunStreamRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RunStreamRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.RunStreamRequest;

                    /**
                     * Creates a plain object from a RunStreamRequest message. Also converts values to other types if specified.
                     * @param message RunStreamRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.RunStreamRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RunStreamRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RunStreamRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetStreamObjectRequest. */
                interface IGetStreamObjectRequest {

                    /** GetStreamObjectRequest name */
                    name?: (string|null);
                }

                /** Represents a GetStreamObjectRequest. */
                class GetStreamObjectRequest implements IGetStreamObjectRequest {

                    /**
                     * Constructs a new GetStreamObjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IGetStreamObjectRequest);

                    /** GetStreamObjectRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetStreamObjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetStreamObjectRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IGetStreamObjectRequest): google.cloud.datastream.v1.GetStreamObjectRequest;

                    /**
                     * Encodes the specified GetStreamObjectRequest message. Does not implicitly {@link google.cloud.datastream.v1.GetStreamObjectRequest.verify|verify} messages.
                     * @param message GetStreamObjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IGetStreamObjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetStreamObjectRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.GetStreamObjectRequest.verify|verify} messages.
                     * @param message GetStreamObjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IGetStreamObjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetStreamObjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetStreamObjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.GetStreamObjectRequest;

                    /**
                     * Decodes a GetStreamObjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetStreamObjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.GetStreamObjectRequest;

                    /**
                     * Verifies a GetStreamObjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetStreamObjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetStreamObjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.GetStreamObjectRequest;

                    /**
                     * Creates a plain object from a GetStreamObjectRequest message. Also converts values to other types if specified.
                     * @param message GetStreamObjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.GetStreamObjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetStreamObjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetStreamObjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LookupStreamObjectRequest. */
                interface ILookupStreamObjectRequest {

                    /** LookupStreamObjectRequest parent */
                    parent?: (string|null);

                    /** LookupStreamObjectRequest sourceObjectIdentifier */
                    sourceObjectIdentifier?: (google.cloud.datastream.v1.ISourceObjectIdentifier|null);
                }

                /** Represents a LookupStreamObjectRequest. */
                class LookupStreamObjectRequest implements ILookupStreamObjectRequest {

                    /**
                     * Constructs a new LookupStreamObjectRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ILookupStreamObjectRequest);

                    /** LookupStreamObjectRequest parent. */
                    public parent: string;

                    /** LookupStreamObjectRequest sourceObjectIdentifier. */
                    public sourceObjectIdentifier?: (google.cloud.datastream.v1.ISourceObjectIdentifier|null);

                    /**
                     * Creates a new LookupStreamObjectRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LookupStreamObjectRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ILookupStreamObjectRequest): google.cloud.datastream.v1.LookupStreamObjectRequest;

                    /**
                     * Encodes the specified LookupStreamObjectRequest message. Does not implicitly {@link google.cloud.datastream.v1.LookupStreamObjectRequest.verify|verify} messages.
                     * @param message LookupStreamObjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ILookupStreamObjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LookupStreamObjectRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.LookupStreamObjectRequest.verify|verify} messages.
                     * @param message LookupStreamObjectRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ILookupStreamObjectRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LookupStreamObjectRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LookupStreamObjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.LookupStreamObjectRequest;

                    /**
                     * Decodes a LookupStreamObjectRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LookupStreamObjectRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.LookupStreamObjectRequest;

                    /**
                     * Verifies a LookupStreamObjectRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LookupStreamObjectRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LookupStreamObjectRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.LookupStreamObjectRequest;

                    /**
                     * Creates a plain object from a LookupStreamObjectRequest message. Also converts values to other types if specified.
                     * @param message LookupStreamObjectRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.LookupStreamObjectRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LookupStreamObjectRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LookupStreamObjectRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StartBackfillJobRequest. */
                interface IStartBackfillJobRequest {

                    /** StartBackfillJobRequest object */
                    object?: (string|null);
                }

                /** Represents a StartBackfillJobRequest. */
                class StartBackfillJobRequest implements IStartBackfillJobRequest {

                    /**
                     * Constructs a new StartBackfillJobRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IStartBackfillJobRequest);

                    /** StartBackfillJobRequest object. */
                    public object: string;

                    /**
                     * Creates a new StartBackfillJobRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StartBackfillJobRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IStartBackfillJobRequest): google.cloud.datastream.v1.StartBackfillJobRequest;

                    /**
                     * Encodes the specified StartBackfillJobRequest message. Does not implicitly {@link google.cloud.datastream.v1.StartBackfillJobRequest.verify|verify} messages.
                     * @param message StartBackfillJobRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IStartBackfillJobRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StartBackfillJobRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.StartBackfillJobRequest.verify|verify} messages.
                     * @param message StartBackfillJobRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IStartBackfillJobRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StartBackfillJobRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StartBackfillJobRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.StartBackfillJobRequest;

                    /**
                     * Decodes a StartBackfillJobRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StartBackfillJobRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.StartBackfillJobRequest;

                    /**
                     * Verifies a StartBackfillJobRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StartBackfillJobRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StartBackfillJobRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.StartBackfillJobRequest;

                    /**
                     * Creates a plain object from a StartBackfillJobRequest message. Also converts values to other types if specified.
                     * @param message StartBackfillJobRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.StartBackfillJobRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StartBackfillJobRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StartBackfillJobRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StartBackfillJobResponse. */
                interface IStartBackfillJobResponse {

                    /** StartBackfillJobResponse object */
                    object?: (google.cloud.datastream.v1.IStreamObject|null);
                }

                /** Represents a StartBackfillJobResponse. */
                class StartBackfillJobResponse implements IStartBackfillJobResponse {

                    /**
                     * Constructs a new StartBackfillJobResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IStartBackfillJobResponse);

                    /** StartBackfillJobResponse object. */
                    public object?: (google.cloud.datastream.v1.IStreamObject|null);

                    /**
                     * Creates a new StartBackfillJobResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StartBackfillJobResponse instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IStartBackfillJobResponse): google.cloud.datastream.v1.StartBackfillJobResponse;

                    /**
                     * Encodes the specified StartBackfillJobResponse message. Does not implicitly {@link google.cloud.datastream.v1.StartBackfillJobResponse.verify|verify} messages.
                     * @param message StartBackfillJobResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IStartBackfillJobResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StartBackfillJobResponse message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.StartBackfillJobResponse.verify|verify} messages.
                     * @param message StartBackfillJobResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IStartBackfillJobResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StartBackfillJobResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StartBackfillJobResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.StartBackfillJobResponse;

                    /**
                     * Decodes a StartBackfillJobResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StartBackfillJobResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.StartBackfillJobResponse;

                    /**
                     * Verifies a StartBackfillJobResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StartBackfillJobResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StartBackfillJobResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.StartBackfillJobResponse;

                    /**
                     * Creates a plain object from a StartBackfillJobResponse message. Also converts values to other types if specified.
                     * @param message StartBackfillJobResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.StartBackfillJobResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StartBackfillJobResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StartBackfillJobResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StopBackfillJobRequest. */
                interface IStopBackfillJobRequest {

                    /** StopBackfillJobRequest object */
                    object?: (string|null);
                }

                /** Represents a StopBackfillJobRequest. */
                class StopBackfillJobRequest implements IStopBackfillJobRequest {

                    /**
                     * Constructs a new StopBackfillJobRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IStopBackfillJobRequest);

                    /** StopBackfillJobRequest object. */
                    public object: string;

                    /**
                     * Creates a new StopBackfillJobRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StopBackfillJobRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IStopBackfillJobRequest): google.cloud.datastream.v1.StopBackfillJobRequest;

                    /**
                     * Encodes the specified StopBackfillJobRequest message. Does not implicitly {@link google.cloud.datastream.v1.StopBackfillJobRequest.verify|verify} messages.
                     * @param message StopBackfillJobRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IStopBackfillJobRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StopBackfillJobRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.StopBackfillJobRequest.verify|verify} messages.
                     * @param message StopBackfillJobRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IStopBackfillJobRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StopBackfillJobRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StopBackfillJobRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.StopBackfillJobRequest;

                    /**
                     * Decodes a StopBackfillJobRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StopBackfillJobRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.StopBackfillJobRequest;

                    /**
                     * Verifies a StopBackfillJobRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StopBackfillJobRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StopBackfillJobRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.StopBackfillJobRequest;

                    /**
                     * Creates a plain object from a StopBackfillJobRequest message. Also converts values to other types if specified.
                     * @param message StopBackfillJobRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.StopBackfillJobRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StopBackfillJobRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StopBackfillJobRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StopBackfillJobResponse. */
                interface IStopBackfillJobResponse {

                    /** StopBackfillJobResponse object */
                    object?: (google.cloud.datastream.v1.IStreamObject|null);
                }

                /** Represents a StopBackfillJobResponse. */
                class StopBackfillJobResponse implements IStopBackfillJobResponse {

                    /**
                     * Constructs a new StopBackfillJobResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IStopBackfillJobResponse);

                    /** StopBackfillJobResponse object. */
                    public object?: (google.cloud.datastream.v1.IStreamObject|null);

                    /**
                     * Creates a new StopBackfillJobResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StopBackfillJobResponse instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IStopBackfillJobResponse): google.cloud.datastream.v1.StopBackfillJobResponse;

                    /**
                     * Encodes the specified StopBackfillJobResponse message. Does not implicitly {@link google.cloud.datastream.v1.StopBackfillJobResponse.verify|verify} messages.
                     * @param message StopBackfillJobResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IStopBackfillJobResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StopBackfillJobResponse message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.StopBackfillJobResponse.verify|verify} messages.
                     * @param message StopBackfillJobResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IStopBackfillJobResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StopBackfillJobResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StopBackfillJobResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.StopBackfillJobResponse;

                    /**
                     * Decodes a StopBackfillJobResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StopBackfillJobResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.StopBackfillJobResponse;

                    /**
                     * Verifies a StopBackfillJobResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StopBackfillJobResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StopBackfillJobResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.StopBackfillJobResponse;

                    /**
                     * Creates a plain object from a StopBackfillJobResponse message. Also converts values to other types if specified.
                     * @param message StopBackfillJobResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.StopBackfillJobResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StopBackfillJobResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StopBackfillJobResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListStreamObjectsRequest. */
                interface IListStreamObjectsRequest {

                    /** ListStreamObjectsRequest parent */
                    parent?: (string|null);

                    /** ListStreamObjectsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListStreamObjectsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a ListStreamObjectsRequest. */
                class ListStreamObjectsRequest implements IListStreamObjectsRequest {

                    /**
                     * Constructs a new ListStreamObjectsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IListStreamObjectsRequest);

                    /** ListStreamObjectsRequest parent. */
                    public parent: string;

                    /** ListStreamObjectsRequest pageSize. */
                    public pageSize: number;

                    /** ListStreamObjectsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new ListStreamObjectsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListStreamObjectsRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IListStreamObjectsRequest): google.cloud.datastream.v1.ListStreamObjectsRequest;

                    /**
                     * Encodes the specified ListStreamObjectsRequest message. Does not implicitly {@link google.cloud.datastream.v1.ListStreamObjectsRequest.verify|verify} messages.
                     * @param message ListStreamObjectsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IListStreamObjectsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListStreamObjectsRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.ListStreamObjectsRequest.verify|verify} messages.
                     * @param message ListStreamObjectsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IListStreamObjectsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListStreamObjectsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListStreamObjectsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.ListStreamObjectsRequest;

                    /**
                     * Decodes a ListStreamObjectsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListStreamObjectsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.ListStreamObjectsRequest;

                    /**
                     * Verifies a ListStreamObjectsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListStreamObjectsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListStreamObjectsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.ListStreamObjectsRequest;

                    /**
                     * Creates a plain object from a ListStreamObjectsRequest message. Also converts values to other types if specified.
                     * @param message ListStreamObjectsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.ListStreamObjectsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListStreamObjectsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListStreamObjectsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListStreamObjectsResponse. */
                interface IListStreamObjectsResponse {

                    /** ListStreamObjectsResponse streamObjects */
                    streamObjects?: (google.cloud.datastream.v1.IStreamObject[]|null);

                    /** ListStreamObjectsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListStreamObjectsResponse. */
                class ListStreamObjectsResponse implements IListStreamObjectsResponse {

                    /**
                     * Constructs a new ListStreamObjectsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IListStreamObjectsResponse);

                    /** ListStreamObjectsResponse streamObjects. */
                    public streamObjects: google.cloud.datastream.v1.IStreamObject[];

                    /** ListStreamObjectsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListStreamObjectsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListStreamObjectsResponse instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IListStreamObjectsResponse): google.cloud.datastream.v1.ListStreamObjectsResponse;

                    /**
                     * Encodes the specified ListStreamObjectsResponse message. Does not implicitly {@link google.cloud.datastream.v1.ListStreamObjectsResponse.verify|verify} messages.
                     * @param message ListStreamObjectsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IListStreamObjectsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListStreamObjectsResponse message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.ListStreamObjectsResponse.verify|verify} messages.
                     * @param message ListStreamObjectsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IListStreamObjectsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListStreamObjectsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListStreamObjectsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.ListStreamObjectsResponse;

                    /**
                     * Decodes a ListStreamObjectsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListStreamObjectsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.ListStreamObjectsResponse;

                    /**
                     * Verifies a ListStreamObjectsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListStreamObjectsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListStreamObjectsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.ListStreamObjectsResponse;

                    /**
                     * Creates a plain object from a ListStreamObjectsResponse message. Also converts values to other types if specified.
                     * @param message ListStreamObjectsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.ListStreamObjectsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListStreamObjectsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListStreamObjectsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OperationMetadata. */
                interface IOperationMetadata {

                    /** OperationMetadata createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** OperationMetadata endTime */
                    endTime?: (google.protobuf.ITimestamp|null);

                    /** OperationMetadata target */
                    target?: (string|null);

                    /** OperationMetadata verb */
                    verb?: (string|null);

                    /** OperationMetadata statusMessage */
                    statusMessage?: (string|null);

                    /** OperationMetadata requestedCancellation */
                    requestedCancellation?: (boolean|null);

                    /** OperationMetadata apiVersion */
                    apiVersion?: (string|null);

                    /** OperationMetadata validationResult */
                    validationResult?: (google.cloud.datastream.v1.IValidationResult|null);
                }

                /** Represents an OperationMetadata. */
                class OperationMetadata implements IOperationMetadata {

                    /**
                     * Constructs a new OperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IOperationMetadata);

                    /** OperationMetadata createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** OperationMetadata endTime. */
                    public endTime?: (google.protobuf.ITimestamp|null);

                    /** OperationMetadata target. */
                    public target: string;

                    /** OperationMetadata verb. */
                    public verb: string;

                    /** OperationMetadata statusMessage. */
                    public statusMessage: string;

                    /** OperationMetadata requestedCancellation. */
                    public requestedCancellation: boolean;

                    /** OperationMetadata apiVersion. */
                    public apiVersion: string;

                    /** OperationMetadata validationResult. */
                    public validationResult?: (google.cloud.datastream.v1.IValidationResult|null);

                    /**
                     * Creates a new OperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OperationMetadata instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IOperationMetadata): google.cloud.datastream.v1.OperationMetadata;

                    /**
                     * Encodes the specified OperationMetadata message. Does not implicitly {@link google.cloud.datastream.v1.OperationMetadata.verify|verify} messages.
                     * @param message OperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OperationMetadata message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.OperationMetadata.verify|verify} messages.
                     * @param message OperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OperationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.OperationMetadata;

                    /**
                     * Decodes an OperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OperationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.OperationMetadata;

                    /**
                     * Verifies an OperationMetadata message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.OperationMetadata;

                    /**
                     * Creates a plain object from an OperationMetadata message. Also converts values to other types if specified.
                     * @param message OperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.OperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreatePrivateConnectionRequest. */
                interface ICreatePrivateConnectionRequest {

                    /** CreatePrivateConnectionRequest parent */
                    parent?: (string|null);

                    /** CreatePrivateConnectionRequest privateConnectionId */
                    privateConnectionId?: (string|null);

                    /** CreatePrivateConnectionRequest privateConnection */
                    privateConnection?: (google.cloud.datastream.v1.IPrivateConnection|null);

                    /** CreatePrivateConnectionRequest requestId */
                    requestId?: (string|null);

                    /** CreatePrivateConnectionRequest force */
                    force?: (boolean|null);

                    /** CreatePrivateConnectionRequest validateOnly */
                    validateOnly?: (boolean|null);
                }

                /** Represents a CreatePrivateConnectionRequest. */
                class CreatePrivateConnectionRequest implements ICreatePrivateConnectionRequest {

                    /**
                     * Constructs a new CreatePrivateConnectionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ICreatePrivateConnectionRequest);

                    /** CreatePrivateConnectionRequest parent. */
                    public parent: string;

                    /** CreatePrivateConnectionRequest privateConnectionId. */
                    public privateConnectionId: string;

                    /** CreatePrivateConnectionRequest privateConnection. */
                    public privateConnection?: (google.cloud.datastream.v1.IPrivateConnection|null);

                    /** CreatePrivateConnectionRequest requestId. */
                    public requestId: string;

                    /** CreatePrivateConnectionRequest force. */
                    public force: boolean;

                    /** CreatePrivateConnectionRequest validateOnly. */
                    public validateOnly: boolean;

                    /**
                     * Creates a new CreatePrivateConnectionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreatePrivateConnectionRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ICreatePrivateConnectionRequest): google.cloud.datastream.v1.CreatePrivateConnectionRequest;

                    /**
                     * Encodes the specified CreatePrivateConnectionRequest message. Does not implicitly {@link google.cloud.datastream.v1.CreatePrivateConnectionRequest.verify|verify} messages.
                     * @param message CreatePrivateConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ICreatePrivateConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreatePrivateConnectionRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.CreatePrivateConnectionRequest.verify|verify} messages.
                     * @param message CreatePrivateConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ICreatePrivateConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreatePrivateConnectionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreatePrivateConnectionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.CreatePrivateConnectionRequest;

                    /**
                     * Decodes a CreatePrivateConnectionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreatePrivateConnectionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.CreatePrivateConnectionRequest;

                    /**
                     * Verifies a CreatePrivateConnectionRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreatePrivateConnectionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreatePrivateConnectionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.CreatePrivateConnectionRequest;

                    /**
                     * Creates a plain object from a CreatePrivateConnectionRequest message. Also converts values to other types if specified.
                     * @param message CreatePrivateConnectionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.CreatePrivateConnectionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreatePrivateConnectionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreatePrivateConnectionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPrivateConnectionsRequest. */
                interface IListPrivateConnectionsRequest {

                    /** ListPrivateConnectionsRequest parent */
                    parent?: (string|null);

                    /** ListPrivateConnectionsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListPrivateConnectionsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPrivateConnectionsRequest filter */
                    filter?: (string|null);

                    /** ListPrivateConnectionsRequest orderBy */
                    orderBy?: (string|null);
                }

                /** Represents a ListPrivateConnectionsRequest. */
                class ListPrivateConnectionsRequest implements IListPrivateConnectionsRequest {

                    /**
                     * Constructs a new ListPrivateConnectionsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IListPrivateConnectionsRequest);

                    /** ListPrivateConnectionsRequest parent. */
                    public parent: string;

                    /** ListPrivateConnectionsRequest pageSize. */
                    public pageSize: number;

                    /** ListPrivateConnectionsRequest pageToken. */
                    public pageToken: string;

                    /** ListPrivateConnectionsRequest filter. */
                    public filter: string;

                    /** ListPrivateConnectionsRequest orderBy. */
                    public orderBy: string;

                    /**
                     * Creates a new ListPrivateConnectionsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPrivateConnectionsRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IListPrivateConnectionsRequest): google.cloud.datastream.v1.ListPrivateConnectionsRequest;

                    /**
                     * Encodes the specified ListPrivateConnectionsRequest message. Does not implicitly {@link google.cloud.datastream.v1.ListPrivateConnectionsRequest.verify|verify} messages.
                     * @param message ListPrivateConnectionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IListPrivateConnectionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPrivateConnectionsRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.ListPrivateConnectionsRequest.verify|verify} messages.
                     * @param message ListPrivateConnectionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IListPrivateConnectionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPrivateConnectionsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPrivateConnectionsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.ListPrivateConnectionsRequest;

                    /**
                     * Decodes a ListPrivateConnectionsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPrivateConnectionsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.ListPrivateConnectionsRequest;

                    /**
                     * Verifies a ListPrivateConnectionsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPrivateConnectionsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPrivateConnectionsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.ListPrivateConnectionsRequest;

                    /**
                     * Creates a plain object from a ListPrivateConnectionsRequest message. Also converts values to other types if specified.
                     * @param message ListPrivateConnectionsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.ListPrivateConnectionsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPrivateConnectionsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPrivateConnectionsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPrivateConnectionsResponse. */
                interface IListPrivateConnectionsResponse {

                    /** ListPrivateConnectionsResponse privateConnections */
                    privateConnections?: (google.cloud.datastream.v1.IPrivateConnection[]|null);

                    /** ListPrivateConnectionsResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListPrivateConnectionsResponse unreachable */
                    unreachable?: (string[]|null);
                }

                /** Represents a ListPrivateConnectionsResponse. */
                class ListPrivateConnectionsResponse implements IListPrivateConnectionsResponse {

                    /**
                     * Constructs a new ListPrivateConnectionsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IListPrivateConnectionsResponse);

                    /** ListPrivateConnectionsResponse privateConnections. */
                    public privateConnections: google.cloud.datastream.v1.IPrivateConnection[];

                    /** ListPrivateConnectionsResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListPrivateConnectionsResponse unreachable. */
                    public unreachable: string[];

                    /**
                     * Creates a new ListPrivateConnectionsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPrivateConnectionsResponse instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IListPrivateConnectionsResponse): google.cloud.datastream.v1.ListPrivateConnectionsResponse;

                    /**
                     * Encodes the specified ListPrivateConnectionsResponse message. Does not implicitly {@link google.cloud.datastream.v1.ListPrivateConnectionsResponse.verify|verify} messages.
                     * @param message ListPrivateConnectionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IListPrivateConnectionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPrivateConnectionsResponse message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.ListPrivateConnectionsResponse.verify|verify} messages.
                     * @param message ListPrivateConnectionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IListPrivateConnectionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPrivateConnectionsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPrivateConnectionsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.ListPrivateConnectionsResponse;

                    /**
                     * Decodes a ListPrivateConnectionsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPrivateConnectionsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.ListPrivateConnectionsResponse;

                    /**
                     * Verifies a ListPrivateConnectionsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPrivateConnectionsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPrivateConnectionsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.ListPrivateConnectionsResponse;

                    /**
                     * Creates a plain object from a ListPrivateConnectionsResponse message. Also converts values to other types if specified.
                     * @param message ListPrivateConnectionsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.ListPrivateConnectionsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPrivateConnectionsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPrivateConnectionsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeletePrivateConnectionRequest. */
                interface IDeletePrivateConnectionRequest {

                    /** DeletePrivateConnectionRequest name */
                    name?: (string|null);

                    /** DeletePrivateConnectionRequest requestId */
                    requestId?: (string|null);

                    /** DeletePrivateConnectionRequest force */
                    force?: (boolean|null);
                }

                /** Represents a DeletePrivateConnectionRequest. */
                class DeletePrivateConnectionRequest implements IDeletePrivateConnectionRequest {

                    /**
                     * Constructs a new DeletePrivateConnectionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IDeletePrivateConnectionRequest);

                    /** DeletePrivateConnectionRequest name. */
                    public name: string;

                    /** DeletePrivateConnectionRequest requestId. */
                    public requestId: string;

                    /** DeletePrivateConnectionRequest force. */
                    public force: boolean;

                    /**
                     * Creates a new DeletePrivateConnectionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeletePrivateConnectionRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IDeletePrivateConnectionRequest): google.cloud.datastream.v1.DeletePrivateConnectionRequest;

                    /**
                     * Encodes the specified DeletePrivateConnectionRequest message. Does not implicitly {@link google.cloud.datastream.v1.DeletePrivateConnectionRequest.verify|verify} messages.
                     * @param message DeletePrivateConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IDeletePrivateConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeletePrivateConnectionRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.DeletePrivateConnectionRequest.verify|verify} messages.
                     * @param message DeletePrivateConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IDeletePrivateConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeletePrivateConnectionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeletePrivateConnectionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.DeletePrivateConnectionRequest;

                    /**
                     * Decodes a DeletePrivateConnectionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeletePrivateConnectionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.DeletePrivateConnectionRequest;

                    /**
                     * Verifies a DeletePrivateConnectionRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeletePrivateConnectionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeletePrivateConnectionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.DeletePrivateConnectionRequest;

                    /**
                     * Creates a plain object from a DeletePrivateConnectionRequest message. Also converts values to other types if specified.
                     * @param message DeletePrivateConnectionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.DeletePrivateConnectionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeletePrivateConnectionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeletePrivateConnectionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetPrivateConnectionRequest. */
                interface IGetPrivateConnectionRequest {

                    /** GetPrivateConnectionRequest name */
                    name?: (string|null);
                }

                /** Represents a GetPrivateConnectionRequest. */
                class GetPrivateConnectionRequest implements IGetPrivateConnectionRequest {

                    /**
                     * Constructs a new GetPrivateConnectionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IGetPrivateConnectionRequest);

                    /** GetPrivateConnectionRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetPrivateConnectionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetPrivateConnectionRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IGetPrivateConnectionRequest): google.cloud.datastream.v1.GetPrivateConnectionRequest;

                    /**
                     * Encodes the specified GetPrivateConnectionRequest message. Does not implicitly {@link google.cloud.datastream.v1.GetPrivateConnectionRequest.verify|verify} messages.
                     * @param message GetPrivateConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IGetPrivateConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetPrivateConnectionRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.GetPrivateConnectionRequest.verify|verify} messages.
                     * @param message GetPrivateConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IGetPrivateConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetPrivateConnectionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetPrivateConnectionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.GetPrivateConnectionRequest;

                    /**
                     * Decodes a GetPrivateConnectionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetPrivateConnectionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.GetPrivateConnectionRequest;

                    /**
                     * Verifies a GetPrivateConnectionRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetPrivateConnectionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetPrivateConnectionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.GetPrivateConnectionRequest;

                    /**
                     * Creates a plain object from a GetPrivateConnectionRequest message. Also converts values to other types if specified.
                     * @param message GetPrivateConnectionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.GetPrivateConnectionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetPrivateConnectionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetPrivateConnectionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateRouteRequest. */
                interface ICreateRouteRequest {

                    /** CreateRouteRequest parent */
                    parent?: (string|null);

                    /** CreateRouteRequest routeId */
                    routeId?: (string|null);

                    /** CreateRouteRequest route */
                    route?: (google.cloud.datastream.v1.IRoute|null);

                    /** CreateRouteRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a CreateRouteRequest. */
                class CreateRouteRequest implements ICreateRouteRequest {

                    /**
                     * Constructs a new CreateRouteRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ICreateRouteRequest);

                    /** CreateRouteRequest parent. */
                    public parent: string;

                    /** CreateRouteRequest routeId. */
                    public routeId: string;

                    /** CreateRouteRequest route. */
                    public route?: (google.cloud.datastream.v1.IRoute|null);

                    /** CreateRouteRequest requestId. */
                    public requestId: string;

                    /**
                     * Creates a new CreateRouteRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateRouteRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ICreateRouteRequest): google.cloud.datastream.v1.CreateRouteRequest;

                    /**
                     * Encodes the specified CreateRouteRequest message. Does not implicitly {@link google.cloud.datastream.v1.CreateRouteRequest.verify|verify} messages.
                     * @param message CreateRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ICreateRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateRouteRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.CreateRouteRequest.verify|verify} messages.
                     * @param message CreateRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ICreateRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateRouteRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.CreateRouteRequest;

                    /**
                     * Decodes a CreateRouteRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.CreateRouteRequest;

                    /**
                     * Verifies a CreateRouteRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateRouteRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateRouteRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.CreateRouteRequest;

                    /**
                     * Creates a plain object from a CreateRouteRequest message. Also converts values to other types if specified.
                     * @param message CreateRouteRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.CreateRouteRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateRouteRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateRouteRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRoutesRequest. */
                interface IListRoutesRequest {

                    /** ListRoutesRequest parent */
                    parent?: (string|null);

                    /** ListRoutesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListRoutesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRoutesRequest filter */
                    filter?: (string|null);

                    /** ListRoutesRequest orderBy */
                    orderBy?: (string|null);
                }

                /** Represents a ListRoutesRequest. */
                class ListRoutesRequest implements IListRoutesRequest {

                    /**
                     * Constructs a new ListRoutesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IListRoutesRequest);

                    /** ListRoutesRequest parent. */
                    public parent: string;

                    /** ListRoutesRequest pageSize. */
                    public pageSize: number;

                    /** ListRoutesRequest pageToken. */
                    public pageToken: string;

                    /** ListRoutesRequest filter. */
                    public filter: string;

                    /** ListRoutesRequest orderBy. */
                    public orderBy: string;

                    /**
                     * Creates a new ListRoutesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRoutesRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IListRoutesRequest): google.cloud.datastream.v1.ListRoutesRequest;

                    /**
                     * Encodes the specified ListRoutesRequest message. Does not implicitly {@link google.cloud.datastream.v1.ListRoutesRequest.verify|verify} messages.
                     * @param message ListRoutesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IListRoutesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRoutesRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.ListRoutesRequest.verify|verify} messages.
                     * @param message ListRoutesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IListRoutesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRoutesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRoutesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.ListRoutesRequest;

                    /**
                     * Decodes a ListRoutesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRoutesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.ListRoutesRequest;

                    /**
                     * Verifies a ListRoutesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRoutesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRoutesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.ListRoutesRequest;

                    /**
                     * Creates a plain object from a ListRoutesRequest message. Also converts values to other types if specified.
                     * @param message ListRoutesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.ListRoutesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRoutesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRoutesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRoutesResponse. */
                interface IListRoutesResponse {

                    /** ListRoutesResponse routes */
                    routes?: (google.cloud.datastream.v1.IRoute[]|null);

                    /** ListRoutesResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListRoutesResponse unreachable */
                    unreachable?: (string[]|null);
                }

                /** Represents a ListRoutesResponse. */
                class ListRoutesResponse implements IListRoutesResponse {

                    /**
                     * Constructs a new ListRoutesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IListRoutesResponse);

                    /** ListRoutesResponse routes. */
                    public routes: google.cloud.datastream.v1.IRoute[];

                    /** ListRoutesResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListRoutesResponse unreachable. */
                    public unreachable: string[];

                    /**
                     * Creates a new ListRoutesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRoutesResponse instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IListRoutesResponse): google.cloud.datastream.v1.ListRoutesResponse;

                    /**
                     * Encodes the specified ListRoutesResponse message. Does not implicitly {@link google.cloud.datastream.v1.ListRoutesResponse.verify|verify} messages.
                     * @param message ListRoutesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IListRoutesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRoutesResponse message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.ListRoutesResponse.verify|verify} messages.
                     * @param message ListRoutesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IListRoutesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRoutesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRoutesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.ListRoutesResponse;

                    /**
                     * Decodes a ListRoutesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRoutesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.ListRoutesResponse;

                    /**
                     * Verifies a ListRoutesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRoutesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRoutesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.ListRoutesResponse;

                    /**
                     * Creates a plain object from a ListRoutesResponse message. Also converts values to other types if specified.
                     * @param message ListRoutesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.ListRoutesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRoutesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRoutesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRouteRequest. */
                interface IDeleteRouteRequest {

                    /** DeleteRouteRequest name */
                    name?: (string|null);

                    /** DeleteRouteRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRouteRequest. */
                class DeleteRouteRequest implements IDeleteRouteRequest {

                    /**
                     * Constructs a new DeleteRouteRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IDeleteRouteRequest);

                    /** DeleteRouteRequest name. */
                    public name: string;

                    /** DeleteRouteRequest requestId. */
                    public requestId: string;

                    /**
                     * Creates a new DeleteRouteRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRouteRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IDeleteRouteRequest): google.cloud.datastream.v1.DeleteRouteRequest;

                    /**
                     * Encodes the specified DeleteRouteRequest message. Does not implicitly {@link google.cloud.datastream.v1.DeleteRouteRequest.verify|verify} messages.
                     * @param message DeleteRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IDeleteRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRouteRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.DeleteRouteRequest.verify|verify} messages.
                     * @param message DeleteRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IDeleteRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRouteRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.DeleteRouteRequest;

                    /**
                     * Decodes a DeleteRouteRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.DeleteRouteRequest;

                    /**
                     * Verifies a DeleteRouteRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRouteRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRouteRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.DeleteRouteRequest;

                    /**
                     * Creates a plain object from a DeleteRouteRequest message. Also converts values to other types if specified.
                     * @param message DeleteRouteRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.DeleteRouteRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRouteRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRouteRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRouteRequest. */
                interface IGetRouteRequest {

                    /** GetRouteRequest name */
                    name?: (string|null);
                }

                /** Represents a GetRouteRequest. */
                class GetRouteRequest implements IGetRouteRequest {

                    /**
                     * Constructs a new GetRouteRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IGetRouteRequest);

                    /** GetRouteRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetRouteRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRouteRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IGetRouteRequest): google.cloud.datastream.v1.GetRouteRequest;

                    /**
                     * Encodes the specified GetRouteRequest message. Does not implicitly {@link google.cloud.datastream.v1.GetRouteRequest.verify|verify} messages.
                     * @param message GetRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IGetRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRouteRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.GetRouteRequest.verify|verify} messages.
                     * @param message GetRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IGetRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRouteRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.GetRouteRequest;

                    /**
                     * Decodes a GetRouteRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.GetRouteRequest;

                    /**
                     * Verifies a GetRouteRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRouteRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRouteRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.GetRouteRequest;

                    /**
                     * Creates a plain object from a GetRouteRequest message. Also converts values to other types if specified.
                     * @param message GetRouteRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.GetRouteRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRouteRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRouteRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OracleProfile. */
                interface IOracleProfile {

                    /** OracleProfile hostname */
                    hostname?: (string|null);

                    /** OracleProfile port */
                    port?: (number|null);

                    /** OracleProfile username */
                    username?: (string|null);

                    /** OracleProfile password */
                    password?: (string|null);

                    /** OracleProfile databaseService */
                    databaseService?: (string|null);

                    /** OracleProfile connectionAttributes */
                    connectionAttributes?: ({ [k: string]: string }|null);

                    /** OracleProfile oracleSslConfig */
                    oracleSslConfig?: (google.cloud.datastream.v1.IOracleSslConfig|null);

                    /** OracleProfile oracleAsmConfig */
                    oracleAsmConfig?: (google.cloud.datastream.v1.IOracleAsmConfig|null);

                    /** OracleProfile secretManagerStoredPassword */
                    secretManagerStoredPassword?: (string|null);
                }

                /** Represents an OracleProfile. */
                class OracleProfile implements IOracleProfile {

                    /**
                     * Constructs a new OracleProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IOracleProfile);

                    /** OracleProfile hostname. */
                    public hostname: string;

                    /** OracleProfile port. */
                    public port: number;

                    /** OracleProfile username. */
                    public username: string;

                    /** OracleProfile password. */
                    public password: string;

                    /** OracleProfile databaseService. */
                    public databaseService: string;

                    /** OracleProfile connectionAttributes. */
                    public connectionAttributes: { [k: string]: string };

                    /** OracleProfile oracleSslConfig. */
                    public oracleSslConfig?: (google.cloud.datastream.v1.IOracleSslConfig|null);

                    /** OracleProfile oracleAsmConfig. */
                    public oracleAsmConfig?: (google.cloud.datastream.v1.IOracleAsmConfig|null);

                    /** OracleProfile secretManagerStoredPassword. */
                    public secretManagerStoredPassword: string;

                    /**
                     * Creates a new OracleProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OracleProfile instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IOracleProfile): google.cloud.datastream.v1.OracleProfile;

                    /**
                     * Encodes the specified OracleProfile message. Does not implicitly {@link google.cloud.datastream.v1.OracleProfile.verify|verify} messages.
                     * @param message OracleProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IOracleProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OracleProfile message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.OracleProfile.verify|verify} messages.
                     * @param message OracleProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IOracleProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OracleProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OracleProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.OracleProfile;

                    /**
                     * Decodes an OracleProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OracleProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.OracleProfile;

                    /**
                     * Verifies an OracleProfile message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OracleProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OracleProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.OracleProfile;

                    /**
                     * Creates a plain object from an OracleProfile message. Also converts values to other types if specified.
                     * @param message OracleProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.OracleProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OracleProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OracleProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OracleAsmConfig. */
                interface IOracleAsmConfig {

                    /** OracleAsmConfig hostname */
                    hostname?: (string|null);

                    /** OracleAsmConfig port */
                    port?: (number|null);

                    /** OracleAsmConfig username */
                    username?: (string|null);

                    /** OracleAsmConfig password */
                    password?: (string|null);

                    /** OracleAsmConfig asmService */
                    asmService?: (string|null);

                    /** OracleAsmConfig connectionAttributes */
                    connectionAttributes?: ({ [k: string]: string }|null);

                    /** OracleAsmConfig oracleSslConfig */
                    oracleSslConfig?: (google.cloud.datastream.v1.IOracleSslConfig|null);

                    /** OracleAsmConfig secretManagerStoredPassword */
                    secretManagerStoredPassword?: (string|null);
                }

                /** Represents an OracleAsmConfig. */
                class OracleAsmConfig implements IOracleAsmConfig {

                    /**
                     * Constructs a new OracleAsmConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IOracleAsmConfig);

                    /** OracleAsmConfig hostname. */
                    public hostname: string;

                    /** OracleAsmConfig port. */
                    public port: number;

                    /** OracleAsmConfig username. */
                    public username: string;

                    /** OracleAsmConfig password. */
                    public password: string;

                    /** OracleAsmConfig asmService. */
                    public asmService: string;

                    /** OracleAsmConfig connectionAttributes. */
                    public connectionAttributes: { [k: string]: string };

                    /** OracleAsmConfig oracleSslConfig. */
                    public oracleSslConfig?: (google.cloud.datastream.v1.IOracleSslConfig|null);

                    /** OracleAsmConfig secretManagerStoredPassword. */
                    public secretManagerStoredPassword: string;

                    /**
                     * Creates a new OracleAsmConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OracleAsmConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IOracleAsmConfig): google.cloud.datastream.v1.OracleAsmConfig;

                    /**
                     * Encodes the specified OracleAsmConfig message. Does not implicitly {@link google.cloud.datastream.v1.OracleAsmConfig.verify|verify} messages.
                     * @param message OracleAsmConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IOracleAsmConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OracleAsmConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.OracleAsmConfig.verify|verify} messages.
                     * @param message OracleAsmConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IOracleAsmConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OracleAsmConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OracleAsmConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.OracleAsmConfig;

                    /**
                     * Decodes an OracleAsmConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OracleAsmConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.OracleAsmConfig;

                    /**
                     * Verifies an OracleAsmConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OracleAsmConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OracleAsmConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.OracleAsmConfig;

                    /**
                     * Creates a plain object from an OracleAsmConfig message. Also converts values to other types if specified.
                     * @param message OracleAsmConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.OracleAsmConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OracleAsmConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OracleAsmConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MysqlProfile. */
                interface IMysqlProfile {

                    /** MysqlProfile hostname */
                    hostname?: (string|null);

                    /** MysqlProfile port */
                    port?: (number|null);

                    /** MysqlProfile username */
                    username?: (string|null);

                    /** MysqlProfile password */
                    password?: (string|null);

                    /** MysqlProfile sslConfig */
                    sslConfig?: (google.cloud.datastream.v1.IMysqlSslConfig|null);

                    /** MysqlProfile secretManagerStoredPassword */
                    secretManagerStoredPassword?: (string|null);
                }

                /** Represents a MysqlProfile. */
                class MysqlProfile implements IMysqlProfile {

                    /**
                     * Constructs a new MysqlProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IMysqlProfile);

                    /** MysqlProfile hostname. */
                    public hostname: string;

                    /** MysqlProfile port. */
                    public port: number;

                    /** MysqlProfile username. */
                    public username: string;

                    /** MysqlProfile password. */
                    public password: string;

                    /** MysqlProfile sslConfig. */
                    public sslConfig?: (google.cloud.datastream.v1.IMysqlSslConfig|null);

                    /** MysqlProfile secretManagerStoredPassword. */
                    public secretManagerStoredPassword: string;

                    /**
                     * Creates a new MysqlProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MysqlProfile instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IMysqlProfile): google.cloud.datastream.v1.MysqlProfile;

                    /**
                     * Encodes the specified MysqlProfile message. Does not implicitly {@link google.cloud.datastream.v1.MysqlProfile.verify|verify} messages.
                     * @param message MysqlProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IMysqlProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MysqlProfile message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MysqlProfile.verify|verify} messages.
                     * @param message MysqlProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IMysqlProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MysqlProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MysqlProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MysqlProfile;

                    /**
                     * Decodes a MysqlProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MysqlProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MysqlProfile;

                    /**
                     * Verifies a MysqlProfile message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MysqlProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MysqlProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MysqlProfile;

                    /**
                     * Creates a plain object from a MysqlProfile message. Also converts values to other types if specified.
                     * @param message MysqlProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.MysqlProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MysqlProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MysqlProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PostgresqlProfile. */
                interface IPostgresqlProfile {

                    /** PostgresqlProfile hostname */
                    hostname?: (string|null);

                    /** PostgresqlProfile port */
                    port?: (number|null);

                    /** PostgresqlProfile username */
                    username?: (string|null);

                    /** PostgresqlProfile password */
                    password?: (string|null);

                    /** PostgresqlProfile database */
                    database?: (string|null);

                    /** PostgresqlProfile secretManagerStoredPassword */
                    secretManagerStoredPassword?: (string|null);

                    /** PostgresqlProfile sslConfig */
                    sslConfig?: (google.cloud.datastream.v1.IPostgresqlSslConfig|null);
                }

                /** Represents a PostgresqlProfile. */
                class PostgresqlProfile implements IPostgresqlProfile {

                    /**
                     * Constructs a new PostgresqlProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IPostgresqlProfile);

                    /** PostgresqlProfile hostname. */
                    public hostname: string;

                    /** PostgresqlProfile port. */
                    public port: number;

                    /** PostgresqlProfile username. */
                    public username: string;

                    /** PostgresqlProfile password. */
                    public password: string;

                    /** PostgresqlProfile database. */
                    public database: string;

                    /** PostgresqlProfile secretManagerStoredPassword. */
                    public secretManagerStoredPassword: string;

                    /** PostgresqlProfile sslConfig. */
                    public sslConfig?: (google.cloud.datastream.v1.IPostgresqlSslConfig|null);

                    /**
                     * Creates a new PostgresqlProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PostgresqlProfile instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IPostgresqlProfile): google.cloud.datastream.v1.PostgresqlProfile;

                    /**
                     * Encodes the specified PostgresqlProfile message. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlProfile.verify|verify} messages.
                     * @param message PostgresqlProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IPostgresqlProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PostgresqlProfile message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlProfile.verify|verify} messages.
                     * @param message PostgresqlProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IPostgresqlProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PostgresqlProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PostgresqlProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.PostgresqlProfile;

                    /**
                     * Decodes a PostgresqlProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PostgresqlProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.PostgresqlProfile;

                    /**
                     * Verifies a PostgresqlProfile message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PostgresqlProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PostgresqlProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.PostgresqlProfile;

                    /**
                     * Creates a plain object from a PostgresqlProfile message. Also converts values to other types if specified.
                     * @param message PostgresqlProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.PostgresqlProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PostgresqlProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PostgresqlProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SqlServerProfile. */
                interface ISqlServerProfile {

                    /** SqlServerProfile hostname */
                    hostname?: (string|null);

                    /** SqlServerProfile port */
                    port?: (number|null);

                    /** SqlServerProfile username */
                    username?: (string|null);

                    /** SqlServerProfile password */
                    password?: (string|null);

                    /** SqlServerProfile database */
                    database?: (string|null);

                    /** SqlServerProfile secretManagerStoredPassword */
                    secretManagerStoredPassword?: (string|null);
                }

                /** Represents a SqlServerProfile. */
                class SqlServerProfile implements ISqlServerProfile {

                    /**
                     * Constructs a new SqlServerProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ISqlServerProfile);

                    /** SqlServerProfile hostname. */
                    public hostname: string;

                    /** SqlServerProfile port. */
                    public port: number;

                    /** SqlServerProfile username. */
                    public username: string;

                    /** SqlServerProfile password. */
                    public password: string;

                    /** SqlServerProfile database. */
                    public database: string;

                    /** SqlServerProfile secretManagerStoredPassword. */
                    public secretManagerStoredPassword: string;

                    /**
                     * Creates a new SqlServerProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SqlServerProfile instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ISqlServerProfile): google.cloud.datastream.v1.SqlServerProfile;

                    /**
                     * Encodes the specified SqlServerProfile message. Does not implicitly {@link google.cloud.datastream.v1.SqlServerProfile.verify|verify} messages.
                     * @param message SqlServerProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ISqlServerProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SqlServerProfile message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SqlServerProfile.verify|verify} messages.
                     * @param message SqlServerProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ISqlServerProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SqlServerProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SqlServerProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SqlServerProfile;

                    /**
                     * Decodes a SqlServerProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SqlServerProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SqlServerProfile;

                    /**
                     * Verifies a SqlServerProfile message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SqlServerProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SqlServerProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SqlServerProfile;

                    /**
                     * Creates a plain object from a SqlServerProfile message. Also converts values to other types if specified.
                     * @param message SqlServerProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.SqlServerProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SqlServerProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SqlServerProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SalesforceProfile. */
                interface ISalesforceProfile {

                    /** SalesforceProfile domain */
                    domain?: (string|null);

                    /** SalesforceProfile userCredentials */
                    userCredentials?: (google.cloud.datastream.v1.SalesforceProfile.IUserCredentials|null);

                    /** SalesforceProfile oauth2ClientCredentials */
                    oauth2ClientCredentials?: (google.cloud.datastream.v1.SalesforceProfile.IOauth2ClientCredentials|null);
                }

                /** Represents a SalesforceProfile. */
                class SalesforceProfile implements ISalesforceProfile {

                    /**
                     * Constructs a new SalesforceProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ISalesforceProfile);

                    /** SalesforceProfile domain. */
                    public domain: string;

                    /** SalesforceProfile userCredentials. */
                    public userCredentials?: (google.cloud.datastream.v1.SalesforceProfile.IUserCredentials|null);

                    /** SalesforceProfile oauth2ClientCredentials. */
                    public oauth2ClientCredentials?: (google.cloud.datastream.v1.SalesforceProfile.IOauth2ClientCredentials|null);

                    /** SalesforceProfile credentials. */
                    public credentials?: ("userCredentials"|"oauth2ClientCredentials");

                    /**
                     * Creates a new SalesforceProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SalesforceProfile instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ISalesforceProfile): google.cloud.datastream.v1.SalesforceProfile;

                    /**
                     * Encodes the specified SalesforceProfile message. Does not implicitly {@link google.cloud.datastream.v1.SalesforceProfile.verify|verify} messages.
                     * @param message SalesforceProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ISalesforceProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SalesforceProfile message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SalesforceProfile.verify|verify} messages.
                     * @param message SalesforceProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ISalesforceProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SalesforceProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SalesforceProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SalesforceProfile;

                    /**
                     * Decodes a SalesforceProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SalesforceProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SalesforceProfile;

                    /**
                     * Verifies a SalesforceProfile message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SalesforceProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SalesforceProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SalesforceProfile;

                    /**
                     * Creates a plain object from a SalesforceProfile message. Also converts values to other types if specified.
                     * @param message SalesforceProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.SalesforceProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SalesforceProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SalesforceProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SalesforceProfile {

                    /** Properties of a UserCredentials. */
                    interface IUserCredentials {

                        /** UserCredentials username */
                        username?: (string|null);

                        /** UserCredentials password */
                        password?: (string|null);

                        /** UserCredentials securityToken */
                        securityToken?: (string|null);

                        /** UserCredentials secretManagerStoredPassword */
                        secretManagerStoredPassword?: (string|null);

                        /** UserCredentials secretManagerStoredSecurityToken */
                        secretManagerStoredSecurityToken?: (string|null);
                    }

                    /** Represents a UserCredentials. */
                    class UserCredentials implements IUserCredentials {

                        /**
                         * Constructs a new UserCredentials.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.SalesforceProfile.IUserCredentials);

                        /** UserCredentials username. */
                        public username: string;

                        /** UserCredentials password. */
                        public password: string;

                        /** UserCredentials securityToken. */
                        public securityToken: string;

                        /** UserCredentials secretManagerStoredPassword. */
                        public secretManagerStoredPassword: string;

                        /** UserCredentials secretManagerStoredSecurityToken. */
                        public secretManagerStoredSecurityToken: string;

                        /**
                         * Creates a new UserCredentials instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns UserCredentials instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.SalesforceProfile.IUserCredentials): google.cloud.datastream.v1.SalesforceProfile.UserCredentials;

                        /**
                         * Encodes the specified UserCredentials message. Does not implicitly {@link google.cloud.datastream.v1.SalesforceProfile.UserCredentials.verify|verify} messages.
                         * @param message UserCredentials message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.SalesforceProfile.IUserCredentials, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified UserCredentials message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SalesforceProfile.UserCredentials.verify|verify} messages.
                         * @param message UserCredentials message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.SalesforceProfile.IUserCredentials, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a UserCredentials message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns UserCredentials
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SalesforceProfile.UserCredentials;

                        /**
                         * Decodes a UserCredentials message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns UserCredentials
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SalesforceProfile.UserCredentials;

                        /**
                         * Verifies a UserCredentials message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a UserCredentials message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns UserCredentials
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SalesforceProfile.UserCredentials;

                        /**
                         * Creates a plain object from a UserCredentials message. Also converts values to other types if specified.
                         * @param message UserCredentials
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.SalesforceProfile.UserCredentials, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this UserCredentials to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for UserCredentials
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an Oauth2ClientCredentials. */
                    interface IOauth2ClientCredentials {

                        /** Oauth2ClientCredentials clientId */
                        clientId?: (string|null);

                        /** Oauth2ClientCredentials clientSecret */
                        clientSecret?: (string|null);

                        /** Oauth2ClientCredentials secretManagerStoredClientSecret */
                        secretManagerStoredClientSecret?: (string|null);
                    }

                    /** Represents an Oauth2ClientCredentials. */
                    class Oauth2ClientCredentials implements IOauth2ClientCredentials {

                        /**
                         * Constructs a new Oauth2ClientCredentials.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.SalesforceProfile.IOauth2ClientCredentials);

                        /** Oauth2ClientCredentials clientId. */
                        public clientId: string;

                        /** Oauth2ClientCredentials clientSecret. */
                        public clientSecret: string;

                        /** Oauth2ClientCredentials secretManagerStoredClientSecret. */
                        public secretManagerStoredClientSecret: string;

                        /**
                         * Creates a new Oauth2ClientCredentials instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Oauth2ClientCredentials instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.SalesforceProfile.IOauth2ClientCredentials): google.cloud.datastream.v1.SalesforceProfile.Oauth2ClientCredentials;

                        /**
                         * Encodes the specified Oauth2ClientCredentials message. Does not implicitly {@link google.cloud.datastream.v1.SalesforceProfile.Oauth2ClientCredentials.verify|verify} messages.
                         * @param message Oauth2ClientCredentials message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.SalesforceProfile.IOauth2ClientCredentials, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Oauth2ClientCredentials message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SalesforceProfile.Oauth2ClientCredentials.verify|verify} messages.
                         * @param message Oauth2ClientCredentials message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.SalesforceProfile.IOauth2ClientCredentials, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Oauth2ClientCredentials message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Oauth2ClientCredentials
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SalesforceProfile.Oauth2ClientCredentials;

                        /**
                         * Decodes an Oauth2ClientCredentials message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Oauth2ClientCredentials
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SalesforceProfile.Oauth2ClientCredentials;

                        /**
                         * Verifies an Oauth2ClientCredentials message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an Oauth2ClientCredentials message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Oauth2ClientCredentials
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SalesforceProfile.Oauth2ClientCredentials;

                        /**
                         * Creates a plain object from an Oauth2ClientCredentials message. Also converts values to other types if specified.
                         * @param message Oauth2ClientCredentials
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.SalesforceProfile.Oauth2ClientCredentials, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Oauth2ClientCredentials to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Oauth2ClientCredentials
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a MongodbProfile. */
                interface IMongodbProfile {

                    /** MongodbProfile hostAddresses */
                    hostAddresses?: (google.cloud.datastream.v1.IHostAddress[]|null);

                    /** MongodbProfile replicaSet */
                    replicaSet?: (string|null);

                    /** MongodbProfile username */
                    username?: (string|null);

                    /** MongodbProfile password */
                    password?: (string|null);

                    /** MongodbProfile secretManagerStoredPassword */
                    secretManagerStoredPassword?: (string|null);

                    /** MongodbProfile sslConfig */
                    sslConfig?: (google.cloud.datastream.v1.IMongodbSslConfig|null);

                    /** MongodbProfile srvConnectionFormat */
                    srvConnectionFormat?: (google.cloud.datastream.v1.ISrvConnectionFormat|null);

                    /** MongodbProfile standardConnectionFormat */
                    standardConnectionFormat?: (google.cloud.datastream.v1.IStandardConnectionFormat|null);
                }

                /** Represents a MongodbProfile. */
                class MongodbProfile implements IMongodbProfile {

                    /**
                     * Constructs a new MongodbProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IMongodbProfile);

                    /** MongodbProfile hostAddresses. */
                    public hostAddresses: google.cloud.datastream.v1.IHostAddress[];

                    /** MongodbProfile replicaSet. */
                    public replicaSet: string;

                    /** MongodbProfile username. */
                    public username: string;

                    /** MongodbProfile password. */
                    public password: string;

                    /** MongodbProfile secretManagerStoredPassword. */
                    public secretManagerStoredPassword: string;

                    /** MongodbProfile sslConfig. */
                    public sslConfig?: (google.cloud.datastream.v1.IMongodbSslConfig|null);

                    /** MongodbProfile srvConnectionFormat. */
                    public srvConnectionFormat?: (google.cloud.datastream.v1.ISrvConnectionFormat|null);

                    /** MongodbProfile standardConnectionFormat. */
                    public standardConnectionFormat?: (google.cloud.datastream.v1.IStandardConnectionFormat|null);

                    /** MongodbProfile mongodbConnectionFormat. */
                    public mongodbConnectionFormat?: ("srvConnectionFormat"|"standardConnectionFormat");

                    /**
                     * Creates a new MongodbProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MongodbProfile instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IMongodbProfile): google.cloud.datastream.v1.MongodbProfile;

                    /**
                     * Encodes the specified MongodbProfile message. Does not implicitly {@link google.cloud.datastream.v1.MongodbProfile.verify|verify} messages.
                     * @param message MongodbProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IMongodbProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MongodbProfile message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MongodbProfile.verify|verify} messages.
                     * @param message MongodbProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IMongodbProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MongodbProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MongodbProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MongodbProfile;

                    /**
                     * Decodes a MongodbProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MongodbProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MongodbProfile;

                    /**
                     * Verifies a MongodbProfile message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MongodbProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MongodbProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MongodbProfile;

                    /**
                     * Creates a plain object from a MongodbProfile message. Also converts values to other types if specified.
                     * @param message MongodbProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.MongodbProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MongodbProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MongodbProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HostAddress. */
                interface IHostAddress {

                    /** HostAddress hostname */
                    hostname?: (string|null);

                    /** HostAddress port */
                    port?: (number|null);
                }

                /** Represents a HostAddress. */
                class HostAddress implements IHostAddress {

                    /**
                     * Constructs a new HostAddress.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IHostAddress);

                    /** HostAddress hostname. */
                    public hostname: string;

                    /** HostAddress port. */
                    public port: number;

                    /**
                     * Creates a new HostAddress instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HostAddress instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IHostAddress): google.cloud.datastream.v1.HostAddress;

                    /**
                     * Encodes the specified HostAddress message. Does not implicitly {@link google.cloud.datastream.v1.HostAddress.verify|verify} messages.
                     * @param message HostAddress message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IHostAddress, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HostAddress message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.HostAddress.verify|verify} messages.
                     * @param message HostAddress message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IHostAddress, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HostAddress message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HostAddress
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.HostAddress;

                    /**
                     * Decodes a HostAddress message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HostAddress
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.HostAddress;

                    /**
                     * Verifies a HostAddress message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HostAddress message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HostAddress
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.HostAddress;

                    /**
                     * Creates a plain object from a HostAddress message. Also converts values to other types if specified.
                     * @param message HostAddress
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.HostAddress, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HostAddress to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HostAddress
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SrvConnectionFormat. */
                interface ISrvConnectionFormat {
                }

                /** Represents a SrvConnectionFormat. */
                class SrvConnectionFormat implements ISrvConnectionFormat {

                    /**
                     * Constructs a new SrvConnectionFormat.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ISrvConnectionFormat);

                    /**
                     * Creates a new SrvConnectionFormat instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SrvConnectionFormat instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ISrvConnectionFormat): google.cloud.datastream.v1.SrvConnectionFormat;

                    /**
                     * Encodes the specified SrvConnectionFormat message. Does not implicitly {@link google.cloud.datastream.v1.SrvConnectionFormat.verify|verify} messages.
                     * @param message SrvConnectionFormat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ISrvConnectionFormat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SrvConnectionFormat message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SrvConnectionFormat.verify|verify} messages.
                     * @param message SrvConnectionFormat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ISrvConnectionFormat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SrvConnectionFormat message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SrvConnectionFormat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SrvConnectionFormat;

                    /**
                     * Decodes a SrvConnectionFormat message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SrvConnectionFormat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SrvConnectionFormat;

                    /**
                     * Verifies a SrvConnectionFormat message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SrvConnectionFormat message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SrvConnectionFormat
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SrvConnectionFormat;

                    /**
                     * Creates a plain object from a SrvConnectionFormat message. Also converts values to other types if specified.
                     * @param message SrvConnectionFormat
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.SrvConnectionFormat, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SrvConnectionFormat to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SrvConnectionFormat
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StandardConnectionFormat. */
                interface IStandardConnectionFormat {

                    /** StandardConnectionFormat directConnection */
                    directConnection?: (boolean|null);
                }

                /** Represents a StandardConnectionFormat. */
                class StandardConnectionFormat implements IStandardConnectionFormat {

                    /**
                     * Constructs a new StandardConnectionFormat.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IStandardConnectionFormat);

                    /** StandardConnectionFormat directConnection. */
                    public directConnection: boolean;

                    /**
                     * Creates a new StandardConnectionFormat instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StandardConnectionFormat instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IStandardConnectionFormat): google.cloud.datastream.v1.StandardConnectionFormat;

                    /**
                     * Encodes the specified StandardConnectionFormat message. Does not implicitly {@link google.cloud.datastream.v1.StandardConnectionFormat.verify|verify} messages.
                     * @param message StandardConnectionFormat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IStandardConnectionFormat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StandardConnectionFormat message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.StandardConnectionFormat.verify|verify} messages.
                     * @param message StandardConnectionFormat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IStandardConnectionFormat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StandardConnectionFormat message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StandardConnectionFormat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.StandardConnectionFormat;

                    /**
                     * Decodes a StandardConnectionFormat message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StandardConnectionFormat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.StandardConnectionFormat;

                    /**
                     * Verifies a StandardConnectionFormat message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StandardConnectionFormat message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StandardConnectionFormat
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.StandardConnectionFormat;

                    /**
                     * Creates a plain object from a StandardConnectionFormat message. Also converts values to other types if specified.
                     * @param message StandardConnectionFormat
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.StandardConnectionFormat, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StandardConnectionFormat to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StandardConnectionFormat
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GcsProfile. */
                interface IGcsProfile {

                    /** GcsProfile bucket */
                    bucket?: (string|null);

                    /** GcsProfile rootPath */
                    rootPath?: (string|null);
                }

                /** Represents a GcsProfile. */
                class GcsProfile implements IGcsProfile {

                    /**
                     * Constructs a new GcsProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IGcsProfile);

                    /** GcsProfile bucket. */
                    public bucket: string;

                    /** GcsProfile rootPath. */
                    public rootPath: string;

                    /**
                     * Creates a new GcsProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GcsProfile instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IGcsProfile): google.cloud.datastream.v1.GcsProfile;

                    /**
                     * Encodes the specified GcsProfile message. Does not implicitly {@link google.cloud.datastream.v1.GcsProfile.verify|verify} messages.
                     * @param message GcsProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IGcsProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GcsProfile message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.GcsProfile.verify|verify} messages.
                     * @param message GcsProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IGcsProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GcsProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GcsProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.GcsProfile;

                    /**
                     * Decodes a GcsProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GcsProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.GcsProfile;

                    /**
                     * Verifies a GcsProfile message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GcsProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GcsProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.GcsProfile;

                    /**
                     * Creates a plain object from a GcsProfile message. Also converts values to other types if specified.
                     * @param message GcsProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.GcsProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GcsProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GcsProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BigQueryProfile. */
                interface IBigQueryProfile {
                }

                /** Represents a BigQueryProfile. */
                class BigQueryProfile implements IBigQueryProfile {

                    /**
                     * Constructs a new BigQueryProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IBigQueryProfile);

                    /**
                     * Creates a new BigQueryProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BigQueryProfile instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IBigQueryProfile): google.cloud.datastream.v1.BigQueryProfile;

                    /**
                     * Encodes the specified BigQueryProfile message. Does not implicitly {@link google.cloud.datastream.v1.BigQueryProfile.verify|verify} messages.
                     * @param message BigQueryProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IBigQueryProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BigQueryProfile message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.BigQueryProfile.verify|verify} messages.
                     * @param message BigQueryProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IBigQueryProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BigQueryProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BigQueryProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.BigQueryProfile;

                    /**
                     * Decodes a BigQueryProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BigQueryProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.BigQueryProfile;

                    /**
                     * Verifies a BigQueryProfile message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BigQueryProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BigQueryProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.BigQueryProfile;

                    /**
                     * Creates a plain object from a BigQueryProfile message. Also converts values to other types if specified.
                     * @param message BigQueryProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.BigQueryProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BigQueryProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BigQueryProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StaticServiceIpConnectivity. */
                interface IStaticServiceIpConnectivity {
                }

                /** Represents a StaticServiceIpConnectivity. */
                class StaticServiceIpConnectivity implements IStaticServiceIpConnectivity {

                    /**
                     * Constructs a new StaticServiceIpConnectivity.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IStaticServiceIpConnectivity);

                    /**
                     * Creates a new StaticServiceIpConnectivity instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StaticServiceIpConnectivity instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IStaticServiceIpConnectivity): google.cloud.datastream.v1.StaticServiceIpConnectivity;

                    /**
                     * Encodes the specified StaticServiceIpConnectivity message. Does not implicitly {@link google.cloud.datastream.v1.StaticServiceIpConnectivity.verify|verify} messages.
                     * @param message StaticServiceIpConnectivity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IStaticServiceIpConnectivity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StaticServiceIpConnectivity message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.StaticServiceIpConnectivity.verify|verify} messages.
                     * @param message StaticServiceIpConnectivity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IStaticServiceIpConnectivity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StaticServiceIpConnectivity message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StaticServiceIpConnectivity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.StaticServiceIpConnectivity;

                    /**
                     * Decodes a StaticServiceIpConnectivity message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StaticServiceIpConnectivity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.StaticServiceIpConnectivity;

                    /**
                     * Verifies a StaticServiceIpConnectivity message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StaticServiceIpConnectivity message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StaticServiceIpConnectivity
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.StaticServiceIpConnectivity;

                    /**
                     * Creates a plain object from a StaticServiceIpConnectivity message. Also converts values to other types if specified.
                     * @param message StaticServiceIpConnectivity
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.StaticServiceIpConnectivity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StaticServiceIpConnectivity to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StaticServiceIpConnectivity
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ForwardSshTunnelConnectivity. */
                interface IForwardSshTunnelConnectivity {

                    /** ForwardSshTunnelConnectivity hostname */
                    hostname?: (string|null);

                    /** ForwardSshTunnelConnectivity username */
                    username?: (string|null);

                    /** ForwardSshTunnelConnectivity port */
                    port?: (number|null);

                    /** ForwardSshTunnelConnectivity password */
                    password?: (string|null);

                    /** ForwardSshTunnelConnectivity privateKey */
                    privateKey?: (string|null);
                }

                /** Represents a ForwardSshTunnelConnectivity. */
                class ForwardSshTunnelConnectivity implements IForwardSshTunnelConnectivity {

                    /**
                     * Constructs a new ForwardSshTunnelConnectivity.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IForwardSshTunnelConnectivity);

                    /** ForwardSshTunnelConnectivity hostname. */
                    public hostname: string;

                    /** ForwardSshTunnelConnectivity username. */
                    public username: string;

                    /** ForwardSshTunnelConnectivity port. */
                    public port: number;

                    /** ForwardSshTunnelConnectivity password. */
                    public password?: (string|null);

                    /** ForwardSshTunnelConnectivity privateKey. */
                    public privateKey?: (string|null);

                    /** ForwardSshTunnelConnectivity authenticationMethod. */
                    public authenticationMethod?: ("password"|"privateKey");

                    /**
                     * Creates a new ForwardSshTunnelConnectivity instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ForwardSshTunnelConnectivity instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IForwardSshTunnelConnectivity): google.cloud.datastream.v1.ForwardSshTunnelConnectivity;

                    /**
                     * Encodes the specified ForwardSshTunnelConnectivity message. Does not implicitly {@link google.cloud.datastream.v1.ForwardSshTunnelConnectivity.verify|verify} messages.
                     * @param message ForwardSshTunnelConnectivity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IForwardSshTunnelConnectivity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ForwardSshTunnelConnectivity message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.ForwardSshTunnelConnectivity.verify|verify} messages.
                     * @param message ForwardSshTunnelConnectivity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IForwardSshTunnelConnectivity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ForwardSshTunnelConnectivity message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ForwardSshTunnelConnectivity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.ForwardSshTunnelConnectivity;

                    /**
                     * Decodes a ForwardSshTunnelConnectivity message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ForwardSshTunnelConnectivity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.ForwardSshTunnelConnectivity;

                    /**
                     * Verifies a ForwardSshTunnelConnectivity message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ForwardSshTunnelConnectivity message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ForwardSshTunnelConnectivity
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.ForwardSshTunnelConnectivity;

                    /**
                     * Creates a plain object from a ForwardSshTunnelConnectivity message. Also converts values to other types if specified.
                     * @param message ForwardSshTunnelConnectivity
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.ForwardSshTunnelConnectivity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ForwardSshTunnelConnectivity to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ForwardSshTunnelConnectivity
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpcPeeringConfig. */
                interface IVpcPeeringConfig {

                    /** VpcPeeringConfig vpc */
                    vpc?: (string|null);

                    /** VpcPeeringConfig subnet */
                    subnet?: (string|null);
                }

                /** Represents a VpcPeeringConfig. */
                class VpcPeeringConfig implements IVpcPeeringConfig {

                    /**
                     * Constructs a new VpcPeeringConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IVpcPeeringConfig);

                    /** VpcPeeringConfig vpc. */
                    public vpc: string;

                    /** VpcPeeringConfig subnet. */
                    public subnet: string;

                    /**
                     * Creates a new VpcPeeringConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpcPeeringConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IVpcPeeringConfig): google.cloud.datastream.v1.VpcPeeringConfig;

                    /**
                     * Encodes the specified VpcPeeringConfig message. Does not implicitly {@link google.cloud.datastream.v1.VpcPeeringConfig.verify|verify} messages.
                     * @param message VpcPeeringConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IVpcPeeringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpcPeeringConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.VpcPeeringConfig.verify|verify} messages.
                     * @param message VpcPeeringConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IVpcPeeringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpcPeeringConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpcPeeringConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.VpcPeeringConfig;

                    /**
                     * Decodes a VpcPeeringConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpcPeeringConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.VpcPeeringConfig;

                    /**
                     * Verifies a VpcPeeringConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpcPeeringConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpcPeeringConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.VpcPeeringConfig;

                    /**
                     * Creates a plain object from a VpcPeeringConfig message. Also converts values to other types if specified.
                     * @param message VpcPeeringConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.VpcPeeringConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpcPeeringConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpcPeeringConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PscInterfaceConfig. */
                interface IPscInterfaceConfig {

                    /** PscInterfaceConfig networkAttachment */
                    networkAttachment?: (string|null);
                }

                /** Represents a PscInterfaceConfig. */
                class PscInterfaceConfig implements IPscInterfaceConfig {

                    /**
                     * Constructs a new PscInterfaceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IPscInterfaceConfig);

                    /** PscInterfaceConfig networkAttachment. */
                    public networkAttachment: string;

                    /**
                     * Creates a new PscInterfaceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PscInterfaceConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IPscInterfaceConfig): google.cloud.datastream.v1.PscInterfaceConfig;

                    /**
                     * Encodes the specified PscInterfaceConfig message. Does not implicitly {@link google.cloud.datastream.v1.PscInterfaceConfig.verify|verify} messages.
                     * @param message PscInterfaceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IPscInterfaceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PscInterfaceConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.PscInterfaceConfig.verify|verify} messages.
                     * @param message PscInterfaceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IPscInterfaceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PscInterfaceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PscInterfaceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.PscInterfaceConfig;

                    /**
                     * Decodes a PscInterfaceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PscInterfaceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.PscInterfaceConfig;

                    /**
                     * Verifies a PscInterfaceConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PscInterfaceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PscInterfaceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.PscInterfaceConfig;

                    /**
                     * Creates a plain object from a PscInterfaceConfig message. Also converts values to other types if specified.
                     * @param message PscInterfaceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.PscInterfaceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PscInterfaceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PscInterfaceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PrivateConnection. */
                interface IPrivateConnection {

                    /** PrivateConnection name */
                    name?: (string|null);

                    /** PrivateConnection createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** PrivateConnection updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** PrivateConnection labels */
                    labels?: ({ [k: string]: string }|null);

                    /** PrivateConnection displayName */
                    displayName?: (string|null);

                    /** PrivateConnection state */
                    state?: (google.cloud.datastream.v1.PrivateConnection.State|keyof typeof google.cloud.datastream.v1.PrivateConnection.State|null);

                    /** PrivateConnection error */
                    error?: (google.cloud.datastream.v1.IError|null);

                    /** PrivateConnection satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** PrivateConnection satisfiesPzi */
                    satisfiesPzi?: (boolean|null);

                    /** PrivateConnection vpcPeeringConfig */
                    vpcPeeringConfig?: (google.cloud.datastream.v1.IVpcPeeringConfig|null);

                    /** PrivateConnection pscInterfaceConfig */
                    pscInterfaceConfig?: (google.cloud.datastream.v1.IPscInterfaceConfig|null);
                }

                /** Represents a PrivateConnection. */
                class PrivateConnection implements IPrivateConnection {

                    /**
                     * Constructs a new PrivateConnection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IPrivateConnection);

                    /** PrivateConnection name. */
                    public name: string;

                    /** PrivateConnection createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** PrivateConnection updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** PrivateConnection labels. */
                    public labels: { [k: string]: string };

                    /** PrivateConnection displayName. */
                    public displayName: string;

                    /** PrivateConnection state. */
                    public state: (google.cloud.datastream.v1.PrivateConnection.State|keyof typeof google.cloud.datastream.v1.PrivateConnection.State);

                    /** PrivateConnection error. */
                    public error?: (google.cloud.datastream.v1.IError|null);

                    /** PrivateConnection satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** PrivateConnection satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** PrivateConnection vpcPeeringConfig. */
                    public vpcPeeringConfig?: (google.cloud.datastream.v1.IVpcPeeringConfig|null);

                    /** PrivateConnection pscInterfaceConfig. */
                    public pscInterfaceConfig?: (google.cloud.datastream.v1.IPscInterfaceConfig|null);

                    /**
                     * Creates a new PrivateConnection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PrivateConnection instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IPrivateConnection): google.cloud.datastream.v1.PrivateConnection;

                    /**
                     * Encodes the specified PrivateConnection message. Does not implicitly {@link google.cloud.datastream.v1.PrivateConnection.verify|verify} messages.
                     * @param message PrivateConnection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IPrivateConnection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PrivateConnection message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.PrivateConnection.verify|verify} messages.
                     * @param message PrivateConnection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IPrivateConnection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PrivateConnection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PrivateConnection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.PrivateConnection;

                    /**
                     * Decodes a PrivateConnection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PrivateConnection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.PrivateConnection;

                    /**
                     * Verifies a PrivateConnection message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PrivateConnection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PrivateConnection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.PrivateConnection;

                    /**
                     * Creates a plain object from a PrivateConnection message. Also converts values to other types if specified.
                     * @param message PrivateConnection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.PrivateConnection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PrivateConnection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PrivateConnection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PrivateConnection {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        CREATING = 1,
                        CREATED = 2,
                        FAILED = 3,
                        DELETING = 4,
                        FAILED_TO_DELETE = 5
                    }
                }

                /** Properties of a PrivateConnectivity. */
                interface IPrivateConnectivity {

                    /** PrivateConnectivity privateConnection */
                    privateConnection?: (string|null);
                }

                /** Represents a PrivateConnectivity. */
                class PrivateConnectivity implements IPrivateConnectivity {

                    /**
                     * Constructs a new PrivateConnectivity.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IPrivateConnectivity);

                    /** PrivateConnectivity privateConnection. */
                    public privateConnection: string;

                    /**
                     * Creates a new PrivateConnectivity instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PrivateConnectivity instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IPrivateConnectivity): google.cloud.datastream.v1.PrivateConnectivity;

                    /**
                     * Encodes the specified PrivateConnectivity message. Does not implicitly {@link google.cloud.datastream.v1.PrivateConnectivity.verify|verify} messages.
                     * @param message PrivateConnectivity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IPrivateConnectivity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PrivateConnectivity message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.PrivateConnectivity.verify|verify} messages.
                     * @param message PrivateConnectivity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IPrivateConnectivity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PrivateConnectivity message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PrivateConnectivity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.PrivateConnectivity;

                    /**
                     * Decodes a PrivateConnectivity message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PrivateConnectivity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.PrivateConnectivity;

                    /**
                     * Verifies a PrivateConnectivity message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PrivateConnectivity message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PrivateConnectivity
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.PrivateConnectivity;

                    /**
                     * Creates a plain object from a PrivateConnectivity message. Also converts values to other types if specified.
                     * @param message PrivateConnectivity
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.PrivateConnectivity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PrivateConnectivity to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PrivateConnectivity
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Route. */
                interface IRoute {

                    /** Route name */
                    name?: (string|null);

                    /** Route createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** Route updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** Route labels */
                    labels?: ({ [k: string]: string }|null);

                    /** Route displayName */
                    displayName?: (string|null);

                    /** Route destinationAddress */
                    destinationAddress?: (string|null);

                    /** Route destinationPort */
                    destinationPort?: (number|null);
                }

                /** Represents a Route. */
                class Route implements IRoute {

                    /**
                     * Constructs a new Route.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IRoute);

                    /** Route name. */
                    public name: string;

                    /** Route createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** Route updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** Route labels. */
                    public labels: { [k: string]: string };

                    /** Route displayName. */
                    public displayName: string;

                    /** Route destinationAddress. */
                    public destinationAddress: string;

                    /** Route destinationPort. */
                    public destinationPort: number;

                    /**
                     * Creates a new Route instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Route instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IRoute): google.cloud.datastream.v1.Route;

                    /**
                     * Encodes the specified Route message. Does not implicitly {@link google.cloud.datastream.v1.Route.verify|verify} messages.
                     * @param message Route message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IRoute, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Route message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.Route.verify|verify} messages.
                     * @param message Route message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IRoute, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Route message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Route
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.Route;

                    /**
                     * Decodes a Route message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Route
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.Route;

                    /**
                     * Verifies a Route message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Route message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Route
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.Route;

                    /**
                     * Creates a plain object from a Route message. Also converts values to other types if specified.
                     * @param message Route
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.Route, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Route to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Route
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MongodbSslConfig. */
                interface IMongodbSslConfig {

                    /** MongodbSslConfig clientKey */
                    clientKey?: (string|null);

                    /** MongodbSslConfig clientKeySet */
                    clientKeySet?: (boolean|null);

                    /** MongodbSslConfig clientCertificate */
                    clientCertificate?: (string|null);

                    /** MongodbSslConfig clientCertificateSet */
                    clientCertificateSet?: (boolean|null);

                    /** MongodbSslConfig caCertificate */
                    caCertificate?: (string|null);

                    /** MongodbSslConfig caCertificateSet */
                    caCertificateSet?: (boolean|null);

                    /** MongodbSslConfig secretManagerStoredClientKey */
                    secretManagerStoredClientKey?: (string|null);
                }

                /** Represents a MongodbSslConfig. */
                class MongodbSslConfig implements IMongodbSslConfig {

                    /**
                     * Constructs a new MongodbSslConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IMongodbSslConfig);

                    /** MongodbSslConfig clientKey. */
                    public clientKey: string;

                    /** MongodbSslConfig clientKeySet. */
                    public clientKeySet: boolean;

                    /** MongodbSslConfig clientCertificate. */
                    public clientCertificate: string;

                    /** MongodbSslConfig clientCertificateSet. */
                    public clientCertificateSet: boolean;

                    /** MongodbSslConfig caCertificate. */
                    public caCertificate: string;

                    /** MongodbSslConfig caCertificateSet. */
                    public caCertificateSet: boolean;

                    /** MongodbSslConfig secretManagerStoredClientKey. */
                    public secretManagerStoredClientKey: string;

                    /**
                     * Creates a new MongodbSslConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MongodbSslConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IMongodbSslConfig): google.cloud.datastream.v1.MongodbSslConfig;

                    /**
                     * Encodes the specified MongodbSslConfig message. Does not implicitly {@link google.cloud.datastream.v1.MongodbSslConfig.verify|verify} messages.
                     * @param message MongodbSslConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IMongodbSslConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MongodbSslConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MongodbSslConfig.verify|verify} messages.
                     * @param message MongodbSslConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IMongodbSslConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MongodbSslConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MongodbSslConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MongodbSslConfig;

                    /**
                     * Decodes a MongodbSslConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MongodbSslConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MongodbSslConfig;

                    /**
                     * Verifies a MongodbSslConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MongodbSslConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MongodbSslConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MongodbSslConfig;

                    /**
                     * Creates a plain object from a MongodbSslConfig message. Also converts values to other types if specified.
                     * @param message MongodbSslConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.MongodbSslConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MongodbSslConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MongodbSslConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MysqlSslConfig. */
                interface IMysqlSslConfig {

                    /** MysqlSslConfig clientKey */
                    clientKey?: (string|null);

                    /** MysqlSslConfig clientKeySet */
                    clientKeySet?: (boolean|null);

                    /** MysqlSslConfig clientCertificate */
                    clientCertificate?: (string|null);

                    /** MysqlSslConfig clientCertificateSet */
                    clientCertificateSet?: (boolean|null);

                    /** MysqlSslConfig caCertificate */
                    caCertificate?: (string|null);

                    /** MysqlSslConfig caCertificateSet */
                    caCertificateSet?: (boolean|null);
                }

                /** Represents a MysqlSslConfig. */
                class MysqlSslConfig implements IMysqlSslConfig {

                    /**
                     * Constructs a new MysqlSslConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IMysqlSslConfig);

                    /** MysqlSslConfig clientKey. */
                    public clientKey: string;

                    /** MysqlSslConfig clientKeySet. */
                    public clientKeySet: boolean;

                    /** MysqlSslConfig clientCertificate. */
                    public clientCertificate: string;

                    /** MysqlSslConfig clientCertificateSet. */
                    public clientCertificateSet: boolean;

                    /** MysqlSslConfig caCertificate. */
                    public caCertificate: string;

                    /** MysqlSslConfig caCertificateSet. */
                    public caCertificateSet: boolean;

                    /**
                     * Creates a new MysqlSslConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MysqlSslConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IMysqlSslConfig): google.cloud.datastream.v1.MysqlSslConfig;

                    /**
                     * Encodes the specified MysqlSslConfig message. Does not implicitly {@link google.cloud.datastream.v1.MysqlSslConfig.verify|verify} messages.
                     * @param message MysqlSslConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IMysqlSslConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MysqlSslConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MysqlSslConfig.verify|verify} messages.
                     * @param message MysqlSslConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IMysqlSslConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MysqlSslConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MysqlSslConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MysqlSslConfig;

                    /**
                     * Decodes a MysqlSslConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MysqlSslConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MysqlSslConfig;

                    /**
                     * Verifies a MysqlSslConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MysqlSslConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MysqlSslConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MysqlSslConfig;

                    /**
                     * Creates a plain object from a MysqlSslConfig message. Also converts values to other types if specified.
                     * @param message MysqlSslConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.MysqlSslConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MysqlSslConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MysqlSslConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OracleSslConfig. */
                interface IOracleSslConfig {

                    /** OracleSslConfig caCertificate */
                    caCertificate?: (string|null);

                    /** OracleSslConfig caCertificateSet */
                    caCertificateSet?: (boolean|null);

                    /** OracleSslConfig serverCertificateDistinguishedName */
                    serverCertificateDistinguishedName?: (string|null);
                }

                /** Represents an OracleSslConfig. */
                class OracleSslConfig implements IOracleSslConfig {

                    /**
                     * Constructs a new OracleSslConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IOracleSslConfig);

                    /** OracleSslConfig caCertificate. */
                    public caCertificate: string;

                    /** OracleSslConfig caCertificateSet. */
                    public caCertificateSet: boolean;

                    /** OracleSslConfig serverCertificateDistinguishedName. */
                    public serverCertificateDistinguishedName: string;

                    /**
                     * Creates a new OracleSslConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OracleSslConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IOracleSslConfig): google.cloud.datastream.v1.OracleSslConfig;

                    /**
                     * Encodes the specified OracleSslConfig message. Does not implicitly {@link google.cloud.datastream.v1.OracleSslConfig.verify|verify} messages.
                     * @param message OracleSslConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IOracleSslConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OracleSslConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.OracleSslConfig.verify|verify} messages.
                     * @param message OracleSslConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IOracleSslConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OracleSslConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OracleSslConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.OracleSslConfig;

                    /**
                     * Decodes an OracleSslConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OracleSslConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.OracleSslConfig;

                    /**
                     * Verifies an OracleSslConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OracleSslConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OracleSslConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.OracleSslConfig;

                    /**
                     * Creates a plain object from an OracleSslConfig message. Also converts values to other types if specified.
                     * @param message OracleSslConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.OracleSslConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OracleSslConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OracleSslConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PostgresqlSslConfig. */
                interface IPostgresqlSslConfig {

                    /** PostgresqlSslConfig serverVerification */
                    serverVerification?: (google.cloud.datastream.v1.PostgresqlSslConfig.IServerVerification|null);

                    /** PostgresqlSslConfig serverAndClientVerification */
                    serverAndClientVerification?: (google.cloud.datastream.v1.PostgresqlSslConfig.IServerAndClientVerification|null);
                }

                /** Represents a PostgresqlSslConfig. */
                class PostgresqlSslConfig implements IPostgresqlSslConfig {

                    /**
                     * Constructs a new PostgresqlSslConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IPostgresqlSslConfig);

                    /** PostgresqlSslConfig serverVerification. */
                    public serverVerification?: (google.cloud.datastream.v1.PostgresqlSslConfig.IServerVerification|null);

                    /** PostgresqlSslConfig serverAndClientVerification. */
                    public serverAndClientVerification?: (google.cloud.datastream.v1.PostgresqlSslConfig.IServerAndClientVerification|null);

                    /** PostgresqlSslConfig encryptionSetting. */
                    public encryptionSetting?: ("serverVerification"|"serverAndClientVerification");

                    /**
                     * Creates a new PostgresqlSslConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PostgresqlSslConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IPostgresqlSslConfig): google.cloud.datastream.v1.PostgresqlSslConfig;

                    /**
                     * Encodes the specified PostgresqlSslConfig message. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlSslConfig.verify|verify} messages.
                     * @param message PostgresqlSslConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IPostgresqlSslConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PostgresqlSslConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlSslConfig.verify|verify} messages.
                     * @param message PostgresqlSslConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IPostgresqlSslConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PostgresqlSslConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PostgresqlSslConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.PostgresqlSslConfig;

                    /**
                     * Decodes a PostgresqlSslConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PostgresqlSslConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.PostgresqlSslConfig;

                    /**
                     * Verifies a PostgresqlSslConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PostgresqlSslConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PostgresqlSslConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.PostgresqlSslConfig;

                    /**
                     * Creates a plain object from a PostgresqlSslConfig message. Also converts values to other types if specified.
                     * @param message PostgresqlSslConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.PostgresqlSslConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PostgresqlSslConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PostgresqlSslConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PostgresqlSslConfig {

                    /** Properties of a ServerVerification. */
                    interface IServerVerification {

                        /** ServerVerification caCertificate */
                        caCertificate?: (string|null);

                        /** ServerVerification serverCertificateHostname */
                        serverCertificateHostname?: (string|null);
                    }

                    /** Represents a ServerVerification. */
                    class ServerVerification implements IServerVerification {

                        /**
                         * Constructs a new ServerVerification.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.PostgresqlSslConfig.IServerVerification);

                        /** ServerVerification caCertificate. */
                        public caCertificate: string;

                        /** ServerVerification serverCertificateHostname. */
                        public serverCertificateHostname: string;

                        /**
                         * Creates a new ServerVerification instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ServerVerification instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.PostgresqlSslConfig.IServerVerification): google.cloud.datastream.v1.PostgresqlSslConfig.ServerVerification;

                        /**
                         * Encodes the specified ServerVerification message. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlSslConfig.ServerVerification.verify|verify} messages.
                         * @param message ServerVerification message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.PostgresqlSslConfig.IServerVerification, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ServerVerification message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlSslConfig.ServerVerification.verify|verify} messages.
                         * @param message ServerVerification message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.PostgresqlSslConfig.IServerVerification, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ServerVerification message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ServerVerification
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.PostgresqlSslConfig.ServerVerification;

                        /**
                         * Decodes a ServerVerification message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ServerVerification
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.PostgresqlSslConfig.ServerVerification;

                        /**
                         * Verifies a ServerVerification message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ServerVerification message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ServerVerification
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.PostgresqlSslConfig.ServerVerification;

                        /**
                         * Creates a plain object from a ServerVerification message. Also converts values to other types if specified.
                         * @param message ServerVerification
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.PostgresqlSslConfig.ServerVerification, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ServerVerification to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ServerVerification
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a ServerAndClientVerification. */
                    interface IServerAndClientVerification {

                        /** ServerAndClientVerification clientCertificate */
                        clientCertificate?: (string|null);

                        /** ServerAndClientVerification clientKey */
                        clientKey?: (string|null);

                        /** ServerAndClientVerification caCertificate */
                        caCertificate?: (string|null);

                        /** ServerAndClientVerification serverCertificateHostname */
                        serverCertificateHostname?: (string|null);
                    }

                    /** Represents a ServerAndClientVerification. */
                    class ServerAndClientVerification implements IServerAndClientVerification {

                        /**
                         * Constructs a new ServerAndClientVerification.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.PostgresqlSslConfig.IServerAndClientVerification);

                        /** ServerAndClientVerification clientCertificate. */
                        public clientCertificate: string;

                        /** ServerAndClientVerification clientKey. */
                        public clientKey: string;

                        /** ServerAndClientVerification caCertificate. */
                        public caCertificate: string;

                        /** ServerAndClientVerification serverCertificateHostname. */
                        public serverCertificateHostname: string;

                        /**
                         * Creates a new ServerAndClientVerification instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ServerAndClientVerification instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.PostgresqlSslConfig.IServerAndClientVerification): google.cloud.datastream.v1.PostgresqlSslConfig.ServerAndClientVerification;

                        /**
                         * Encodes the specified ServerAndClientVerification message. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlSslConfig.ServerAndClientVerification.verify|verify} messages.
                         * @param message ServerAndClientVerification message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.PostgresqlSslConfig.IServerAndClientVerification, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ServerAndClientVerification message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlSslConfig.ServerAndClientVerification.verify|verify} messages.
                         * @param message ServerAndClientVerification message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.PostgresqlSslConfig.IServerAndClientVerification, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ServerAndClientVerification message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ServerAndClientVerification
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.PostgresqlSslConfig.ServerAndClientVerification;

                        /**
                         * Decodes a ServerAndClientVerification message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ServerAndClientVerification
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.PostgresqlSslConfig.ServerAndClientVerification;

                        /**
                         * Verifies a ServerAndClientVerification message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ServerAndClientVerification message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ServerAndClientVerification
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.PostgresqlSslConfig.ServerAndClientVerification;

                        /**
                         * Creates a plain object from a ServerAndClientVerification message. Also converts values to other types if specified.
                         * @param message ServerAndClientVerification
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.PostgresqlSslConfig.ServerAndClientVerification, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ServerAndClientVerification to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ServerAndClientVerification
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a ConnectionProfile. */
                interface IConnectionProfile {

                    /** ConnectionProfile name */
                    name?: (string|null);

                    /** ConnectionProfile createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** ConnectionProfile updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** ConnectionProfile labels */
                    labels?: ({ [k: string]: string }|null);

                    /** ConnectionProfile displayName */
                    displayName?: (string|null);

                    /** ConnectionProfile satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** ConnectionProfile satisfiesPzi */
                    satisfiesPzi?: (boolean|null);

                    /** ConnectionProfile oracleProfile */
                    oracleProfile?: (google.cloud.datastream.v1.IOracleProfile|null);

                    /** ConnectionProfile gcsProfile */
                    gcsProfile?: (google.cloud.datastream.v1.IGcsProfile|null);

                    /** ConnectionProfile mysqlProfile */
                    mysqlProfile?: (google.cloud.datastream.v1.IMysqlProfile|null);

                    /** ConnectionProfile bigqueryProfile */
                    bigqueryProfile?: (google.cloud.datastream.v1.IBigQueryProfile|null);

                    /** ConnectionProfile postgresqlProfile */
                    postgresqlProfile?: (google.cloud.datastream.v1.IPostgresqlProfile|null);

                    /** ConnectionProfile sqlServerProfile */
                    sqlServerProfile?: (google.cloud.datastream.v1.ISqlServerProfile|null);

                    /** ConnectionProfile salesforceProfile */
                    salesforceProfile?: (google.cloud.datastream.v1.ISalesforceProfile|null);

                    /** ConnectionProfile mongodbProfile */
                    mongodbProfile?: (google.cloud.datastream.v1.IMongodbProfile|null);

                    /** ConnectionProfile staticServiceIpConnectivity */
                    staticServiceIpConnectivity?: (google.cloud.datastream.v1.IStaticServiceIpConnectivity|null);

                    /** ConnectionProfile forwardSshConnectivity */
                    forwardSshConnectivity?: (google.cloud.datastream.v1.IForwardSshTunnelConnectivity|null);

                    /** ConnectionProfile privateConnectivity */
                    privateConnectivity?: (google.cloud.datastream.v1.IPrivateConnectivity|null);
                }

                /** Represents a ConnectionProfile. */
                class ConnectionProfile implements IConnectionProfile {

                    /**
                     * Constructs a new ConnectionProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IConnectionProfile);

                    /** ConnectionProfile name. */
                    public name: string;

                    /** ConnectionProfile createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** ConnectionProfile updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** ConnectionProfile labels. */
                    public labels: { [k: string]: string };

                    /** ConnectionProfile displayName. */
                    public displayName: string;

                    /** ConnectionProfile satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** ConnectionProfile satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** ConnectionProfile oracleProfile. */
                    public oracleProfile?: (google.cloud.datastream.v1.IOracleProfile|null);

                    /** ConnectionProfile gcsProfile. */
                    public gcsProfile?: (google.cloud.datastream.v1.IGcsProfile|null);

                    /** ConnectionProfile mysqlProfile. */
                    public mysqlProfile?: (google.cloud.datastream.v1.IMysqlProfile|null);

                    /** ConnectionProfile bigqueryProfile. */
                    public bigqueryProfile?: (google.cloud.datastream.v1.IBigQueryProfile|null);

                    /** ConnectionProfile postgresqlProfile. */
                    public postgresqlProfile?: (google.cloud.datastream.v1.IPostgresqlProfile|null);

                    /** ConnectionProfile sqlServerProfile. */
                    public sqlServerProfile?: (google.cloud.datastream.v1.ISqlServerProfile|null);

                    /** ConnectionProfile salesforceProfile. */
                    public salesforceProfile?: (google.cloud.datastream.v1.ISalesforceProfile|null);

                    /** ConnectionProfile mongodbProfile. */
                    public mongodbProfile?: (google.cloud.datastream.v1.IMongodbProfile|null);

                    /** ConnectionProfile staticServiceIpConnectivity. */
                    public staticServiceIpConnectivity?: (google.cloud.datastream.v1.IStaticServiceIpConnectivity|null);

                    /** ConnectionProfile forwardSshConnectivity. */
                    public forwardSshConnectivity?: (google.cloud.datastream.v1.IForwardSshTunnelConnectivity|null);

                    /** ConnectionProfile privateConnectivity. */
                    public privateConnectivity?: (google.cloud.datastream.v1.IPrivateConnectivity|null);

                    /** ConnectionProfile profile. */
                    public profile?: ("oracleProfile"|"gcsProfile"|"mysqlProfile"|"bigqueryProfile"|"postgresqlProfile"|"sqlServerProfile"|"salesforceProfile"|"mongodbProfile");

                    /** ConnectionProfile connectivity. */
                    public connectivity?: ("staticServiceIpConnectivity"|"forwardSshConnectivity"|"privateConnectivity");

                    /**
                     * Creates a new ConnectionProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConnectionProfile instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IConnectionProfile): google.cloud.datastream.v1.ConnectionProfile;

                    /**
                     * Encodes the specified ConnectionProfile message. Does not implicitly {@link google.cloud.datastream.v1.ConnectionProfile.verify|verify} messages.
                     * @param message ConnectionProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IConnectionProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConnectionProfile message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.ConnectionProfile.verify|verify} messages.
                     * @param message ConnectionProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IConnectionProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConnectionProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConnectionProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.ConnectionProfile;

                    /**
                     * Decodes a ConnectionProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConnectionProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.ConnectionProfile;

                    /**
                     * Verifies a ConnectionProfile message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ConnectionProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConnectionProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.ConnectionProfile;

                    /**
                     * Creates a plain object from a ConnectionProfile message. Also converts values to other types if specified.
                     * @param message ConnectionProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.ConnectionProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConnectionProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConnectionProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OracleColumn. */
                interface IOracleColumn {

                    /** OracleColumn column */
                    column?: (string|null);

                    /** OracleColumn dataType */
                    dataType?: (string|null);

                    /** OracleColumn length */
                    length?: (number|null);

                    /** OracleColumn precision */
                    precision?: (number|null);

                    /** OracleColumn scale */
                    scale?: (number|null);

                    /** OracleColumn encoding */
                    encoding?: (string|null);

                    /** OracleColumn primaryKey */
                    primaryKey?: (boolean|null);

                    /** OracleColumn nullable */
                    nullable?: (boolean|null);

                    /** OracleColumn ordinalPosition */
                    ordinalPosition?: (number|null);
                }

                /** Represents an OracleColumn. */
                class OracleColumn implements IOracleColumn {

                    /**
                     * Constructs a new OracleColumn.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IOracleColumn);

                    /** OracleColumn column. */
                    public column: string;

                    /** OracleColumn dataType. */
                    public dataType: string;

                    /** OracleColumn length. */
                    public length: number;

                    /** OracleColumn precision. */
                    public precision: number;

                    /** OracleColumn scale. */
                    public scale: number;

                    /** OracleColumn encoding. */
                    public encoding: string;

                    /** OracleColumn primaryKey. */
                    public primaryKey: boolean;

                    /** OracleColumn nullable. */
                    public nullable: boolean;

                    /** OracleColumn ordinalPosition. */
                    public ordinalPosition: number;

                    /**
                     * Creates a new OracleColumn instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OracleColumn instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IOracleColumn): google.cloud.datastream.v1.OracleColumn;

                    /**
                     * Encodes the specified OracleColumn message. Does not implicitly {@link google.cloud.datastream.v1.OracleColumn.verify|verify} messages.
                     * @param message OracleColumn message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IOracleColumn, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OracleColumn message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.OracleColumn.verify|verify} messages.
                     * @param message OracleColumn message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IOracleColumn, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OracleColumn message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OracleColumn
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.OracleColumn;

                    /**
                     * Decodes an OracleColumn message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OracleColumn
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.OracleColumn;

                    /**
                     * Verifies an OracleColumn message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OracleColumn message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OracleColumn
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.OracleColumn;

                    /**
                     * Creates a plain object from an OracleColumn message. Also converts values to other types if specified.
                     * @param message OracleColumn
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.OracleColumn, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OracleColumn to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OracleColumn
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OracleTable. */
                interface IOracleTable {

                    /** OracleTable table */
                    table?: (string|null);

                    /** OracleTable oracleColumns */
                    oracleColumns?: (google.cloud.datastream.v1.IOracleColumn[]|null);
                }

                /** Represents an OracleTable. */
                class OracleTable implements IOracleTable {

                    /**
                     * Constructs a new OracleTable.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IOracleTable);

                    /** OracleTable table. */
                    public table: string;

                    /** OracleTable oracleColumns. */
                    public oracleColumns: google.cloud.datastream.v1.IOracleColumn[];

                    /**
                     * Creates a new OracleTable instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OracleTable instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IOracleTable): google.cloud.datastream.v1.OracleTable;

                    /**
                     * Encodes the specified OracleTable message. Does not implicitly {@link google.cloud.datastream.v1.OracleTable.verify|verify} messages.
                     * @param message OracleTable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IOracleTable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OracleTable message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.OracleTable.verify|verify} messages.
                     * @param message OracleTable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IOracleTable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OracleTable message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OracleTable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.OracleTable;

                    /**
                     * Decodes an OracleTable message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OracleTable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.OracleTable;

                    /**
                     * Verifies an OracleTable message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OracleTable message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OracleTable
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.OracleTable;

                    /**
                     * Creates a plain object from an OracleTable message. Also converts values to other types if specified.
                     * @param message OracleTable
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.OracleTable, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OracleTable to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OracleTable
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OracleSchema. */
                interface IOracleSchema {

                    /** OracleSchema schema */
                    schema?: (string|null);

                    /** OracleSchema oracleTables */
                    oracleTables?: (google.cloud.datastream.v1.IOracleTable[]|null);
                }

                /** Represents an OracleSchema. */
                class OracleSchema implements IOracleSchema {

                    /**
                     * Constructs a new OracleSchema.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IOracleSchema);

                    /** OracleSchema schema. */
                    public schema: string;

                    /** OracleSchema oracleTables. */
                    public oracleTables: google.cloud.datastream.v1.IOracleTable[];

                    /**
                     * Creates a new OracleSchema instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OracleSchema instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IOracleSchema): google.cloud.datastream.v1.OracleSchema;

                    /**
                     * Encodes the specified OracleSchema message. Does not implicitly {@link google.cloud.datastream.v1.OracleSchema.verify|verify} messages.
                     * @param message OracleSchema message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IOracleSchema, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OracleSchema message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.OracleSchema.verify|verify} messages.
                     * @param message OracleSchema message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IOracleSchema, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OracleSchema message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OracleSchema
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.OracleSchema;

                    /**
                     * Decodes an OracleSchema message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OracleSchema
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.OracleSchema;

                    /**
                     * Verifies an OracleSchema message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OracleSchema message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OracleSchema
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.OracleSchema;

                    /**
                     * Creates a plain object from an OracleSchema message. Also converts values to other types if specified.
                     * @param message OracleSchema
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.OracleSchema, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OracleSchema to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OracleSchema
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OracleRdbms. */
                interface IOracleRdbms {

                    /** OracleRdbms oracleSchemas */
                    oracleSchemas?: (google.cloud.datastream.v1.IOracleSchema[]|null);
                }

                /** Represents an OracleRdbms. */
                class OracleRdbms implements IOracleRdbms {

                    /**
                     * Constructs a new OracleRdbms.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IOracleRdbms);

                    /** OracleRdbms oracleSchemas. */
                    public oracleSchemas: google.cloud.datastream.v1.IOracleSchema[];

                    /**
                     * Creates a new OracleRdbms instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OracleRdbms instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IOracleRdbms): google.cloud.datastream.v1.OracleRdbms;

                    /**
                     * Encodes the specified OracleRdbms message. Does not implicitly {@link google.cloud.datastream.v1.OracleRdbms.verify|verify} messages.
                     * @param message OracleRdbms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IOracleRdbms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OracleRdbms message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.OracleRdbms.verify|verify} messages.
                     * @param message OracleRdbms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IOracleRdbms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OracleRdbms message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OracleRdbms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.OracleRdbms;

                    /**
                     * Decodes an OracleRdbms message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OracleRdbms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.OracleRdbms;

                    /**
                     * Verifies an OracleRdbms message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OracleRdbms message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OracleRdbms
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.OracleRdbms;

                    /**
                     * Creates a plain object from an OracleRdbms message. Also converts values to other types if specified.
                     * @param message OracleRdbms
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.OracleRdbms, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OracleRdbms to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OracleRdbms
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OracleSourceConfig. */
                interface IOracleSourceConfig {

                    /** OracleSourceConfig includeObjects */
                    includeObjects?: (google.cloud.datastream.v1.IOracleRdbms|null);

                    /** OracleSourceConfig excludeObjects */
                    excludeObjects?: (google.cloud.datastream.v1.IOracleRdbms|null);

                    /** OracleSourceConfig maxConcurrentCdcTasks */
                    maxConcurrentCdcTasks?: (number|null);

                    /** OracleSourceConfig maxConcurrentBackfillTasks */
                    maxConcurrentBackfillTasks?: (number|null);

                    /** OracleSourceConfig dropLargeObjects */
                    dropLargeObjects?: (google.cloud.datastream.v1.OracleSourceConfig.IDropLargeObjects|null);

                    /** OracleSourceConfig streamLargeObjects */
                    streamLargeObjects?: (google.cloud.datastream.v1.OracleSourceConfig.IStreamLargeObjects|null);

                    /** OracleSourceConfig logMiner */
                    logMiner?: (google.cloud.datastream.v1.OracleSourceConfig.ILogMiner|null);

                    /** OracleSourceConfig binaryLogParser */
                    binaryLogParser?: (google.cloud.datastream.v1.OracleSourceConfig.IBinaryLogParser|null);
                }

                /** Represents an OracleSourceConfig. */
                class OracleSourceConfig implements IOracleSourceConfig {

                    /**
                     * Constructs a new OracleSourceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IOracleSourceConfig);

                    /** OracleSourceConfig includeObjects. */
                    public includeObjects?: (google.cloud.datastream.v1.IOracleRdbms|null);

                    /** OracleSourceConfig excludeObjects. */
                    public excludeObjects?: (google.cloud.datastream.v1.IOracleRdbms|null);

                    /** OracleSourceConfig maxConcurrentCdcTasks. */
                    public maxConcurrentCdcTasks: number;

                    /** OracleSourceConfig maxConcurrentBackfillTasks. */
                    public maxConcurrentBackfillTasks: number;

                    /** OracleSourceConfig dropLargeObjects. */
                    public dropLargeObjects?: (google.cloud.datastream.v1.OracleSourceConfig.IDropLargeObjects|null);

                    /** OracleSourceConfig streamLargeObjects. */
                    public streamLargeObjects?: (google.cloud.datastream.v1.OracleSourceConfig.IStreamLargeObjects|null);

                    /** OracleSourceConfig logMiner. */
                    public logMiner?: (google.cloud.datastream.v1.OracleSourceConfig.ILogMiner|null);

                    /** OracleSourceConfig binaryLogParser. */
                    public binaryLogParser?: (google.cloud.datastream.v1.OracleSourceConfig.IBinaryLogParser|null);

                    /** OracleSourceConfig largeObjectsHandling. */
                    public largeObjectsHandling?: ("dropLargeObjects"|"streamLargeObjects");

                    /** OracleSourceConfig cdcMethod. */
                    public cdcMethod?: ("logMiner"|"binaryLogParser");

                    /**
                     * Creates a new OracleSourceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OracleSourceConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IOracleSourceConfig): google.cloud.datastream.v1.OracleSourceConfig;

                    /**
                     * Encodes the specified OracleSourceConfig message. Does not implicitly {@link google.cloud.datastream.v1.OracleSourceConfig.verify|verify} messages.
                     * @param message OracleSourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IOracleSourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OracleSourceConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.OracleSourceConfig.verify|verify} messages.
                     * @param message OracleSourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IOracleSourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OracleSourceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OracleSourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.OracleSourceConfig;

                    /**
                     * Decodes an OracleSourceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OracleSourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.OracleSourceConfig;

                    /**
                     * Verifies an OracleSourceConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OracleSourceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OracleSourceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.OracleSourceConfig;

                    /**
                     * Creates a plain object from an OracleSourceConfig message. Also converts values to other types if specified.
                     * @param message OracleSourceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.OracleSourceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OracleSourceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OracleSourceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace OracleSourceConfig {

                    /** Properties of a DropLargeObjects. */
                    interface IDropLargeObjects {
                    }

                    /** Represents a DropLargeObjects. */
                    class DropLargeObjects implements IDropLargeObjects {

                        /**
                         * Constructs a new DropLargeObjects.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.OracleSourceConfig.IDropLargeObjects);

                        /**
                         * Creates a new DropLargeObjects instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DropLargeObjects instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.OracleSourceConfig.IDropLargeObjects): google.cloud.datastream.v1.OracleSourceConfig.DropLargeObjects;

                        /**
                         * Encodes the specified DropLargeObjects message. Does not implicitly {@link google.cloud.datastream.v1.OracleSourceConfig.DropLargeObjects.verify|verify} messages.
                         * @param message DropLargeObjects message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.OracleSourceConfig.IDropLargeObjects, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DropLargeObjects message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.OracleSourceConfig.DropLargeObjects.verify|verify} messages.
                         * @param message DropLargeObjects message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.OracleSourceConfig.IDropLargeObjects, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DropLargeObjects message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DropLargeObjects
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.OracleSourceConfig.DropLargeObjects;

                        /**
                         * Decodes a DropLargeObjects message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DropLargeObjects
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.OracleSourceConfig.DropLargeObjects;

                        /**
                         * Verifies a DropLargeObjects message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a DropLargeObjects message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DropLargeObjects
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.OracleSourceConfig.DropLargeObjects;

                        /**
                         * Creates a plain object from a DropLargeObjects message. Also converts values to other types if specified.
                         * @param message DropLargeObjects
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.OracleSourceConfig.DropLargeObjects, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this DropLargeObjects to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for DropLargeObjects
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a StreamLargeObjects. */
                    interface IStreamLargeObjects {
                    }

                    /** Represents a StreamLargeObjects. */
                    class StreamLargeObjects implements IStreamLargeObjects {

                        /**
                         * Constructs a new StreamLargeObjects.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.OracleSourceConfig.IStreamLargeObjects);

                        /**
                         * Creates a new StreamLargeObjects instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns StreamLargeObjects instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.OracleSourceConfig.IStreamLargeObjects): google.cloud.datastream.v1.OracleSourceConfig.StreamLargeObjects;

                        /**
                         * Encodes the specified StreamLargeObjects message. Does not implicitly {@link google.cloud.datastream.v1.OracleSourceConfig.StreamLargeObjects.verify|verify} messages.
                         * @param message StreamLargeObjects message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.OracleSourceConfig.IStreamLargeObjects, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified StreamLargeObjects message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.OracleSourceConfig.StreamLargeObjects.verify|verify} messages.
                         * @param message StreamLargeObjects message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.OracleSourceConfig.IStreamLargeObjects, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a StreamLargeObjects message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns StreamLargeObjects
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.OracleSourceConfig.StreamLargeObjects;

                        /**
                         * Decodes a StreamLargeObjects message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns StreamLargeObjects
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.OracleSourceConfig.StreamLargeObjects;

                        /**
                         * Verifies a StreamLargeObjects message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a StreamLargeObjects message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns StreamLargeObjects
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.OracleSourceConfig.StreamLargeObjects;

                        /**
                         * Creates a plain object from a StreamLargeObjects message. Also converts values to other types if specified.
                         * @param message StreamLargeObjects
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.OracleSourceConfig.StreamLargeObjects, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this StreamLargeObjects to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for StreamLargeObjects
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a LogMiner. */
                    interface ILogMiner {
                    }

                    /** Represents a LogMiner. */
                    class LogMiner implements ILogMiner {

                        /**
                         * Constructs a new LogMiner.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.OracleSourceConfig.ILogMiner);

                        /**
                         * Creates a new LogMiner instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns LogMiner instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.OracleSourceConfig.ILogMiner): google.cloud.datastream.v1.OracleSourceConfig.LogMiner;

                        /**
                         * Encodes the specified LogMiner message. Does not implicitly {@link google.cloud.datastream.v1.OracleSourceConfig.LogMiner.verify|verify} messages.
                         * @param message LogMiner message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.OracleSourceConfig.ILogMiner, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified LogMiner message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.OracleSourceConfig.LogMiner.verify|verify} messages.
                         * @param message LogMiner message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.OracleSourceConfig.ILogMiner, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a LogMiner message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns LogMiner
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.OracleSourceConfig.LogMiner;

                        /**
                         * Decodes a LogMiner message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns LogMiner
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.OracleSourceConfig.LogMiner;

                        /**
                         * Verifies a LogMiner message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a LogMiner message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns LogMiner
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.OracleSourceConfig.LogMiner;

                        /**
                         * Creates a plain object from a LogMiner message. Also converts values to other types if specified.
                         * @param message LogMiner
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.OracleSourceConfig.LogMiner, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this LogMiner to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for LogMiner
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a BinaryLogParser. */
                    interface IBinaryLogParser {

                        /** BinaryLogParser oracleAsmLogFileAccess */
                        oracleAsmLogFileAccess?: (google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.IOracleAsmLogFileAccess|null);

                        /** BinaryLogParser logFileDirectories */
                        logFileDirectories?: (google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.ILogFileDirectories|null);
                    }

                    /** Represents a BinaryLogParser. */
                    class BinaryLogParser implements IBinaryLogParser {

                        /**
                         * Constructs a new BinaryLogParser.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.OracleSourceConfig.IBinaryLogParser);

                        /** BinaryLogParser oracleAsmLogFileAccess. */
                        public oracleAsmLogFileAccess?: (google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.IOracleAsmLogFileAccess|null);

                        /** BinaryLogParser logFileDirectories. */
                        public logFileDirectories?: (google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.ILogFileDirectories|null);

                        /** BinaryLogParser logFileAccess. */
                        public logFileAccess?: ("oracleAsmLogFileAccess"|"logFileDirectories");

                        /**
                         * Creates a new BinaryLogParser instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns BinaryLogParser instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.OracleSourceConfig.IBinaryLogParser): google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser;

                        /**
                         * Encodes the specified BinaryLogParser message. Does not implicitly {@link google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.verify|verify} messages.
                         * @param message BinaryLogParser message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.OracleSourceConfig.IBinaryLogParser, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified BinaryLogParser message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.verify|verify} messages.
                         * @param message BinaryLogParser message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.OracleSourceConfig.IBinaryLogParser, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a BinaryLogParser message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns BinaryLogParser
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser;

                        /**
                         * Decodes a BinaryLogParser message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns BinaryLogParser
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser;

                        /**
                         * Verifies a BinaryLogParser message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a BinaryLogParser message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns BinaryLogParser
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser;

                        /**
                         * Creates a plain object from a BinaryLogParser message. Also converts values to other types if specified.
                         * @param message BinaryLogParser
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this BinaryLogParser to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for BinaryLogParser
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace BinaryLogParser {

                        /** Properties of an OracleAsmLogFileAccess. */
                        interface IOracleAsmLogFileAccess {
                        }

                        /** Represents an OracleAsmLogFileAccess. */
                        class OracleAsmLogFileAccess implements IOracleAsmLogFileAccess {

                            /**
                             * Constructs a new OracleAsmLogFileAccess.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.IOracleAsmLogFileAccess);

                            /**
                             * Creates a new OracleAsmLogFileAccess instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns OracleAsmLogFileAccess instance
                             */
                            public static create(properties?: google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.IOracleAsmLogFileAccess): google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.OracleAsmLogFileAccess;

                            /**
                             * Encodes the specified OracleAsmLogFileAccess message. Does not implicitly {@link google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.OracleAsmLogFileAccess.verify|verify} messages.
                             * @param message OracleAsmLogFileAccess message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.IOracleAsmLogFileAccess, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified OracleAsmLogFileAccess message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.OracleAsmLogFileAccess.verify|verify} messages.
                             * @param message OracleAsmLogFileAccess message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.IOracleAsmLogFileAccess, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes an OracleAsmLogFileAccess message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns OracleAsmLogFileAccess
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.OracleAsmLogFileAccess;

                            /**
                             * Decodes an OracleAsmLogFileAccess message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns OracleAsmLogFileAccess
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.OracleAsmLogFileAccess;

                            /**
                             * Verifies an OracleAsmLogFileAccess message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates an OracleAsmLogFileAccess message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns OracleAsmLogFileAccess
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.OracleAsmLogFileAccess;

                            /**
                             * Creates a plain object from an OracleAsmLogFileAccess message. Also converts values to other types if specified.
                             * @param message OracleAsmLogFileAccess
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.OracleAsmLogFileAccess, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this OracleAsmLogFileAccess to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for OracleAsmLogFileAccess
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a LogFileDirectories. */
                        interface ILogFileDirectories {

                            /** LogFileDirectories onlineLogDirectory */
                            onlineLogDirectory?: (string|null);

                            /** LogFileDirectories archivedLogDirectory */
                            archivedLogDirectory?: (string|null);
                        }

                        /** Represents a LogFileDirectories. */
                        class LogFileDirectories implements ILogFileDirectories {

                            /**
                             * Constructs a new LogFileDirectories.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.ILogFileDirectories);

                            /** LogFileDirectories onlineLogDirectory. */
                            public onlineLogDirectory: string;

                            /** LogFileDirectories archivedLogDirectory. */
                            public archivedLogDirectory: string;

                            /**
                             * Creates a new LogFileDirectories instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns LogFileDirectories instance
                             */
                            public static create(properties?: google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.ILogFileDirectories): google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.LogFileDirectories;

                            /**
                             * Encodes the specified LogFileDirectories message. Does not implicitly {@link google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.LogFileDirectories.verify|verify} messages.
                             * @param message LogFileDirectories message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.ILogFileDirectories, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified LogFileDirectories message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.LogFileDirectories.verify|verify} messages.
                             * @param message LogFileDirectories message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.ILogFileDirectories, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a LogFileDirectories message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns LogFileDirectories
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.LogFileDirectories;

                            /**
                             * Decodes a LogFileDirectories message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns LogFileDirectories
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.LogFileDirectories;

                            /**
                             * Verifies a LogFileDirectories message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a LogFileDirectories message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns LogFileDirectories
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.LogFileDirectories;

                            /**
                             * Creates a plain object from a LogFileDirectories message. Also converts values to other types if specified.
                             * @param message LogFileDirectories
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.datastream.v1.OracleSourceConfig.BinaryLogParser.LogFileDirectories, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this LogFileDirectories to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for LogFileDirectories
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }
                }

                /** Properties of a PostgresqlColumn. */
                interface IPostgresqlColumn {

                    /** PostgresqlColumn column */
                    column?: (string|null);

                    /** PostgresqlColumn dataType */
                    dataType?: (string|null);

                    /** PostgresqlColumn length */
                    length?: (number|null);

                    /** PostgresqlColumn precision */
                    precision?: (number|null);

                    /** PostgresqlColumn scale */
                    scale?: (number|null);

                    /** PostgresqlColumn primaryKey */
                    primaryKey?: (boolean|null);

                    /** PostgresqlColumn nullable */
                    nullable?: (boolean|null);

                    /** PostgresqlColumn ordinalPosition */
                    ordinalPosition?: (number|null);
                }

                /** Represents a PostgresqlColumn. */
                class PostgresqlColumn implements IPostgresqlColumn {

                    /**
                     * Constructs a new PostgresqlColumn.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IPostgresqlColumn);

                    /** PostgresqlColumn column. */
                    public column: string;

                    /** PostgresqlColumn dataType. */
                    public dataType: string;

                    /** PostgresqlColumn length. */
                    public length: number;

                    /** PostgresqlColumn precision. */
                    public precision: number;

                    /** PostgresqlColumn scale. */
                    public scale: number;

                    /** PostgresqlColumn primaryKey. */
                    public primaryKey: boolean;

                    /** PostgresqlColumn nullable. */
                    public nullable: boolean;

                    /** PostgresqlColumn ordinalPosition. */
                    public ordinalPosition: number;

                    /**
                     * Creates a new PostgresqlColumn instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PostgresqlColumn instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IPostgresqlColumn): google.cloud.datastream.v1.PostgresqlColumn;

                    /**
                     * Encodes the specified PostgresqlColumn message. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlColumn.verify|verify} messages.
                     * @param message PostgresqlColumn message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IPostgresqlColumn, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PostgresqlColumn message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlColumn.verify|verify} messages.
                     * @param message PostgresqlColumn message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IPostgresqlColumn, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PostgresqlColumn message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PostgresqlColumn
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.PostgresqlColumn;

                    /**
                     * Decodes a PostgresqlColumn message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PostgresqlColumn
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.PostgresqlColumn;

                    /**
                     * Verifies a PostgresqlColumn message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PostgresqlColumn message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PostgresqlColumn
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.PostgresqlColumn;

                    /**
                     * Creates a plain object from a PostgresqlColumn message. Also converts values to other types if specified.
                     * @param message PostgresqlColumn
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.PostgresqlColumn, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PostgresqlColumn to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PostgresqlColumn
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PostgresqlTable. */
                interface IPostgresqlTable {

                    /** PostgresqlTable table */
                    table?: (string|null);

                    /** PostgresqlTable postgresqlColumns */
                    postgresqlColumns?: (google.cloud.datastream.v1.IPostgresqlColumn[]|null);
                }

                /** Represents a PostgresqlTable. */
                class PostgresqlTable implements IPostgresqlTable {

                    /**
                     * Constructs a new PostgresqlTable.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IPostgresqlTable);

                    /** PostgresqlTable table. */
                    public table: string;

                    /** PostgresqlTable postgresqlColumns. */
                    public postgresqlColumns: google.cloud.datastream.v1.IPostgresqlColumn[];

                    /**
                     * Creates a new PostgresqlTable instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PostgresqlTable instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IPostgresqlTable): google.cloud.datastream.v1.PostgresqlTable;

                    /**
                     * Encodes the specified PostgresqlTable message. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlTable.verify|verify} messages.
                     * @param message PostgresqlTable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IPostgresqlTable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PostgresqlTable message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlTable.verify|verify} messages.
                     * @param message PostgresqlTable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IPostgresqlTable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PostgresqlTable message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PostgresqlTable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.PostgresqlTable;

                    /**
                     * Decodes a PostgresqlTable message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PostgresqlTable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.PostgresqlTable;

                    /**
                     * Verifies a PostgresqlTable message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PostgresqlTable message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PostgresqlTable
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.PostgresqlTable;

                    /**
                     * Creates a plain object from a PostgresqlTable message. Also converts values to other types if specified.
                     * @param message PostgresqlTable
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.PostgresqlTable, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PostgresqlTable to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PostgresqlTable
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PostgresqlSchema. */
                interface IPostgresqlSchema {

                    /** PostgresqlSchema schema */
                    schema?: (string|null);

                    /** PostgresqlSchema postgresqlTables */
                    postgresqlTables?: (google.cloud.datastream.v1.IPostgresqlTable[]|null);
                }

                /** Represents a PostgresqlSchema. */
                class PostgresqlSchema implements IPostgresqlSchema {

                    /**
                     * Constructs a new PostgresqlSchema.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IPostgresqlSchema);

                    /** PostgresqlSchema schema. */
                    public schema: string;

                    /** PostgresqlSchema postgresqlTables. */
                    public postgresqlTables: google.cloud.datastream.v1.IPostgresqlTable[];

                    /**
                     * Creates a new PostgresqlSchema instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PostgresqlSchema instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IPostgresqlSchema): google.cloud.datastream.v1.PostgresqlSchema;

                    /**
                     * Encodes the specified PostgresqlSchema message. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlSchema.verify|verify} messages.
                     * @param message PostgresqlSchema message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IPostgresqlSchema, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PostgresqlSchema message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlSchema.verify|verify} messages.
                     * @param message PostgresqlSchema message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IPostgresqlSchema, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PostgresqlSchema message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PostgresqlSchema
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.PostgresqlSchema;

                    /**
                     * Decodes a PostgresqlSchema message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PostgresqlSchema
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.PostgresqlSchema;

                    /**
                     * Verifies a PostgresqlSchema message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PostgresqlSchema message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PostgresqlSchema
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.PostgresqlSchema;

                    /**
                     * Creates a plain object from a PostgresqlSchema message. Also converts values to other types if specified.
                     * @param message PostgresqlSchema
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.PostgresqlSchema, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PostgresqlSchema to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PostgresqlSchema
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PostgresqlRdbms. */
                interface IPostgresqlRdbms {

                    /** PostgresqlRdbms postgresqlSchemas */
                    postgresqlSchemas?: (google.cloud.datastream.v1.IPostgresqlSchema[]|null);
                }

                /** Represents a PostgresqlRdbms. */
                class PostgresqlRdbms implements IPostgresqlRdbms {

                    /**
                     * Constructs a new PostgresqlRdbms.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IPostgresqlRdbms);

                    /** PostgresqlRdbms postgresqlSchemas. */
                    public postgresqlSchemas: google.cloud.datastream.v1.IPostgresqlSchema[];

                    /**
                     * Creates a new PostgresqlRdbms instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PostgresqlRdbms instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IPostgresqlRdbms): google.cloud.datastream.v1.PostgresqlRdbms;

                    /**
                     * Encodes the specified PostgresqlRdbms message. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlRdbms.verify|verify} messages.
                     * @param message PostgresqlRdbms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IPostgresqlRdbms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PostgresqlRdbms message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlRdbms.verify|verify} messages.
                     * @param message PostgresqlRdbms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IPostgresqlRdbms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PostgresqlRdbms message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PostgresqlRdbms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.PostgresqlRdbms;

                    /**
                     * Decodes a PostgresqlRdbms message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PostgresqlRdbms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.PostgresqlRdbms;

                    /**
                     * Verifies a PostgresqlRdbms message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PostgresqlRdbms message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PostgresqlRdbms
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.PostgresqlRdbms;

                    /**
                     * Creates a plain object from a PostgresqlRdbms message. Also converts values to other types if specified.
                     * @param message PostgresqlRdbms
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.PostgresqlRdbms, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PostgresqlRdbms to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PostgresqlRdbms
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PostgresqlSourceConfig. */
                interface IPostgresqlSourceConfig {

                    /** PostgresqlSourceConfig includeObjects */
                    includeObjects?: (google.cloud.datastream.v1.IPostgresqlRdbms|null);

                    /** PostgresqlSourceConfig excludeObjects */
                    excludeObjects?: (google.cloud.datastream.v1.IPostgresqlRdbms|null);

                    /** PostgresqlSourceConfig replicationSlot */
                    replicationSlot?: (string|null);

                    /** PostgresqlSourceConfig publication */
                    publication?: (string|null);

                    /** PostgresqlSourceConfig maxConcurrentBackfillTasks */
                    maxConcurrentBackfillTasks?: (number|null);
                }

                /** Represents a PostgresqlSourceConfig. */
                class PostgresqlSourceConfig implements IPostgresqlSourceConfig {

                    /**
                     * Constructs a new PostgresqlSourceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IPostgresqlSourceConfig);

                    /** PostgresqlSourceConfig includeObjects. */
                    public includeObjects?: (google.cloud.datastream.v1.IPostgresqlRdbms|null);

                    /** PostgresqlSourceConfig excludeObjects. */
                    public excludeObjects?: (google.cloud.datastream.v1.IPostgresqlRdbms|null);

                    /** PostgresqlSourceConfig replicationSlot. */
                    public replicationSlot: string;

                    /** PostgresqlSourceConfig publication. */
                    public publication: string;

                    /** PostgresqlSourceConfig maxConcurrentBackfillTasks. */
                    public maxConcurrentBackfillTasks: number;

                    /**
                     * Creates a new PostgresqlSourceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PostgresqlSourceConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IPostgresqlSourceConfig): google.cloud.datastream.v1.PostgresqlSourceConfig;

                    /**
                     * Encodes the specified PostgresqlSourceConfig message. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlSourceConfig.verify|verify} messages.
                     * @param message PostgresqlSourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IPostgresqlSourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PostgresqlSourceConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.PostgresqlSourceConfig.verify|verify} messages.
                     * @param message PostgresqlSourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IPostgresqlSourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PostgresqlSourceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PostgresqlSourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.PostgresqlSourceConfig;

                    /**
                     * Decodes a PostgresqlSourceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PostgresqlSourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.PostgresqlSourceConfig;

                    /**
                     * Verifies a PostgresqlSourceConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PostgresqlSourceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PostgresqlSourceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.PostgresqlSourceConfig;

                    /**
                     * Creates a plain object from a PostgresqlSourceConfig message. Also converts values to other types if specified.
                     * @param message PostgresqlSourceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.PostgresqlSourceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PostgresqlSourceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PostgresqlSourceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SqlServerColumn. */
                interface ISqlServerColumn {

                    /** SqlServerColumn column */
                    column?: (string|null);

                    /** SqlServerColumn dataType */
                    dataType?: (string|null);

                    /** SqlServerColumn length */
                    length?: (number|null);

                    /** SqlServerColumn precision */
                    precision?: (number|null);

                    /** SqlServerColumn scale */
                    scale?: (number|null);

                    /** SqlServerColumn primaryKey */
                    primaryKey?: (boolean|null);

                    /** SqlServerColumn nullable */
                    nullable?: (boolean|null);

                    /** SqlServerColumn ordinalPosition */
                    ordinalPosition?: (number|null);
                }

                /** Represents a SqlServerColumn. */
                class SqlServerColumn implements ISqlServerColumn {

                    /**
                     * Constructs a new SqlServerColumn.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ISqlServerColumn);

                    /** SqlServerColumn column. */
                    public column: string;

                    /** SqlServerColumn dataType. */
                    public dataType: string;

                    /** SqlServerColumn length. */
                    public length: number;

                    /** SqlServerColumn precision. */
                    public precision: number;

                    /** SqlServerColumn scale. */
                    public scale: number;

                    /** SqlServerColumn primaryKey. */
                    public primaryKey: boolean;

                    /** SqlServerColumn nullable. */
                    public nullable: boolean;

                    /** SqlServerColumn ordinalPosition. */
                    public ordinalPosition: number;

                    /**
                     * Creates a new SqlServerColumn instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SqlServerColumn instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ISqlServerColumn): google.cloud.datastream.v1.SqlServerColumn;

                    /**
                     * Encodes the specified SqlServerColumn message. Does not implicitly {@link google.cloud.datastream.v1.SqlServerColumn.verify|verify} messages.
                     * @param message SqlServerColumn message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ISqlServerColumn, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SqlServerColumn message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SqlServerColumn.verify|verify} messages.
                     * @param message SqlServerColumn message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ISqlServerColumn, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SqlServerColumn message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SqlServerColumn
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SqlServerColumn;

                    /**
                     * Decodes a SqlServerColumn message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SqlServerColumn
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SqlServerColumn;

                    /**
                     * Verifies a SqlServerColumn message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SqlServerColumn message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SqlServerColumn
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SqlServerColumn;

                    /**
                     * Creates a plain object from a SqlServerColumn message. Also converts values to other types if specified.
                     * @param message SqlServerColumn
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.SqlServerColumn, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SqlServerColumn to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SqlServerColumn
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SqlServerTable. */
                interface ISqlServerTable {

                    /** SqlServerTable table */
                    table?: (string|null);

                    /** SqlServerTable columns */
                    columns?: (google.cloud.datastream.v1.ISqlServerColumn[]|null);
                }

                /** Represents a SqlServerTable. */
                class SqlServerTable implements ISqlServerTable {

                    /**
                     * Constructs a new SqlServerTable.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ISqlServerTable);

                    /** SqlServerTable table. */
                    public table: string;

                    /** SqlServerTable columns. */
                    public columns: google.cloud.datastream.v1.ISqlServerColumn[];

                    /**
                     * Creates a new SqlServerTable instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SqlServerTable instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ISqlServerTable): google.cloud.datastream.v1.SqlServerTable;

                    /**
                     * Encodes the specified SqlServerTable message. Does not implicitly {@link google.cloud.datastream.v1.SqlServerTable.verify|verify} messages.
                     * @param message SqlServerTable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ISqlServerTable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SqlServerTable message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SqlServerTable.verify|verify} messages.
                     * @param message SqlServerTable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ISqlServerTable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SqlServerTable message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SqlServerTable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SqlServerTable;

                    /**
                     * Decodes a SqlServerTable message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SqlServerTable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SqlServerTable;

                    /**
                     * Verifies a SqlServerTable message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SqlServerTable message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SqlServerTable
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SqlServerTable;

                    /**
                     * Creates a plain object from a SqlServerTable message. Also converts values to other types if specified.
                     * @param message SqlServerTable
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.SqlServerTable, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SqlServerTable to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SqlServerTable
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SqlServerSchema. */
                interface ISqlServerSchema {

                    /** SqlServerSchema schema */
                    schema?: (string|null);

                    /** SqlServerSchema tables */
                    tables?: (google.cloud.datastream.v1.ISqlServerTable[]|null);
                }

                /** Represents a SqlServerSchema. */
                class SqlServerSchema implements ISqlServerSchema {

                    /**
                     * Constructs a new SqlServerSchema.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ISqlServerSchema);

                    /** SqlServerSchema schema. */
                    public schema: string;

                    /** SqlServerSchema tables. */
                    public tables: google.cloud.datastream.v1.ISqlServerTable[];

                    /**
                     * Creates a new SqlServerSchema instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SqlServerSchema instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ISqlServerSchema): google.cloud.datastream.v1.SqlServerSchema;

                    /**
                     * Encodes the specified SqlServerSchema message. Does not implicitly {@link google.cloud.datastream.v1.SqlServerSchema.verify|verify} messages.
                     * @param message SqlServerSchema message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ISqlServerSchema, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SqlServerSchema message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SqlServerSchema.verify|verify} messages.
                     * @param message SqlServerSchema message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ISqlServerSchema, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SqlServerSchema message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SqlServerSchema
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SqlServerSchema;

                    /**
                     * Decodes a SqlServerSchema message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SqlServerSchema
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SqlServerSchema;

                    /**
                     * Verifies a SqlServerSchema message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SqlServerSchema message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SqlServerSchema
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SqlServerSchema;

                    /**
                     * Creates a plain object from a SqlServerSchema message. Also converts values to other types if specified.
                     * @param message SqlServerSchema
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.SqlServerSchema, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SqlServerSchema to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SqlServerSchema
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SqlServerRdbms. */
                interface ISqlServerRdbms {

                    /** SqlServerRdbms schemas */
                    schemas?: (google.cloud.datastream.v1.ISqlServerSchema[]|null);
                }

                /** Represents a SqlServerRdbms. */
                class SqlServerRdbms implements ISqlServerRdbms {

                    /**
                     * Constructs a new SqlServerRdbms.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ISqlServerRdbms);

                    /** SqlServerRdbms schemas. */
                    public schemas: google.cloud.datastream.v1.ISqlServerSchema[];

                    /**
                     * Creates a new SqlServerRdbms instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SqlServerRdbms instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ISqlServerRdbms): google.cloud.datastream.v1.SqlServerRdbms;

                    /**
                     * Encodes the specified SqlServerRdbms message. Does not implicitly {@link google.cloud.datastream.v1.SqlServerRdbms.verify|verify} messages.
                     * @param message SqlServerRdbms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ISqlServerRdbms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SqlServerRdbms message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SqlServerRdbms.verify|verify} messages.
                     * @param message SqlServerRdbms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ISqlServerRdbms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SqlServerRdbms message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SqlServerRdbms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SqlServerRdbms;

                    /**
                     * Decodes a SqlServerRdbms message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SqlServerRdbms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SqlServerRdbms;

                    /**
                     * Verifies a SqlServerRdbms message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SqlServerRdbms message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SqlServerRdbms
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SqlServerRdbms;

                    /**
                     * Creates a plain object from a SqlServerRdbms message. Also converts values to other types if specified.
                     * @param message SqlServerRdbms
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.SqlServerRdbms, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SqlServerRdbms to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SqlServerRdbms
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SqlServerSourceConfig. */
                interface ISqlServerSourceConfig {

                    /** SqlServerSourceConfig includeObjects */
                    includeObjects?: (google.cloud.datastream.v1.ISqlServerRdbms|null);

                    /** SqlServerSourceConfig excludeObjects */
                    excludeObjects?: (google.cloud.datastream.v1.ISqlServerRdbms|null);

                    /** SqlServerSourceConfig maxConcurrentCdcTasks */
                    maxConcurrentCdcTasks?: (number|null);

                    /** SqlServerSourceConfig maxConcurrentBackfillTasks */
                    maxConcurrentBackfillTasks?: (number|null);

                    /** SqlServerSourceConfig transactionLogs */
                    transactionLogs?: (google.cloud.datastream.v1.ISqlServerTransactionLogs|null);

                    /** SqlServerSourceConfig changeTables */
                    changeTables?: (google.cloud.datastream.v1.ISqlServerChangeTables|null);
                }

                /** Represents a SqlServerSourceConfig. */
                class SqlServerSourceConfig implements ISqlServerSourceConfig {

                    /**
                     * Constructs a new SqlServerSourceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ISqlServerSourceConfig);

                    /** SqlServerSourceConfig includeObjects. */
                    public includeObjects?: (google.cloud.datastream.v1.ISqlServerRdbms|null);

                    /** SqlServerSourceConfig excludeObjects. */
                    public excludeObjects?: (google.cloud.datastream.v1.ISqlServerRdbms|null);

                    /** SqlServerSourceConfig maxConcurrentCdcTasks. */
                    public maxConcurrentCdcTasks: number;

                    /** SqlServerSourceConfig maxConcurrentBackfillTasks. */
                    public maxConcurrentBackfillTasks: number;

                    /** SqlServerSourceConfig transactionLogs. */
                    public transactionLogs?: (google.cloud.datastream.v1.ISqlServerTransactionLogs|null);

                    /** SqlServerSourceConfig changeTables. */
                    public changeTables?: (google.cloud.datastream.v1.ISqlServerChangeTables|null);

                    /** SqlServerSourceConfig cdcMethod. */
                    public cdcMethod?: ("transactionLogs"|"changeTables");

                    /**
                     * Creates a new SqlServerSourceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SqlServerSourceConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ISqlServerSourceConfig): google.cloud.datastream.v1.SqlServerSourceConfig;

                    /**
                     * Encodes the specified SqlServerSourceConfig message. Does not implicitly {@link google.cloud.datastream.v1.SqlServerSourceConfig.verify|verify} messages.
                     * @param message SqlServerSourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ISqlServerSourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SqlServerSourceConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SqlServerSourceConfig.verify|verify} messages.
                     * @param message SqlServerSourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ISqlServerSourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SqlServerSourceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SqlServerSourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SqlServerSourceConfig;

                    /**
                     * Decodes a SqlServerSourceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SqlServerSourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SqlServerSourceConfig;

                    /**
                     * Verifies a SqlServerSourceConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SqlServerSourceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SqlServerSourceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SqlServerSourceConfig;

                    /**
                     * Creates a plain object from a SqlServerSourceConfig message. Also converts values to other types if specified.
                     * @param message SqlServerSourceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.SqlServerSourceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SqlServerSourceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SqlServerSourceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SqlServerTransactionLogs. */
                interface ISqlServerTransactionLogs {
                }

                /** Represents a SqlServerTransactionLogs. */
                class SqlServerTransactionLogs implements ISqlServerTransactionLogs {

                    /**
                     * Constructs a new SqlServerTransactionLogs.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ISqlServerTransactionLogs);

                    /**
                     * Creates a new SqlServerTransactionLogs instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SqlServerTransactionLogs instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ISqlServerTransactionLogs): google.cloud.datastream.v1.SqlServerTransactionLogs;

                    /**
                     * Encodes the specified SqlServerTransactionLogs message. Does not implicitly {@link google.cloud.datastream.v1.SqlServerTransactionLogs.verify|verify} messages.
                     * @param message SqlServerTransactionLogs message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ISqlServerTransactionLogs, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SqlServerTransactionLogs message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SqlServerTransactionLogs.verify|verify} messages.
                     * @param message SqlServerTransactionLogs message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ISqlServerTransactionLogs, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SqlServerTransactionLogs message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SqlServerTransactionLogs
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SqlServerTransactionLogs;

                    /**
                     * Decodes a SqlServerTransactionLogs message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SqlServerTransactionLogs
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SqlServerTransactionLogs;

                    /**
                     * Verifies a SqlServerTransactionLogs message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SqlServerTransactionLogs message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SqlServerTransactionLogs
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SqlServerTransactionLogs;

                    /**
                     * Creates a plain object from a SqlServerTransactionLogs message. Also converts values to other types if specified.
                     * @param message SqlServerTransactionLogs
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.SqlServerTransactionLogs, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SqlServerTransactionLogs to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SqlServerTransactionLogs
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SqlServerChangeTables. */
                interface ISqlServerChangeTables {
                }

                /** Represents a SqlServerChangeTables. */
                class SqlServerChangeTables implements ISqlServerChangeTables {

                    /**
                     * Constructs a new SqlServerChangeTables.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ISqlServerChangeTables);

                    /**
                     * Creates a new SqlServerChangeTables instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SqlServerChangeTables instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ISqlServerChangeTables): google.cloud.datastream.v1.SqlServerChangeTables;

                    /**
                     * Encodes the specified SqlServerChangeTables message. Does not implicitly {@link google.cloud.datastream.v1.SqlServerChangeTables.verify|verify} messages.
                     * @param message SqlServerChangeTables message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ISqlServerChangeTables, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SqlServerChangeTables message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SqlServerChangeTables.verify|verify} messages.
                     * @param message SqlServerChangeTables message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ISqlServerChangeTables, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SqlServerChangeTables message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SqlServerChangeTables
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SqlServerChangeTables;

                    /**
                     * Decodes a SqlServerChangeTables message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SqlServerChangeTables
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SqlServerChangeTables;

                    /**
                     * Verifies a SqlServerChangeTables message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SqlServerChangeTables message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SqlServerChangeTables
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SqlServerChangeTables;

                    /**
                     * Creates a plain object from a SqlServerChangeTables message. Also converts values to other types if specified.
                     * @param message SqlServerChangeTables
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.SqlServerChangeTables, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SqlServerChangeTables to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SqlServerChangeTables
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MysqlColumn. */
                interface IMysqlColumn {

                    /** MysqlColumn column */
                    column?: (string|null);

                    /** MysqlColumn dataType */
                    dataType?: (string|null);

                    /** MysqlColumn length */
                    length?: (number|null);

                    /** MysqlColumn collation */
                    collation?: (string|null);

                    /** MysqlColumn primaryKey */
                    primaryKey?: (boolean|null);

                    /** MysqlColumn nullable */
                    nullable?: (boolean|null);

                    /** MysqlColumn ordinalPosition */
                    ordinalPosition?: (number|null);

                    /** MysqlColumn precision */
                    precision?: (number|null);

                    /** MysqlColumn scale */
                    scale?: (number|null);
                }

                /** Represents a MysqlColumn. */
                class MysqlColumn implements IMysqlColumn {

                    /**
                     * Constructs a new MysqlColumn.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IMysqlColumn);

                    /** MysqlColumn column. */
                    public column: string;

                    /** MysqlColumn dataType. */
                    public dataType: string;

                    /** MysqlColumn length. */
                    public length: number;

                    /** MysqlColumn collation. */
                    public collation: string;

                    /** MysqlColumn primaryKey. */
                    public primaryKey: boolean;

                    /** MysqlColumn nullable. */
                    public nullable: boolean;

                    /** MysqlColumn ordinalPosition. */
                    public ordinalPosition: number;

                    /** MysqlColumn precision. */
                    public precision: number;

                    /** MysqlColumn scale. */
                    public scale: number;

                    /**
                     * Creates a new MysqlColumn instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MysqlColumn instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IMysqlColumn): google.cloud.datastream.v1.MysqlColumn;

                    /**
                     * Encodes the specified MysqlColumn message. Does not implicitly {@link google.cloud.datastream.v1.MysqlColumn.verify|verify} messages.
                     * @param message MysqlColumn message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IMysqlColumn, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MysqlColumn message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MysqlColumn.verify|verify} messages.
                     * @param message MysqlColumn message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IMysqlColumn, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MysqlColumn message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MysqlColumn
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MysqlColumn;

                    /**
                     * Decodes a MysqlColumn message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MysqlColumn
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MysqlColumn;

                    /**
                     * Verifies a MysqlColumn message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MysqlColumn message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MysqlColumn
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MysqlColumn;

                    /**
                     * Creates a plain object from a MysqlColumn message. Also converts values to other types if specified.
                     * @param message MysqlColumn
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.MysqlColumn, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MysqlColumn to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MysqlColumn
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MysqlTable. */
                interface IMysqlTable {

                    /** MysqlTable table */
                    table?: (string|null);

                    /** MysqlTable mysqlColumns */
                    mysqlColumns?: (google.cloud.datastream.v1.IMysqlColumn[]|null);
                }

                /** Represents a MysqlTable. */
                class MysqlTable implements IMysqlTable {

                    /**
                     * Constructs a new MysqlTable.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IMysqlTable);

                    /** MysqlTable table. */
                    public table: string;

                    /** MysqlTable mysqlColumns. */
                    public mysqlColumns: google.cloud.datastream.v1.IMysqlColumn[];

                    /**
                     * Creates a new MysqlTable instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MysqlTable instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IMysqlTable): google.cloud.datastream.v1.MysqlTable;

                    /**
                     * Encodes the specified MysqlTable message. Does not implicitly {@link google.cloud.datastream.v1.MysqlTable.verify|verify} messages.
                     * @param message MysqlTable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IMysqlTable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MysqlTable message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MysqlTable.verify|verify} messages.
                     * @param message MysqlTable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IMysqlTable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MysqlTable message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MysqlTable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MysqlTable;

                    /**
                     * Decodes a MysqlTable message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MysqlTable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MysqlTable;

                    /**
                     * Verifies a MysqlTable message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MysqlTable message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MysqlTable
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MysqlTable;

                    /**
                     * Creates a plain object from a MysqlTable message. Also converts values to other types if specified.
                     * @param message MysqlTable
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.MysqlTable, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MysqlTable to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MysqlTable
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MysqlDatabase. */
                interface IMysqlDatabase {

                    /** MysqlDatabase database */
                    database?: (string|null);

                    /** MysqlDatabase mysqlTables */
                    mysqlTables?: (google.cloud.datastream.v1.IMysqlTable[]|null);
                }

                /** Represents a MysqlDatabase. */
                class MysqlDatabase implements IMysqlDatabase {

                    /**
                     * Constructs a new MysqlDatabase.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IMysqlDatabase);

                    /** MysqlDatabase database. */
                    public database: string;

                    /** MysqlDatabase mysqlTables. */
                    public mysqlTables: google.cloud.datastream.v1.IMysqlTable[];

                    /**
                     * Creates a new MysqlDatabase instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MysqlDatabase instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IMysqlDatabase): google.cloud.datastream.v1.MysqlDatabase;

                    /**
                     * Encodes the specified MysqlDatabase message. Does not implicitly {@link google.cloud.datastream.v1.MysqlDatabase.verify|verify} messages.
                     * @param message MysqlDatabase message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IMysqlDatabase, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MysqlDatabase message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MysqlDatabase.verify|verify} messages.
                     * @param message MysqlDatabase message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IMysqlDatabase, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MysqlDatabase message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MysqlDatabase
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MysqlDatabase;

                    /**
                     * Decodes a MysqlDatabase message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MysqlDatabase
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MysqlDatabase;

                    /**
                     * Verifies a MysqlDatabase message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MysqlDatabase message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MysqlDatabase
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MysqlDatabase;

                    /**
                     * Creates a plain object from a MysqlDatabase message. Also converts values to other types if specified.
                     * @param message MysqlDatabase
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.MysqlDatabase, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MysqlDatabase to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MysqlDatabase
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MysqlRdbms. */
                interface IMysqlRdbms {

                    /** MysqlRdbms mysqlDatabases */
                    mysqlDatabases?: (google.cloud.datastream.v1.IMysqlDatabase[]|null);
                }

                /** Represents a MysqlRdbms. */
                class MysqlRdbms implements IMysqlRdbms {

                    /**
                     * Constructs a new MysqlRdbms.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IMysqlRdbms);

                    /** MysqlRdbms mysqlDatabases. */
                    public mysqlDatabases: google.cloud.datastream.v1.IMysqlDatabase[];

                    /**
                     * Creates a new MysqlRdbms instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MysqlRdbms instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IMysqlRdbms): google.cloud.datastream.v1.MysqlRdbms;

                    /**
                     * Encodes the specified MysqlRdbms message. Does not implicitly {@link google.cloud.datastream.v1.MysqlRdbms.verify|verify} messages.
                     * @param message MysqlRdbms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IMysqlRdbms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MysqlRdbms message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MysqlRdbms.verify|verify} messages.
                     * @param message MysqlRdbms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IMysqlRdbms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MysqlRdbms message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MysqlRdbms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MysqlRdbms;

                    /**
                     * Decodes a MysqlRdbms message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MysqlRdbms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MysqlRdbms;

                    /**
                     * Verifies a MysqlRdbms message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MysqlRdbms message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MysqlRdbms
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MysqlRdbms;

                    /**
                     * Creates a plain object from a MysqlRdbms message. Also converts values to other types if specified.
                     * @param message MysqlRdbms
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.MysqlRdbms, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MysqlRdbms to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MysqlRdbms
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MysqlSourceConfig. */
                interface IMysqlSourceConfig {

                    /** MysqlSourceConfig includeObjects */
                    includeObjects?: (google.cloud.datastream.v1.IMysqlRdbms|null);

                    /** MysqlSourceConfig excludeObjects */
                    excludeObjects?: (google.cloud.datastream.v1.IMysqlRdbms|null);

                    /** MysqlSourceConfig maxConcurrentCdcTasks */
                    maxConcurrentCdcTasks?: (number|null);

                    /** MysqlSourceConfig maxConcurrentBackfillTasks */
                    maxConcurrentBackfillTasks?: (number|null);

                    /** MysqlSourceConfig binaryLogPosition */
                    binaryLogPosition?: (google.cloud.datastream.v1.MysqlSourceConfig.IBinaryLogPosition|null);

                    /** MysqlSourceConfig gtid */
                    gtid?: (google.cloud.datastream.v1.MysqlSourceConfig.IGtid|null);
                }

                /** Represents a MysqlSourceConfig. */
                class MysqlSourceConfig implements IMysqlSourceConfig {

                    /**
                     * Constructs a new MysqlSourceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IMysqlSourceConfig);

                    /** MysqlSourceConfig includeObjects. */
                    public includeObjects?: (google.cloud.datastream.v1.IMysqlRdbms|null);

                    /** MysqlSourceConfig excludeObjects. */
                    public excludeObjects?: (google.cloud.datastream.v1.IMysqlRdbms|null);

                    /** MysqlSourceConfig maxConcurrentCdcTasks. */
                    public maxConcurrentCdcTasks: number;

                    /** MysqlSourceConfig maxConcurrentBackfillTasks. */
                    public maxConcurrentBackfillTasks: number;

                    /** MysqlSourceConfig binaryLogPosition. */
                    public binaryLogPosition?: (google.cloud.datastream.v1.MysqlSourceConfig.IBinaryLogPosition|null);

                    /** MysqlSourceConfig gtid. */
                    public gtid?: (google.cloud.datastream.v1.MysqlSourceConfig.IGtid|null);

                    /** MysqlSourceConfig cdcMethod. */
                    public cdcMethod?: ("binaryLogPosition"|"gtid");

                    /**
                     * Creates a new MysqlSourceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MysqlSourceConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IMysqlSourceConfig): google.cloud.datastream.v1.MysqlSourceConfig;

                    /**
                     * Encodes the specified MysqlSourceConfig message. Does not implicitly {@link google.cloud.datastream.v1.MysqlSourceConfig.verify|verify} messages.
                     * @param message MysqlSourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IMysqlSourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MysqlSourceConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MysqlSourceConfig.verify|verify} messages.
                     * @param message MysqlSourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IMysqlSourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MysqlSourceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MysqlSourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MysqlSourceConfig;

                    /**
                     * Decodes a MysqlSourceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MysqlSourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MysqlSourceConfig;

                    /**
                     * Verifies a MysqlSourceConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MysqlSourceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MysqlSourceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MysqlSourceConfig;

                    /**
                     * Creates a plain object from a MysqlSourceConfig message. Also converts values to other types if specified.
                     * @param message MysqlSourceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.MysqlSourceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MysqlSourceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MysqlSourceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace MysqlSourceConfig {

                    /** Properties of a BinaryLogPosition. */
                    interface IBinaryLogPosition {
                    }

                    /** Represents a BinaryLogPosition. */
                    class BinaryLogPosition implements IBinaryLogPosition {

                        /**
                         * Constructs a new BinaryLogPosition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.MysqlSourceConfig.IBinaryLogPosition);

                        /**
                         * Creates a new BinaryLogPosition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns BinaryLogPosition instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.MysqlSourceConfig.IBinaryLogPosition): google.cloud.datastream.v1.MysqlSourceConfig.BinaryLogPosition;

                        /**
                         * Encodes the specified BinaryLogPosition message. Does not implicitly {@link google.cloud.datastream.v1.MysqlSourceConfig.BinaryLogPosition.verify|verify} messages.
                         * @param message BinaryLogPosition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.MysqlSourceConfig.IBinaryLogPosition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified BinaryLogPosition message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MysqlSourceConfig.BinaryLogPosition.verify|verify} messages.
                         * @param message BinaryLogPosition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.MysqlSourceConfig.IBinaryLogPosition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a BinaryLogPosition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns BinaryLogPosition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MysqlSourceConfig.BinaryLogPosition;

                        /**
                         * Decodes a BinaryLogPosition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns BinaryLogPosition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MysqlSourceConfig.BinaryLogPosition;

                        /**
                         * Verifies a BinaryLogPosition message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a BinaryLogPosition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns BinaryLogPosition
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MysqlSourceConfig.BinaryLogPosition;

                        /**
                         * Creates a plain object from a BinaryLogPosition message. Also converts values to other types if specified.
                         * @param message BinaryLogPosition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.MysqlSourceConfig.BinaryLogPosition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this BinaryLogPosition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for BinaryLogPosition
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a Gtid. */
                    interface IGtid {
                    }

                    /** Represents a Gtid. */
                    class Gtid implements IGtid {

                        /**
                         * Constructs a new Gtid.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.MysqlSourceConfig.IGtid);

                        /**
                         * Creates a new Gtid instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Gtid instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.MysqlSourceConfig.IGtid): google.cloud.datastream.v1.MysqlSourceConfig.Gtid;

                        /**
                         * Encodes the specified Gtid message. Does not implicitly {@link google.cloud.datastream.v1.MysqlSourceConfig.Gtid.verify|verify} messages.
                         * @param message Gtid message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.MysqlSourceConfig.IGtid, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Gtid message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MysqlSourceConfig.Gtid.verify|verify} messages.
                         * @param message Gtid message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.MysqlSourceConfig.IGtid, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Gtid message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Gtid
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MysqlSourceConfig.Gtid;

                        /**
                         * Decodes a Gtid message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Gtid
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MysqlSourceConfig.Gtid;

                        /**
                         * Verifies a Gtid message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Gtid message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Gtid
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MysqlSourceConfig.Gtid;

                        /**
                         * Creates a plain object from a Gtid message. Also converts values to other types if specified.
                         * @param message Gtid
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.MysqlSourceConfig.Gtid, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Gtid to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Gtid
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a SalesforceSourceConfig. */
                interface ISalesforceSourceConfig {

                    /** SalesforceSourceConfig includeObjects */
                    includeObjects?: (google.cloud.datastream.v1.ISalesforceOrg|null);

                    /** SalesforceSourceConfig excludeObjects */
                    excludeObjects?: (google.cloud.datastream.v1.ISalesforceOrg|null);

                    /** SalesforceSourceConfig pollingInterval */
                    pollingInterval?: (google.protobuf.IDuration|null);
                }

                /** Represents a SalesforceSourceConfig. */
                class SalesforceSourceConfig implements ISalesforceSourceConfig {

                    /**
                     * Constructs a new SalesforceSourceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ISalesforceSourceConfig);

                    /** SalesforceSourceConfig includeObjects. */
                    public includeObjects?: (google.cloud.datastream.v1.ISalesforceOrg|null);

                    /** SalesforceSourceConfig excludeObjects. */
                    public excludeObjects?: (google.cloud.datastream.v1.ISalesforceOrg|null);

                    /** SalesforceSourceConfig pollingInterval. */
                    public pollingInterval?: (google.protobuf.IDuration|null);

                    /**
                     * Creates a new SalesforceSourceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SalesforceSourceConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ISalesforceSourceConfig): google.cloud.datastream.v1.SalesforceSourceConfig;

                    /**
                     * Encodes the specified SalesforceSourceConfig message. Does not implicitly {@link google.cloud.datastream.v1.SalesforceSourceConfig.verify|verify} messages.
                     * @param message SalesforceSourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ISalesforceSourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SalesforceSourceConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SalesforceSourceConfig.verify|verify} messages.
                     * @param message SalesforceSourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ISalesforceSourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SalesforceSourceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SalesforceSourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SalesforceSourceConfig;

                    /**
                     * Decodes a SalesforceSourceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SalesforceSourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SalesforceSourceConfig;

                    /**
                     * Verifies a SalesforceSourceConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SalesforceSourceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SalesforceSourceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SalesforceSourceConfig;

                    /**
                     * Creates a plain object from a SalesforceSourceConfig message. Also converts values to other types if specified.
                     * @param message SalesforceSourceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.SalesforceSourceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SalesforceSourceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SalesforceSourceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SalesforceOrg. */
                interface ISalesforceOrg {

                    /** SalesforceOrg objects */
                    objects?: (google.cloud.datastream.v1.ISalesforceObject[]|null);
                }

                /** Represents a SalesforceOrg. */
                class SalesforceOrg implements ISalesforceOrg {

                    /**
                     * Constructs a new SalesforceOrg.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ISalesforceOrg);

                    /** SalesforceOrg objects. */
                    public objects: google.cloud.datastream.v1.ISalesforceObject[];

                    /**
                     * Creates a new SalesforceOrg instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SalesforceOrg instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ISalesforceOrg): google.cloud.datastream.v1.SalesforceOrg;

                    /**
                     * Encodes the specified SalesforceOrg message. Does not implicitly {@link google.cloud.datastream.v1.SalesforceOrg.verify|verify} messages.
                     * @param message SalesforceOrg message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ISalesforceOrg, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SalesforceOrg message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SalesforceOrg.verify|verify} messages.
                     * @param message SalesforceOrg message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ISalesforceOrg, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SalesforceOrg message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SalesforceOrg
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SalesforceOrg;

                    /**
                     * Decodes a SalesforceOrg message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SalesforceOrg
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SalesforceOrg;

                    /**
                     * Verifies a SalesforceOrg message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SalesforceOrg message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SalesforceOrg
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SalesforceOrg;

                    /**
                     * Creates a plain object from a SalesforceOrg message. Also converts values to other types if specified.
                     * @param message SalesforceOrg
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.SalesforceOrg, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SalesforceOrg to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SalesforceOrg
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SalesforceObject. */
                interface ISalesforceObject {

                    /** SalesforceObject objectName */
                    objectName?: (string|null);

                    /** SalesforceObject fields */
                    fields?: (google.cloud.datastream.v1.ISalesforceField[]|null);
                }

                /** Represents a SalesforceObject. */
                class SalesforceObject implements ISalesforceObject {

                    /**
                     * Constructs a new SalesforceObject.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ISalesforceObject);

                    /** SalesforceObject objectName. */
                    public objectName: string;

                    /** SalesforceObject fields. */
                    public fields: google.cloud.datastream.v1.ISalesforceField[];

                    /**
                     * Creates a new SalesforceObject instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SalesforceObject instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ISalesforceObject): google.cloud.datastream.v1.SalesforceObject;

                    /**
                     * Encodes the specified SalesforceObject message. Does not implicitly {@link google.cloud.datastream.v1.SalesforceObject.verify|verify} messages.
                     * @param message SalesforceObject message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ISalesforceObject, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SalesforceObject message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SalesforceObject.verify|verify} messages.
                     * @param message SalesforceObject message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ISalesforceObject, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SalesforceObject message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SalesforceObject
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SalesforceObject;

                    /**
                     * Decodes a SalesforceObject message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SalesforceObject
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SalesforceObject;

                    /**
                     * Verifies a SalesforceObject message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SalesforceObject message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SalesforceObject
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SalesforceObject;

                    /**
                     * Creates a plain object from a SalesforceObject message. Also converts values to other types if specified.
                     * @param message SalesforceObject
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.SalesforceObject, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SalesforceObject to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SalesforceObject
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SalesforceField. */
                interface ISalesforceField {

                    /** SalesforceField name */
                    name?: (string|null);

                    /** SalesforceField dataType */
                    dataType?: (string|null);

                    /** SalesforceField nillable */
                    nillable?: (boolean|null);
                }

                /** Represents a SalesforceField. */
                class SalesforceField implements ISalesforceField {

                    /**
                     * Constructs a new SalesforceField.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ISalesforceField);

                    /** SalesforceField name. */
                    public name: string;

                    /** SalesforceField dataType. */
                    public dataType: string;

                    /** SalesforceField nillable. */
                    public nillable: boolean;

                    /**
                     * Creates a new SalesforceField instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SalesforceField instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ISalesforceField): google.cloud.datastream.v1.SalesforceField;

                    /**
                     * Encodes the specified SalesforceField message. Does not implicitly {@link google.cloud.datastream.v1.SalesforceField.verify|verify} messages.
                     * @param message SalesforceField message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ISalesforceField, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SalesforceField message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SalesforceField.verify|verify} messages.
                     * @param message SalesforceField message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ISalesforceField, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SalesforceField message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SalesforceField
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SalesforceField;

                    /**
                     * Decodes a SalesforceField message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SalesforceField
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SalesforceField;

                    /**
                     * Verifies a SalesforceField message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SalesforceField message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SalesforceField
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SalesforceField;

                    /**
                     * Creates a plain object from a SalesforceField message. Also converts values to other types if specified.
                     * @param message SalesforceField
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.SalesforceField, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SalesforceField to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SalesforceField
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MongodbSourceConfig. */
                interface IMongodbSourceConfig {

                    /** MongodbSourceConfig includeObjects */
                    includeObjects?: (google.cloud.datastream.v1.IMongodbCluster|null);

                    /** MongodbSourceConfig excludeObjects */
                    excludeObjects?: (google.cloud.datastream.v1.IMongodbCluster|null);

                    /** MongodbSourceConfig maxConcurrentBackfillTasks */
                    maxConcurrentBackfillTasks?: (number|null);
                }

                /** Represents a MongodbSourceConfig. */
                class MongodbSourceConfig implements IMongodbSourceConfig {

                    /**
                     * Constructs a new MongodbSourceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IMongodbSourceConfig);

                    /** MongodbSourceConfig includeObjects. */
                    public includeObjects?: (google.cloud.datastream.v1.IMongodbCluster|null);

                    /** MongodbSourceConfig excludeObjects. */
                    public excludeObjects?: (google.cloud.datastream.v1.IMongodbCluster|null);

                    /** MongodbSourceConfig maxConcurrentBackfillTasks. */
                    public maxConcurrentBackfillTasks: number;

                    /**
                     * Creates a new MongodbSourceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MongodbSourceConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IMongodbSourceConfig): google.cloud.datastream.v1.MongodbSourceConfig;

                    /**
                     * Encodes the specified MongodbSourceConfig message. Does not implicitly {@link google.cloud.datastream.v1.MongodbSourceConfig.verify|verify} messages.
                     * @param message MongodbSourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IMongodbSourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MongodbSourceConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MongodbSourceConfig.verify|verify} messages.
                     * @param message MongodbSourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IMongodbSourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MongodbSourceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MongodbSourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MongodbSourceConfig;

                    /**
                     * Decodes a MongodbSourceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MongodbSourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MongodbSourceConfig;

                    /**
                     * Verifies a MongodbSourceConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MongodbSourceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MongodbSourceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MongodbSourceConfig;

                    /**
                     * Creates a plain object from a MongodbSourceConfig message. Also converts values to other types if specified.
                     * @param message MongodbSourceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.MongodbSourceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MongodbSourceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MongodbSourceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MongodbCluster. */
                interface IMongodbCluster {

                    /** MongodbCluster databases */
                    databases?: (google.cloud.datastream.v1.IMongodbDatabase[]|null);
                }

                /** Represents a MongodbCluster. */
                class MongodbCluster implements IMongodbCluster {

                    /**
                     * Constructs a new MongodbCluster.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IMongodbCluster);

                    /** MongodbCluster databases. */
                    public databases: google.cloud.datastream.v1.IMongodbDatabase[];

                    /**
                     * Creates a new MongodbCluster instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MongodbCluster instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IMongodbCluster): google.cloud.datastream.v1.MongodbCluster;

                    /**
                     * Encodes the specified MongodbCluster message. Does not implicitly {@link google.cloud.datastream.v1.MongodbCluster.verify|verify} messages.
                     * @param message MongodbCluster message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IMongodbCluster, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MongodbCluster message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MongodbCluster.verify|verify} messages.
                     * @param message MongodbCluster message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IMongodbCluster, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MongodbCluster message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MongodbCluster
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MongodbCluster;

                    /**
                     * Decodes a MongodbCluster message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MongodbCluster
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MongodbCluster;

                    /**
                     * Verifies a MongodbCluster message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MongodbCluster message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MongodbCluster
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MongodbCluster;

                    /**
                     * Creates a plain object from a MongodbCluster message. Also converts values to other types if specified.
                     * @param message MongodbCluster
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.MongodbCluster, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MongodbCluster to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MongodbCluster
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MongodbDatabase. */
                interface IMongodbDatabase {

                    /** MongodbDatabase database */
                    database?: (string|null);

                    /** MongodbDatabase collections */
                    collections?: (google.cloud.datastream.v1.IMongodbCollection[]|null);
                }

                /** Represents a MongodbDatabase. */
                class MongodbDatabase implements IMongodbDatabase {

                    /**
                     * Constructs a new MongodbDatabase.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IMongodbDatabase);

                    /** MongodbDatabase database. */
                    public database: string;

                    /** MongodbDatabase collections. */
                    public collections: google.cloud.datastream.v1.IMongodbCollection[];

                    /**
                     * Creates a new MongodbDatabase instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MongodbDatabase instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IMongodbDatabase): google.cloud.datastream.v1.MongodbDatabase;

                    /**
                     * Encodes the specified MongodbDatabase message. Does not implicitly {@link google.cloud.datastream.v1.MongodbDatabase.verify|verify} messages.
                     * @param message MongodbDatabase message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IMongodbDatabase, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MongodbDatabase message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MongodbDatabase.verify|verify} messages.
                     * @param message MongodbDatabase message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IMongodbDatabase, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MongodbDatabase message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MongodbDatabase
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MongodbDatabase;

                    /**
                     * Decodes a MongodbDatabase message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MongodbDatabase
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MongodbDatabase;

                    /**
                     * Verifies a MongodbDatabase message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MongodbDatabase message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MongodbDatabase
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MongodbDatabase;

                    /**
                     * Creates a plain object from a MongodbDatabase message. Also converts values to other types if specified.
                     * @param message MongodbDatabase
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.MongodbDatabase, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MongodbDatabase to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MongodbDatabase
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MongodbCollection. */
                interface IMongodbCollection {

                    /** MongodbCollection collection */
                    collection?: (string|null);

                    /** MongodbCollection fields */
                    fields?: (google.cloud.datastream.v1.IMongodbField[]|null);
                }

                /** Represents a MongodbCollection. */
                class MongodbCollection implements IMongodbCollection {

                    /**
                     * Constructs a new MongodbCollection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IMongodbCollection);

                    /** MongodbCollection collection. */
                    public collection: string;

                    /** MongodbCollection fields. */
                    public fields: google.cloud.datastream.v1.IMongodbField[];

                    /**
                     * Creates a new MongodbCollection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MongodbCollection instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IMongodbCollection): google.cloud.datastream.v1.MongodbCollection;

                    /**
                     * Encodes the specified MongodbCollection message. Does not implicitly {@link google.cloud.datastream.v1.MongodbCollection.verify|verify} messages.
                     * @param message MongodbCollection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IMongodbCollection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MongodbCollection message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MongodbCollection.verify|verify} messages.
                     * @param message MongodbCollection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IMongodbCollection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MongodbCollection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MongodbCollection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MongodbCollection;

                    /**
                     * Decodes a MongodbCollection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MongodbCollection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MongodbCollection;

                    /**
                     * Verifies a MongodbCollection message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MongodbCollection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MongodbCollection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MongodbCollection;

                    /**
                     * Creates a plain object from a MongodbCollection message. Also converts values to other types if specified.
                     * @param message MongodbCollection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.MongodbCollection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MongodbCollection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MongodbCollection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MongodbField. */
                interface IMongodbField {

                    /** MongodbField field */
                    field?: (string|null);
                }

                /** Represents a MongodbField. */
                class MongodbField implements IMongodbField {

                    /**
                     * Constructs a new MongodbField.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IMongodbField);

                    /** MongodbField field. */
                    public field: string;

                    /**
                     * Creates a new MongodbField instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MongodbField instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IMongodbField): google.cloud.datastream.v1.MongodbField;

                    /**
                     * Encodes the specified MongodbField message. Does not implicitly {@link google.cloud.datastream.v1.MongodbField.verify|verify} messages.
                     * @param message MongodbField message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IMongodbField, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MongodbField message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MongodbField.verify|verify} messages.
                     * @param message MongodbField message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IMongodbField, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MongodbField message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MongodbField
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MongodbField;

                    /**
                     * Decodes a MongodbField message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MongodbField
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MongodbField;

                    /**
                     * Verifies a MongodbField message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MongodbField message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MongodbField
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MongodbField;

                    /**
                     * Creates a plain object from a MongodbField message. Also converts values to other types if specified.
                     * @param message MongodbField
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.MongodbField, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MongodbField to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MongodbField
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SourceConfig. */
                interface ISourceConfig {

                    /** SourceConfig sourceConnectionProfile */
                    sourceConnectionProfile?: (string|null);

                    /** SourceConfig oracleSourceConfig */
                    oracleSourceConfig?: (google.cloud.datastream.v1.IOracleSourceConfig|null);

                    /** SourceConfig mysqlSourceConfig */
                    mysqlSourceConfig?: (google.cloud.datastream.v1.IMysqlSourceConfig|null);

                    /** SourceConfig postgresqlSourceConfig */
                    postgresqlSourceConfig?: (google.cloud.datastream.v1.IPostgresqlSourceConfig|null);

                    /** SourceConfig sqlServerSourceConfig */
                    sqlServerSourceConfig?: (google.cloud.datastream.v1.ISqlServerSourceConfig|null);

                    /** SourceConfig salesforceSourceConfig */
                    salesforceSourceConfig?: (google.cloud.datastream.v1.ISalesforceSourceConfig|null);

                    /** SourceConfig mongodbSourceConfig */
                    mongodbSourceConfig?: (google.cloud.datastream.v1.IMongodbSourceConfig|null);
                }

                /** Represents a SourceConfig. */
                class SourceConfig implements ISourceConfig {

                    /**
                     * Constructs a new SourceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ISourceConfig);

                    /** SourceConfig sourceConnectionProfile. */
                    public sourceConnectionProfile: string;

                    /** SourceConfig oracleSourceConfig. */
                    public oracleSourceConfig?: (google.cloud.datastream.v1.IOracleSourceConfig|null);

                    /** SourceConfig mysqlSourceConfig. */
                    public mysqlSourceConfig?: (google.cloud.datastream.v1.IMysqlSourceConfig|null);

                    /** SourceConfig postgresqlSourceConfig. */
                    public postgresqlSourceConfig?: (google.cloud.datastream.v1.IPostgresqlSourceConfig|null);

                    /** SourceConfig sqlServerSourceConfig. */
                    public sqlServerSourceConfig?: (google.cloud.datastream.v1.ISqlServerSourceConfig|null);

                    /** SourceConfig salesforceSourceConfig. */
                    public salesforceSourceConfig?: (google.cloud.datastream.v1.ISalesforceSourceConfig|null);

                    /** SourceConfig mongodbSourceConfig. */
                    public mongodbSourceConfig?: (google.cloud.datastream.v1.IMongodbSourceConfig|null);

                    /** SourceConfig sourceStreamConfig. */
                    public sourceStreamConfig?: ("oracleSourceConfig"|"mysqlSourceConfig"|"postgresqlSourceConfig"|"sqlServerSourceConfig"|"salesforceSourceConfig"|"mongodbSourceConfig");

                    /**
                     * Creates a new SourceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SourceConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ISourceConfig): google.cloud.datastream.v1.SourceConfig;

                    /**
                     * Encodes the specified SourceConfig message. Does not implicitly {@link google.cloud.datastream.v1.SourceConfig.verify|verify} messages.
                     * @param message SourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ISourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SourceConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SourceConfig.verify|verify} messages.
                     * @param message SourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ISourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SourceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SourceConfig;

                    /**
                     * Decodes a SourceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SourceConfig;

                    /**
                     * Verifies a SourceConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SourceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SourceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SourceConfig;

                    /**
                     * Creates a plain object from a SourceConfig message. Also converts values to other types if specified.
                     * @param message SourceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.SourceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SourceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SourceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AvroFileFormat. */
                interface IAvroFileFormat {
                }

                /** Represents an AvroFileFormat. */
                class AvroFileFormat implements IAvroFileFormat {

                    /**
                     * Constructs a new AvroFileFormat.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IAvroFileFormat);

                    /**
                     * Creates a new AvroFileFormat instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AvroFileFormat instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IAvroFileFormat): google.cloud.datastream.v1.AvroFileFormat;

                    /**
                     * Encodes the specified AvroFileFormat message. Does not implicitly {@link google.cloud.datastream.v1.AvroFileFormat.verify|verify} messages.
                     * @param message AvroFileFormat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IAvroFileFormat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AvroFileFormat message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.AvroFileFormat.verify|verify} messages.
                     * @param message AvroFileFormat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IAvroFileFormat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AvroFileFormat message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AvroFileFormat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.AvroFileFormat;

                    /**
                     * Decodes an AvroFileFormat message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AvroFileFormat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.AvroFileFormat;

                    /**
                     * Verifies an AvroFileFormat message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an AvroFileFormat message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AvroFileFormat
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.AvroFileFormat;

                    /**
                     * Creates a plain object from an AvroFileFormat message. Also converts values to other types if specified.
                     * @param message AvroFileFormat
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.AvroFileFormat, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AvroFileFormat to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AvroFileFormat
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a JsonFileFormat. */
                interface IJsonFileFormat {

                    /** JsonFileFormat schemaFileFormat */
                    schemaFileFormat?: (google.cloud.datastream.v1.JsonFileFormat.SchemaFileFormat|keyof typeof google.cloud.datastream.v1.JsonFileFormat.SchemaFileFormat|null);

                    /** JsonFileFormat compression */
                    compression?: (google.cloud.datastream.v1.JsonFileFormat.JsonCompression|keyof typeof google.cloud.datastream.v1.JsonFileFormat.JsonCompression|null);
                }

                /** Represents a JsonFileFormat. */
                class JsonFileFormat implements IJsonFileFormat {

                    /**
                     * Constructs a new JsonFileFormat.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IJsonFileFormat);

                    /** JsonFileFormat schemaFileFormat. */
                    public schemaFileFormat: (google.cloud.datastream.v1.JsonFileFormat.SchemaFileFormat|keyof typeof google.cloud.datastream.v1.JsonFileFormat.SchemaFileFormat);

                    /** JsonFileFormat compression. */
                    public compression: (google.cloud.datastream.v1.JsonFileFormat.JsonCompression|keyof typeof google.cloud.datastream.v1.JsonFileFormat.JsonCompression);

                    /**
                     * Creates a new JsonFileFormat instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns JsonFileFormat instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IJsonFileFormat): google.cloud.datastream.v1.JsonFileFormat;

                    /**
                     * Encodes the specified JsonFileFormat message. Does not implicitly {@link google.cloud.datastream.v1.JsonFileFormat.verify|verify} messages.
                     * @param message JsonFileFormat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IJsonFileFormat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified JsonFileFormat message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.JsonFileFormat.verify|verify} messages.
                     * @param message JsonFileFormat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IJsonFileFormat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a JsonFileFormat message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns JsonFileFormat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.JsonFileFormat;

                    /**
                     * Decodes a JsonFileFormat message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns JsonFileFormat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.JsonFileFormat;

                    /**
                     * Verifies a JsonFileFormat message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a JsonFileFormat message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns JsonFileFormat
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.JsonFileFormat;

                    /**
                     * Creates a plain object from a JsonFileFormat message. Also converts values to other types if specified.
                     * @param message JsonFileFormat
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.JsonFileFormat, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this JsonFileFormat to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for JsonFileFormat
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace JsonFileFormat {

                    /** SchemaFileFormat enum. */
                    enum SchemaFileFormat {
                        SCHEMA_FILE_FORMAT_UNSPECIFIED = 0,
                        NO_SCHEMA_FILE = 1,
                        AVRO_SCHEMA_FILE = 2
                    }

                    /** JsonCompression enum. */
                    enum JsonCompression {
                        JSON_COMPRESSION_UNSPECIFIED = 0,
                        NO_COMPRESSION = 1,
                        GZIP = 2
                    }
                }

                /** Properties of a GcsDestinationConfig. */
                interface IGcsDestinationConfig {

                    /** GcsDestinationConfig path */
                    path?: (string|null);

                    /** GcsDestinationConfig fileRotationMb */
                    fileRotationMb?: (number|null);

                    /** GcsDestinationConfig fileRotationInterval */
                    fileRotationInterval?: (google.protobuf.IDuration|null);

                    /** GcsDestinationConfig avroFileFormat */
                    avroFileFormat?: (google.cloud.datastream.v1.IAvroFileFormat|null);

                    /** GcsDestinationConfig jsonFileFormat */
                    jsonFileFormat?: (google.cloud.datastream.v1.IJsonFileFormat|null);
                }

                /** Represents a GcsDestinationConfig. */
                class GcsDestinationConfig implements IGcsDestinationConfig {

                    /**
                     * Constructs a new GcsDestinationConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IGcsDestinationConfig);

                    /** GcsDestinationConfig path. */
                    public path: string;

                    /** GcsDestinationConfig fileRotationMb. */
                    public fileRotationMb: number;

                    /** GcsDestinationConfig fileRotationInterval. */
                    public fileRotationInterval?: (google.protobuf.IDuration|null);

                    /** GcsDestinationConfig avroFileFormat. */
                    public avroFileFormat?: (google.cloud.datastream.v1.IAvroFileFormat|null);

                    /** GcsDestinationConfig jsonFileFormat. */
                    public jsonFileFormat?: (google.cloud.datastream.v1.IJsonFileFormat|null);

                    /** GcsDestinationConfig fileFormat. */
                    public fileFormat?: ("avroFileFormat"|"jsonFileFormat");

                    /**
                     * Creates a new GcsDestinationConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GcsDestinationConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IGcsDestinationConfig): google.cloud.datastream.v1.GcsDestinationConfig;

                    /**
                     * Encodes the specified GcsDestinationConfig message. Does not implicitly {@link google.cloud.datastream.v1.GcsDestinationConfig.verify|verify} messages.
                     * @param message GcsDestinationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IGcsDestinationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GcsDestinationConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.GcsDestinationConfig.verify|verify} messages.
                     * @param message GcsDestinationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IGcsDestinationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GcsDestinationConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GcsDestinationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.GcsDestinationConfig;

                    /**
                     * Decodes a GcsDestinationConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GcsDestinationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.GcsDestinationConfig;

                    /**
                     * Verifies a GcsDestinationConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GcsDestinationConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GcsDestinationConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.GcsDestinationConfig;

                    /**
                     * Creates a plain object from a GcsDestinationConfig message. Also converts values to other types if specified.
                     * @param message GcsDestinationConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.GcsDestinationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GcsDestinationConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GcsDestinationConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BigQueryDestinationConfig. */
                interface IBigQueryDestinationConfig {

                    /** BigQueryDestinationConfig singleTargetDataset */
                    singleTargetDataset?: (google.cloud.datastream.v1.BigQueryDestinationConfig.ISingleTargetDataset|null);

                    /** BigQueryDestinationConfig sourceHierarchyDatasets */
                    sourceHierarchyDatasets?: (google.cloud.datastream.v1.BigQueryDestinationConfig.ISourceHierarchyDatasets|null);

                    /** BigQueryDestinationConfig dataFreshness */
                    dataFreshness?: (google.protobuf.IDuration|null);

                    /** BigQueryDestinationConfig blmtConfig */
                    blmtConfig?: (google.cloud.datastream.v1.BigQueryDestinationConfig.IBlmtConfig|null);

                    /** BigQueryDestinationConfig merge */
                    merge?: (google.cloud.datastream.v1.BigQueryDestinationConfig.IMerge|null);

                    /** BigQueryDestinationConfig appendOnly */
                    appendOnly?: (google.cloud.datastream.v1.BigQueryDestinationConfig.IAppendOnly|null);
                }

                /** Represents a BigQueryDestinationConfig. */
                class BigQueryDestinationConfig implements IBigQueryDestinationConfig {

                    /**
                     * Constructs a new BigQueryDestinationConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IBigQueryDestinationConfig);

                    /** BigQueryDestinationConfig singleTargetDataset. */
                    public singleTargetDataset?: (google.cloud.datastream.v1.BigQueryDestinationConfig.ISingleTargetDataset|null);

                    /** BigQueryDestinationConfig sourceHierarchyDatasets. */
                    public sourceHierarchyDatasets?: (google.cloud.datastream.v1.BigQueryDestinationConfig.ISourceHierarchyDatasets|null);

                    /** BigQueryDestinationConfig dataFreshness. */
                    public dataFreshness?: (google.protobuf.IDuration|null);

                    /** BigQueryDestinationConfig blmtConfig. */
                    public blmtConfig?: (google.cloud.datastream.v1.BigQueryDestinationConfig.IBlmtConfig|null);

                    /** BigQueryDestinationConfig merge. */
                    public merge?: (google.cloud.datastream.v1.BigQueryDestinationConfig.IMerge|null);

                    /** BigQueryDestinationConfig appendOnly. */
                    public appendOnly?: (google.cloud.datastream.v1.BigQueryDestinationConfig.IAppendOnly|null);

                    /** BigQueryDestinationConfig datasetConfig. */
                    public datasetConfig?: ("singleTargetDataset"|"sourceHierarchyDatasets");

                    /** BigQueryDestinationConfig writeMode. */
                    public writeMode?: ("merge"|"appendOnly");

                    /**
                     * Creates a new BigQueryDestinationConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BigQueryDestinationConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IBigQueryDestinationConfig): google.cloud.datastream.v1.BigQueryDestinationConfig;

                    /**
                     * Encodes the specified BigQueryDestinationConfig message. Does not implicitly {@link google.cloud.datastream.v1.BigQueryDestinationConfig.verify|verify} messages.
                     * @param message BigQueryDestinationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IBigQueryDestinationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BigQueryDestinationConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.BigQueryDestinationConfig.verify|verify} messages.
                     * @param message BigQueryDestinationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IBigQueryDestinationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BigQueryDestinationConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BigQueryDestinationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.BigQueryDestinationConfig;

                    /**
                     * Decodes a BigQueryDestinationConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BigQueryDestinationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.BigQueryDestinationConfig;

                    /**
                     * Verifies a BigQueryDestinationConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BigQueryDestinationConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BigQueryDestinationConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.BigQueryDestinationConfig;

                    /**
                     * Creates a plain object from a BigQueryDestinationConfig message. Also converts values to other types if specified.
                     * @param message BigQueryDestinationConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.BigQueryDestinationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BigQueryDestinationConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BigQueryDestinationConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BigQueryDestinationConfig {

                    /** Properties of a SingleTargetDataset. */
                    interface ISingleTargetDataset {

                        /** SingleTargetDataset datasetId */
                        datasetId?: (string|null);
                    }

                    /** Represents a SingleTargetDataset. */
                    class SingleTargetDataset implements ISingleTargetDataset {

                        /**
                         * Constructs a new SingleTargetDataset.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.BigQueryDestinationConfig.ISingleTargetDataset);

                        /** SingleTargetDataset datasetId. */
                        public datasetId: string;

                        /**
                         * Creates a new SingleTargetDataset instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SingleTargetDataset instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.BigQueryDestinationConfig.ISingleTargetDataset): google.cloud.datastream.v1.BigQueryDestinationConfig.SingleTargetDataset;

                        /**
                         * Encodes the specified SingleTargetDataset message. Does not implicitly {@link google.cloud.datastream.v1.BigQueryDestinationConfig.SingleTargetDataset.verify|verify} messages.
                         * @param message SingleTargetDataset message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.BigQueryDestinationConfig.ISingleTargetDataset, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SingleTargetDataset message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.BigQueryDestinationConfig.SingleTargetDataset.verify|verify} messages.
                         * @param message SingleTargetDataset message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.BigQueryDestinationConfig.ISingleTargetDataset, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SingleTargetDataset message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SingleTargetDataset
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.BigQueryDestinationConfig.SingleTargetDataset;

                        /**
                         * Decodes a SingleTargetDataset message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SingleTargetDataset
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.BigQueryDestinationConfig.SingleTargetDataset;

                        /**
                         * Verifies a SingleTargetDataset message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SingleTargetDataset message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SingleTargetDataset
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.BigQueryDestinationConfig.SingleTargetDataset;

                        /**
                         * Creates a plain object from a SingleTargetDataset message. Also converts values to other types if specified.
                         * @param message SingleTargetDataset
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.BigQueryDestinationConfig.SingleTargetDataset, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SingleTargetDataset to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SingleTargetDataset
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SourceHierarchyDatasets. */
                    interface ISourceHierarchyDatasets {

                        /** SourceHierarchyDatasets datasetTemplate */
                        datasetTemplate?: (google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets.IDatasetTemplate|null);

                        /** SourceHierarchyDatasets projectId */
                        projectId?: (string|null);
                    }

                    /** Represents a SourceHierarchyDatasets. */
                    class SourceHierarchyDatasets implements ISourceHierarchyDatasets {

                        /**
                         * Constructs a new SourceHierarchyDatasets.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.BigQueryDestinationConfig.ISourceHierarchyDatasets);

                        /** SourceHierarchyDatasets datasetTemplate. */
                        public datasetTemplate?: (google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets.IDatasetTemplate|null);

                        /** SourceHierarchyDatasets projectId. */
                        public projectId?: (string|null);

                        /**
                         * Creates a new SourceHierarchyDatasets instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SourceHierarchyDatasets instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.BigQueryDestinationConfig.ISourceHierarchyDatasets): google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets;

                        /**
                         * Encodes the specified SourceHierarchyDatasets message. Does not implicitly {@link google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets.verify|verify} messages.
                         * @param message SourceHierarchyDatasets message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.BigQueryDestinationConfig.ISourceHierarchyDatasets, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SourceHierarchyDatasets message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets.verify|verify} messages.
                         * @param message SourceHierarchyDatasets message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.BigQueryDestinationConfig.ISourceHierarchyDatasets, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SourceHierarchyDatasets message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SourceHierarchyDatasets
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets;

                        /**
                         * Decodes a SourceHierarchyDatasets message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SourceHierarchyDatasets
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets;

                        /**
                         * Verifies a SourceHierarchyDatasets message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SourceHierarchyDatasets message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SourceHierarchyDatasets
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets;

                        /**
                         * Creates a plain object from a SourceHierarchyDatasets message. Also converts values to other types if specified.
                         * @param message SourceHierarchyDatasets
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SourceHierarchyDatasets to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SourceHierarchyDatasets
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace SourceHierarchyDatasets {

                        /** Properties of a DatasetTemplate. */
                        interface IDatasetTemplate {

                            /** DatasetTemplate location */
                            location?: (string|null);

                            /** DatasetTemplate datasetIdPrefix */
                            datasetIdPrefix?: (string|null);

                            /** DatasetTemplate kmsKeyName */
                            kmsKeyName?: (string|null);
                        }

                        /** Represents a DatasetTemplate. */
                        class DatasetTemplate implements IDatasetTemplate {

                            /**
                             * Constructs a new DatasetTemplate.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets.IDatasetTemplate);

                            /** DatasetTemplate location. */
                            public location: string;

                            /** DatasetTemplate datasetIdPrefix. */
                            public datasetIdPrefix: string;

                            /** DatasetTemplate kmsKeyName. */
                            public kmsKeyName: string;

                            /**
                             * Creates a new DatasetTemplate instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns DatasetTemplate instance
                             */
                            public static create(properties?: google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets.IDatasetTemplate): google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets.DatasetTemplate;

                            /**
                             * Encodes the specified DatasetTemplate message. Does not implicitly {@link google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets.DatasetTemplate.verify|verify} messages.
                             * @param message DatasetTemplate message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets.IDatasetTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified DatasetTemplate message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets.DatasetTemplate.verify|verify} messages.
                             * @param message DatasetTemplate message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets.IDatasetTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a DatasetTemplate message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns DatasetTemplate
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets.DatasetTemplate;

                            /**
                             * Decodes a DatasetTemplate message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns DatasetTemplate
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets.DatasetTemplate;

                            /**
                             * Verifies a DatasetTemplate message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a DatasetTemplate message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns DatasetTemplate
                             */
                            public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets.DatasetTemplate;

                            /**
                             * Creates a plain object from a DatasetTemplate message. Also converts values to other types if specified.
                             * @param message DatasetTemplate
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.cloud.datastream.v1.BigQueryDestinationConfig.SourceHierarchyDatasets.DatasetTemplate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this DatasetTemplate to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for DatasetTemplate
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a BlmtConfig. */
                    interface IBlmtConfig {

                        /** BlmtConfig bucket */
                        bucket?: (string|null);

                        /** BlmtConfig rootPath */
                        rootPath?: (string|null);

                        /** BlmtConfig connectionName */
                        connectionName?: (string|null);

                        /** BlmtConfig fileFormat */
                        fileFormat?: (google.cloud.datastream.v1.BigQueryDestinationConfig.BlmtConfig.FileFormat|keyof typeof google.cloud.datastream.v1.BigQueryDestinationConfig.BlmtConfig.FileFormat|null);

                        /** BlmtConfig tableFormat */
                        tableFormat?: (google.cloud.datastream.v1.BigQueryDestinationConfig.BlmtConfig.TableFormat|keyof typeof google.cloud.datastream.v1.BigQueryDestinationConfig.BlmtConfig.TableFormat|null);
                    }

                    /** Represents a BlmtConfig. */
                    class BlmtConfig implements IBlmtConfig {

                        /**
                         * Constructs a new BlmtConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.BigQueryDestinationConfig.IBlmtConfig);

                        /** BlmtConfig bucket. */
                        public bucket: string;

                        /** BlmtConfig rootPath. */
                        public rootPath: string;

                        /** BlmtConfig connectionName. */
                        public connectionName: string;

                        /** BlmtConfig fileFormat. */
                        public fileFormat: (google.cloud.datastream.v1.BigQueryDestinationConfig.BlmtConfig.FileFormat|keyof typeof google.cloud.datastream.v1.BigQueryDestinationConfig.BlmtConfig.FileFormat);

                        /** BlmtConfig tableFormat. */
                        public tableFormat: (google.cloud.datastream.v1.BigQueryDestinationConfig.BlmtConfig.TableFormat|keyof typeof google.cloud.datastream.v1.BigQueryDestinationConfig.BlmtConfig.TableFormat);

                        /**
                         * Creates a new BlmtConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns BlmtConfig instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.BigQueryDestinationConfig.IBlmtConfig): google.cloud.datastream.v1.BigQueryDestinationConfig.BlmtConfig;

                        /**
                         * Encodes the specified BlmtConfig message. Does not implicitly {@link google.cloud.datastream.v1.BigQueryDestinationConfig.BlmtConfig.verify|verify} messages.
                         * @param message BlmtConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.BigQueryDestinationConfig.IBlmtConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified BlmtConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.BigQueryDestinationConfig.BlmtConfig.verify|verify} messages.
                         * @param message BlmtConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.BigQueryDestinationConfig.IBlmtConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a BlmtConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns BlmtConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.BigQueryDestinationConfig.BlmtConfig;

                        /**
                         * Decodes a BlmtConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns BlmtConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.BigQueryDestinationConfig.BlmtConfig;

                        /**
                         * Verifies a BlmtConfig message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a BlmtConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns BlmtConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.BigQueryDestinationConfig.BlmtConfig;

                        /**
                         * Creates a plain object from a BlmtConfig message. Also converts values to other types if specified.
                         * @param message BlmtConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.BigQueryDestinationConfig.BlmtConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this BlmtConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for BlmtConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace BlmtConfig {

                        /** FileFormat enum. */
                        enum FileFormat {
                            FILE_FORMAT_UNSPECIFIED = 0,
                            PARQUET = 1
                        }

                        /** TableFormat enum. */
                        enum TableFormat {
                            TABLE_FORMAT_UNSPECIFIED = 0,
                            ICEBERG = 1
                        }
                    }

                    /** Properties of an AppendOnly. */
                    interface IAppendOnly {
                    }

                    /** Represents an AppendOnly. */
                    class AppendOnly implements IAppendOnly {

                        /**
                         * Constructs a new AppendOnly.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.BigQueryDestinationConfig.IAppendOnly);

                        /**
                         * Creates a new AppendOnly instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns AppendOnly instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.BigQueryDestinationConfig.IAppendOnly): google.cloud.datastream.v1.BigQueryDestinationConfig.AppendOnly;

                        /**
                         * Encodes the specified AppendOnly message. Does not implicitly {@link google.cloud.datastream.v1.BigQueryDestinationConfig.AppendOnly.verify|verify} messages.
                         * @param message AppendOnly message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.BigQueryDestinationConfig.IAppendOnly, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified AppendOnly message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.BigQueryDestinationConfig.AppendOnly.verify|verify} messages.
                         * @param message AppendOnly message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.BigQueryDestinationConfig.IAppendOnly, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an AppendOnly message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AppendOnly
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.BigQueryDestinationConfig.AppendOnly;

                        /**
                         * Decodes an AppendOnly message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AppendOnly
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.BigQueryDestinationConfig.AppendOnly;

                        /**
                         * Verifies an AppendOnly message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an AppendOnly message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AppendOnly
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.BigQueryDestinationConfig.AppendOnly;

                        /**
                         * Creates a plain object from an AppendOnly message. Also converts values to other types if specified.
                         * @param message AppendOnly
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.BigQueryDestinationConfig.AppendOnly, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this AppendOnly to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for AppendOnly
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a Merge. */
                    interface IMerge {
                    }

                    /** Represents a Merge. */
                    class Merge implements IMerge {

                        /**
                         * Constructs a new Merge.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.BigQueryDestinationConfig.IMerge);

                        /**
                         * Creates a new Merge instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Merge instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.BigQueryDestinationConfig.IMerge): google.cloud.datastream.v1.BigQueryDestinationConfig.Merge;

                        /**
                         * Encodes the specified Merge message. Does not implicitly {@link google.cloud.datastream.v1.BigQueryDestinationConfig.Merge.verify|verify} messages.
                         * @param message Merge message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.BigQueryDestinationConfig.IMerge, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Merge message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.BigQueryDestinationConfig.Merge.verify|verify} messages.
                         * @param message Merge message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.BigQueryDestinationConfig.IMerge, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Merge message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Merge
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.BigQueryDestinationConfig.Merge;

                        /**
                         * Decodes a Merge message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Merge
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.BigQueryDestinationConfig.Merge;

                        /**
                         * Verifies a Merge message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Merge message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Merge
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.BigQueryDestinationConfig.Merge;

                        /**
                         * Creates a plain object from a Merge message. Also converts values to other types if specified.
                         * @param message Merge
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.BigQueryDestinationConfig.Merge, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Merge to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Merge
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a DestinationConfig. */
                interface IDestinationConfig {

                    /** DestinationConfig destinationConnectionProfile */
                    destinationConnectionProfile?: (string|null);

                    /** DestinationConfig gcsDestinationConfig */
                    gcsDestinationConfig?: (google.cloud.datastream.v1.IGcsDestinationConfig|null);

                    /** DestinationConfig bigqueryDestinationConfig */
                    bigqueryDestinationConfig?: (google.cloud.datastream.v1.IBigQueryDestinationConfig|null);
                }

                /** Represents a DestinationConfig. */
                class DestinationConfig implements IDestinationConfig {

                    /**
                     * Constructs a new DestinationConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IDestinationConfig);

                    /** DestinationConfig destinationConnectionProfile. */
                    public destinationConnectionProfile: string;

                    /** DestinationConfig gcsDestinationConfig. */
                    public gcsDestinationConfig?: (google.cloud.datastream.v1.IGcsDestinationConfig|null);

                    /** DestinationConfig bigqueryDestinationConfig. */
                    public bigqueryDestinationConfig?: (google.cloud.datastream.v1.IBigQueryDestinationConfig|null);

                    /** DestinationConfig destinationStreamConfig. */
                    public destinationStreamConfig?: ("gcsDestinationConfig"|"bigqueryDestinationConfig");

                    /**
                     * Creates a new DestinationConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DestinationConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IDestinationConfig): google.cloud.datastream.v1.DestinationConfig;

                    /**
                     * Encodes the specified DestinationConfig message. Does not implicitly {@link google.cloud.datastream.v1.DestinationConfig.verify|verify} messages.
                     * @param message DestinationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IDestinationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DestinationConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.DestinationConfig.verify|verify} messages.
                     * @param message DestinationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IDestinationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DestinationConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DestinationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.DestinationConfig;

                    /**
                     * Decodes a DestinationConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DestinationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.DestinationConfig;

                    /**
                     * Verifies a DestinationConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DestinationConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DestinationConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.DestinationConfig;

                    /**
                     * Creates a plain object from a DestinationConfig message. Also converts values to other types if specified.
                     * @param message DestinationConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.DestinationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DestinationConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DestinationConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Stream. */
                interface IStream {

                    /** Stream name */
                    name?: (string|null);

                    /** Stream createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** Stream updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** Stream labels */
                    labels?: ({ [k: string]: string }|null);

                    /** Stream displayName */
                    displayName?: (string|null);

                    /** Stream sourceConfig */
                    sourceConfig?: (google.cloud.datastream.v1.ISourceConfig|null);

                    /** Stream destinationConfig */
                    destinationConfig?: (google.cloud.datastream.v1.IDestinationConfig|null);

                    /** Stream state */
                    state?: (google.cloud.datastream.v1.Stream.State|keyof typeof google.cloud.datastream.v1.Stream.State|null);

                    /** Stream backfillAll */
                    backfillAll?: (google.cloud.datastream.v1.Stream.IBackfillAllStrategy|null);

                    /** Stream backfillNone */
                    backfillNone?: (google.cloud.datastream.v1.Stream.IBackfillNoneStrategy|null);

                    /** Stream errors */
                    errors?: (google.cloud.datastream.v1.IError[]|null);

                    /** Stream customerManagedEncryptionKey */
                    customerManagedEncryptionKey?: (string|null);

                    /** Stream lastRecoveryTime */
                    lastRecoveryTime?: (google.protobuf.ITimestamp|null);

                    /** Stream satisfiesPzs */
                    satisfiesPzs?: (boolean|null);

                    /** Stream satisfiesPzi */
                    satisfiesPzi?: (boolean|null);
                }

                /** Represents a Stream. */
                class Stream implements IStream {

                    /**
                     * Constructs a new Stream.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IStream);

                    /** Stream name. */
                    public name: string;

                    /** Stream createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** Stream updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** Stream labels. */
                    public labels: { [k: string]: string };

                    /** Stream displayName. */
                    public displayName: string;

                    /** Stream sourceConfig. */
                    public sourceConfig?: (google.cloud.datastream.v1.ISourceConfig|null);

                    /** Stream destinationConfig. */
                    public destinationConfig?: (google.cloud.datastream.v1.IDestinationConfig|null);

                    /** Stream state. */
                    public state: (google.cloud.datastream.v1.Stream.State|keyof typeof google.cloud.datastream.v1.Stream.State);

                    /** Stream backfillAll. */
                    public backfillAll?: (google.cloud.datastream.v1.Stream.IBackfillAllStrategy|null);

                    /** Stream backfillNone. */
                    public backfillNone?: (google.cloud.datastream.v1.Stream.IBackfillNoneStrategy|null);

                    /** Stream errors. */
                    public errors: google.cloud.datastream.v1.IError[];

                    /** Stream customerManagedEncryptionKey. */
                    public customerManagedEncryptionKey?: (string|null);

                    /** Stream lastRecoveryTime. */
                    public lastRecoveryTime?: (google.protobuf.ITimestamp|null);

                    /** Stream satisfiesPzs. */
                    public satisfiesPzs?: (boolean|null);

                    /** Stream satisfiesPzi. */
                    public satisfiesPzi?: (boolean|null);

                    /** Stream backfillStrategy. */
                    public backfillStrategy?: ("backfillAll"|"backfillNone");

                    /**
                     * Creates a new Stream instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Stream instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IStream): google.cloud.datastream.v1.Stream;

                    /**
                     * Encodes the specified Stream message. Does not implicitly {@link google.cloud.datastream.v1.Stream.verify|verify} messages.
                     * @param message Stream message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IStream, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Stream message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.Stream.verify|verify} messages.
                     * @param message Stream message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IStream, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Stream message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Stream
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.Stream;

                    /**
                     * Decodes a Stream message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Stream
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.Stream;

                    /**
                     * Verifies a Stream message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Stream message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Stream
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.Stream;

                    /**
                     * Creates a plain object from a Stream message. Also converts values to other types if specified.
                     * @param message Stream
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.Stream, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Stream to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Stream
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Stream {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        NOT_STARTED = 1,
                        RUNNING = 2,
                        PAUSED = 3,
                        MAINTENANCE = 4,
                        FAILED = 5,
                        FAILED_PERMANENTLY = 6,
                        STARTING = 7,
                        DRAINING = 8
                    }

                    /** Properties of a BackfillAllStrategy. */
                    interface IBackfillAllStrategy {

                        /** BackfillAllStrategy oracleExcludedObjects */
                        oracleExcludedObjects?: (google.cloud.datastream.v1.IOracleRdbms|null);

                        /** BackfillAllStrategy mysqlExcludedObjects */
                        mysqlExcludedObjects?: (google.cloud.datastream.v1.IMysqlRdbms|null);

                        /** BackfillAllStrategy postgresqlExcludedObjects */
                        postgresqlExcludedObjects?: (google.cloud.datastream.v1.IPostgresqlRdbms|null);

                        /** BackfillAllStrategy sqlServerExcludedObjects */
                        sqlServerExcludedObjects?: (google.cloud.datastream.v1.ISqlServerRdbms|null);

                        /** BackfillAllStrategy salesforceExcludedObjects */
                        salesforceExcludedObjects?: (google.cloud.datastream.v1.ISalesforceOrg|null);

                        /** BackfillAllStrategy mongodbExcludedObjects */
                        mongodbExcludedObjects?: (google.cloud.datastream.v1.IMongodbCluster|null);
                    }

                    /** Represents a BackfillAllStrategy. */
                    class BackfillAllStrategy implements IBackfillAllStrategy {

                        /**
                         * Constructs a new BackfillAllStrategy.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.Stream.IBackfillAllStrategy);

                        /** BackfillAllStrategy oracleExcludedObjects. */
                        public oracleExcludedObjects?: (google.cloud.datastream.v1.IOracleRdbms|null);

                        /** BackfillAllStrategy mysqlExcludedObjects. */
                        public mysqlExcludedObjects?: (google.cloud.datastream.v1.IMysqlRdbms|null);

                        /** BackfillAllStrategy postgresqlExcludedObjects. */
                        public postgresqlExcludedObjects?: (google.cloud.datastream.v1.IPostgresqlRdbms|null);

                        /** BackfillAllStrategy sqlServerExcludedObjects. */
                        public sqlServerExcludedObjects?: (google.cloud.datastream.v1.ISqlServerRdbms|null);

                        /** BackfillAllStrategy salesforceExcludedObjects. */
                        public salesforceExcludedObjects?: (google.cloud.datastream.v1.ISalesforceOrg|null);

                        /** BackfillAllStrategy mongodbExcludedObjects. */
                        public mongodbExcludedObjects?: (google.cloud.datastream.v1.IMongodbCluster|null);

                        /** BackfillAllStrategy excludedObjects. */
                        public excludedObjects?: ("oracleExcludedObjects"|"mysqlExcludedObjects"|"postgresqlExcludedObjects"|"sqlServerExcludedObjects"|"salesforceExcludedObjects"|"mongodbExcludedObjects");

                        /**
                         * Creates a new BackfillAllStrategy instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns BackfillAllStrategy instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.Stream.IBackfillAllStrategy): google.cloud.datastream.v1.Stream.BackfillAllStrategy;

                        /**
                         * Encodes the specified BackfillAllStrategy message. Does not implicitly {@link google.cloud.datastream.v1.Stream.BackfillAllStrategy.verify|verify} messages.
                         * @param message BackfillAllStrategy message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.Stream.IBackfillAllStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified BackfillAllStrategy message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.Stream.BackfillAllStrategy.verify|verify} messages.
                         * @param message BackfillAllStrategy message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.Stream.IBackfillAllStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a BackfillAllStrategy message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns BackfillAllStrategy
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.Stream.BackfillAllStrategy;

                        /**
                         * Decodes a BackfillAllStrategy message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns BackfillAllStrategy
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.Stream.BackfillAllStrategy;

                        /**
                         * Verifies a BackfillAllStrategy message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a BackfillAllStrategy message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns BackfillAllStrategy
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.Stream.BackfillAllStrategy;

                        /**
                         * Creates a plain object from a BackfillAllStrategy message. Also converts values to other types if specified.
                         * @param message BackfillAllStrategy
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.Stream.BackfillAllStrategy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this BackfillAllStrategy to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for BackfillAllStrategy
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a BackfillNoneStrategy. */
                    interface IBackfillNoneStrategy {
                    }

                    /** Represents a BackfillNoneStrategy. */
                    class BackfillNoneStrategy implements IBackfillNoneStrategy {

                        /**
                         * Constructs a new BackfillNoneStrategy.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.Stream.IBackfillNoneStrategy);

                        /**
                         * Creates a new BackfillNoneStrategy instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns BackfillNoneStrategy instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.Stream.IBackfillNoneStrategy): google.cloud.datastream.v1.Stream.BackfillNoneStrategy;

                        /**
                         * Encodes the specified BackfillNoneStrategy message. Does not implicitly {@link google.cloud.datastream.v1.Stream.BackfillNoneStrategy.verify|verify} messages.
                         * @param message BackfillNoneStrategy message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.Stream.IBackfillNoneStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified BackfillNoneStrategy message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.Stream.BackfillNoneStrategy.verify|verify} messages.
                         * @param message BackfillNoneStrategy message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.Stream.IBackfillNoneStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a BackfillNoneStrategy message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns BackfillNoneStrategy
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.Stream.BackfillNoneStrategy;

                        /**
                         * Decodes a BackfillNoneStrategy message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns BackfillNoneStrategy
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.Stream.BackfillNoneStrategy;

                        /**
                         * Verifies a BackfillNoneStrategy message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a BackfillNoneStrategy message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns BackfillNoneStrategy
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.Stream.BackfillNoneStrategy;

                        /**
                         * Creates a plain object from a BackfillNoneStrategy message. Also converts values to other types if specified.
                         * @param message BackfillNoneStrategy
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.Stream.BackfillNoneStrategy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this BackfillNoneStrategy to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for BackfillNoneStrategy
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a StreamObject. */
                interface IStreamObject {

                    /** StreamObject name */
                    name?: (string|null);

                    /** StreamObject createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** StreamObject updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** StreamObject displayName */
                    displayName?: (string|null);

                    /** StreamObject errors */
                    errors?: (google.cloud.datastream.v1.IError[]|null);

                    /** StreamObject backfillJob */
                    backfillJob?: (google.cloud.datastream.v1.IBackfillJob|null);

                    /** StreamObject sourceObject */
                    sourceObject?: (google.cloud.datastream.v1.ISourceObjectIdentifier|null);
                }

                /** Represents a StreamObject. */
                class StreamObject implements IStreamObject {

                    /**
                     * Constructs a new StreamObject.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IStreamObject);

                    /** StreamObject name. */
                    public name: string;

                    /** StreamObject createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** StreamObject updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** StreamObject displayName. */
                    public displayName: string;

                    /** StreamObject errors. */
                    public errors: google.cloud.datastream.v1.IError[];

                    /** StreamObject backfillJob. */
                    public backfillJob?: (google.cloud.datastream.v1.IBackfillJob|null);

                    /** StreamObject sourceObject. */
                    public sourceObject?: (google.cloud.datastream.v1.ISourceObjectIdentifier|null);

                    /**
                     * Creates a new StreamObject instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StreamObject instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IStreamObject): google.cloud.datastream.v1.StreamObject;

                    /**
                     * Encodes the specified StreamObject message. Does not implicitly {@link google.cloud.datastream.v1.StreamObject.verify|verify} messages.
                     * @param message StreamObject message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IStreamObject, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StreamObject message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.StreamObject.verify|verify} messages.
                     * @param message StreamObject message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IStreamObject, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StreamObject message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StreamObject
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.StreamObject;

                    /**
                     * Decodes a StreamObject message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StreamObject
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.StreamObject;

                    /**
                     * Verifies a StreamObject message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StreamObject message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StreamObject
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.StreamObject;

                    /**
                     * Creates a plain object from a StreamObject message. Also converts values to other types if specified.
                     * @param message StreamObject
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.StreamObject, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StreamObject to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StreamObject
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SourceObjectIdentifier. */
                interface ISourceObjectIdentifier {

                    /** SourceObjectIdentifier oracleIdentifier */
                    oracleIdentifier?: (google.cloud.datastream.v1.SourceObjectIdentifier.IOracleObjectIdentifier|null);

                    /** SourceObjectIdentifier mysqlIdentifier */
                    mysqlIdentifier?: (google.cloud.datastream.v1.SourceObjectIdentifier.IMysqlObjectIdentifier|null);

                    /** SourceObjectIdentifier postgresqlIdentifier */
                    postgresqlIdentifier?: (google.cloud.datastream.v1.SourceObjectIdentifier.IPostgresqlObjectIdentifier|null);

                    /** SourceObjectIdentifier sqlServerIdentifier */
                    sqlServerIdentifier?: (google.cloud.datastream.v1.SourceObjectIdentifier.ISqlServerObjectIdentifier|null);

                    /** SourceObjectIdentifier salesforceIdentifier */
                    salesforceIdentifier?: (google.cloud.datastream.v1.SourceObjectIdentifier.ISalesforceObjectIdentifier|null);

                    /** SourceObjectIdentifier mongodbIdentifier */
                    mongodbIdentifier?: (google.cloud.datastream.v1.SourceObjectIdentifier.IMongodbObjectIdentifier|null);
                }

                /** Represents a SourceObjectIdentifier. */
                class SourceObjectIdentifier implements ISourceObjectIdentifier {

                    /**
                     * Constructs a new SourceObjectIdentifier.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ISourceObjectIdentifier);

                    /** SourceObjectIdentifier oracleIdentifier. */
                    public oracleIdentifier?: (google.cloud.datastream.v1.SourceObjectIdentifier.IOracleObjectIdentifier|null);

                    /** SourceObjectIdentifier mysqlIdentifier. */
                    public mysqlIdentifier?: (google.cloud.datastream.v1.SourceObjectIdentifier.IMysqlObjectIdentifier|null);

                    /** SourceObjectIdentifier postgresqlIdentifier. */
                    public postgresqlIdentifier?: (google.cloud.datastream.v1.SourceObjectIdentifier.IPostgresqlObjectIdentifier|null);

                    /** SourceObjectIdentifier sqlServerIdentifier. */
                    public sqlServerIdentifier?: (google.cloud.datastream.v1.SourceObjectIdentifier.ISqlServerObjectIdentifier|null);

                    /** SourceObjectIdentifier salesforceIdentifier. */
                    public salesforceIdentifier?: (google.cloud.datastream.v1.SourceObjectIdentifier.ISalesforceObjectIdentifier|null);

                    /** SourceObjectIdentifier mongodbIdentifier. */
                    public mongodbIdentifier?: (google.cloud.datastream.v1.SourceObjectIdentifier.IMongodbObjectIdentifier|null);

                    /** SourceObjectIdentifier sourceIdentifier. */
                    public sourceIdentifier?: ("oracleIdentifier"|"mysqlIdentifier"|"postgresqlIdentifier"|"sqlServerIdentifier"|"salesforceIdentifier"|"mongodbIdentifier");

                    /**
                     * Creates a new SourceObjectIdentifier instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SourceObjectIdentifier instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ISourceObjectIdentifier): google.cloud.datastream.v1.SourceObjectIdentifier;

                    /**
                     * Encodes the specified SourceObjectIdentifier message. Does not implicitly {@link google.cloud.datastream.v1.SourceObjectIdentifier.verify|verify} messages.
                     * @param message SourceObjectIdentifier message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ISourceObjectIdentifier, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SourceObjectIdentifier message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SourceObjectIdentifier.verify|verify} messages.
                     * @param message SourceObjectIdentifier message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ISourceObjectIdentifier, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SourceObjectIdentifier message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SourceObjectIdentifier
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SourceObjectIdentifier;

                    /**
                     * Decodes a SourceObjectIdentifier message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SourceObjectIdentifier
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SourceObjectIdentifier;

                    /**
                     * Verifies a SourceObjectIdentifier message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SourceObjectIdentifier message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SourceObjectIdentifier
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SourceObjectIdentifier;

                    /**
                     * Creates a plain object from a SourceObjectIdentifier message. Also converts values to other types if specified.
                     * @param message SourceObjectIdentifier
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.SourceObjectIdentifier, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SourceObjectIdentifier to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SourceObjectIdentifier
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SourceObjectIdentifier {

                    /** Properties of an OracleObjectIdentifier. */
                    interface IOracleObjectIdentifier {

                        /** OracleObjectIdentifier schema */
                        schema?: (string|null);

                        /** OracleObjectIdentifier table */
                        table?: (string|null);
                    }

                    /** Represents an OracleObjectIdentifier. */
                    class OracleObjectIdentifier implements IOracleObjectIdentifier {

                        /**
                         * Constructs a new OracleObjectIdentifier.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.SourceObjectIdentifier.IOracleObjectIdentifier);

                        /** OracleObjectIdentifier schema. */
                        public schema: string;

                        /** OracleObjectIdentifier table. */
                        public table: string;

                        /**
                         * Creates a new OracleObjectIdentifier instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns OracleObjectIdentifier instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.SourceObjectIdentifier.IOracleObjectIdentifier): google.cloud.datastream.v1.SourceObjectIdentifier.OracleObjectIdentifier;

                        /**
                         * Encodes the specified OracleObjectIdentifier message. Does not implicitly {@link google.cloud.datastream.v1.SourceObjectIdentifier.OracleObjectIdentifier.verify|verify} messages.
                         * @param message OracleObjectIdentifier message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.SourceObjectIdentifier.IOracleObjectIdentifier, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified OracleObjectIdentifier message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SourceObjectIdentifier.OracleObjectIdentifier.verify|verify} messages.
                         * @param message OracleObjectIdentifier message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.SourceObjectIdentifier.IOracleObjectIdentifier, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an OracleObjectIdentifier message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns OracleObjectIdentifier
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SourceObjectIdentifier.OracleObjectIdentifier;

                        /**
                         * Decodes an OracleObjectIdentifier message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns OracleObjectIdentifier
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SourceObjectIdentifier.OracleObjectIdentifier;

                        /**
                         * Verifies an OracleObjectIdentifier message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an OracleObjectIdentifier message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns OracleObjectIdentifier
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SourceObjectIdentifier.OracleObjectIdentifier;

                        /**
                         * Creates a plain object from an OracleObjectIdentifier message. Also converts values to other types if specified.
                         * @param message OracleObjectIdentifier
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.SourceObjectIdentifier.OracleObjectIdentifier, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this OracleObjectIdentifier to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for OracleObjectIdentifier
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a PostgresqlObjectIdentifier. */
                    interface IPostgresqlObjectIdentifier {

                        /** PostgresqlObjectIdentifier schema */
                        schema?: (string|null);

                        /** PostgresqlObjectIdentifier table */
                        table?: (string|null);
                    }

                    /** Represents a PostgresqlObjectIdentifier. */
                    class PostgresqlObjectIdentifier implements IPostgresqlObjectIdentifier {

                        /**
                         * Constructs a new PostgresqlObjectIdentifier.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.SourceObjectIdentifier.IPostgresqlObjectIdentifier);

                        /** PostgresqlObjectIdentifier schema. */
                        public schema: string;

                        /** PostgresqlObjectIdentifier table. */
                        public table: string;

                        /**
                         * Creates a new PostgresqlObjectIdentifier instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PostgresqlObjectIdentifier instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.SourceObjectIdentifier.IPostgresqlObjectIdentifier): google.cloud.datastream.v1.SourceObjectIdentifier.PostgresqlObjectIdentifier;

                        /**
                         * Encodes the specified PostgresqlObjectIdentifier message. Does not implicitly {@link google.cloud.datastream.v1.SourceObjectIdentifier.PostgresqlObjectIdentifier.verify|verify} messages.
                         * @param message PostgresqlObjectIdentifier message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.SourceObjectIdentifier.IPostgresqlObjectIdentifier, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PostgresqlObjectIdentifier message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SourceObjectIdentifier.PostgresqlObjectIdentifier.verify|verify} messages.
                         * @param message PostgresqlObjectIdentifier message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.SourceObjectIdentifier.IPostgresqlObjectIdentifier, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PostgresqlObjectIdentifier message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PostgresqlObjectIdentifier
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SourceObjectIdentifier.PostgresqlObjectIdentifier;

                        /**
                         * Decodes a PostgresqlObjectIdentifier message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PostgresqlObjectIdentifier
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SourceObjectIdentifier.PostgresqlObjectIdentifier;

                        /**
                         * Verifies a PostgresqlObjectIdentifier message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PostgresqlObjectIdentifier message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PostgresqlObjectIdentifier
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SourceObjectIdentifier.PostgresqlObjectIdentifier;

                        /**
                         * Creates a plain object from a PostgresqlObjectIdentifier message. Also converts values to other types if specified.
                         * @param message PostgresqlObjectIdentifier
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.SourceObjectIdentifier.PostgresqlObjectIdentifier, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PostgresqlObjectIdentifier to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for PostgresqlObjectIdentifier
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a MysqlObjectIdentifier. */
                    interface IMysqlObjectIdentifier {

                        /** MysqlObjectIdentifier database */
                        database?: (string|null);

                        /** MysqlObjectIdentifier table */
                        table?: (string|null);
                    }

                    /** Represents a MysqlObjectIdentifier. */
                    class MysqlObjectIdentifier implements IMysqlObjectIdentifier {

                        /**
                         * Constructs a new MysqlObjectIdentifier.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.SourceObjectIdentifier.IMysqlObjectIdentifier);

                        /** MysqlObjectIdentifier database. */
                        public database: string;

                        /** MysqlObjectIdentifier table. */
                        public table: string;

                        /**
                         * Creates a new MysqlObjectIdentifier instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns MysqlObjectIdentifier instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.SourceObjectIdentifier.IMysqlObjectIdentifier): google.cloud.datastream.v1.SourceObjectIdentifier.MysqlObjectIdentifier;

                        /**
                         * Encodes the specified MysqlObjectIdentifier message. Does not implicitly {@link google.cloud.datastream.v1.SourceObjectIdentifier.MysqlObjectIdentifier.verify|verify} messages.
                         * @param message MysqlObjectIdentifier message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.SourceObjectIdentifier.IMysqlObjectIdentifier, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified MysqlObjectIdentifier message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SourceObjectIdentifier.MysqlObjectIdentifier.verify|verify} messages.
                         * @param message MysqlObjectIdentifier message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.SourceObjectIdentifier.IMysqlObjectIdentifier, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a MysqlObjectIdentifier message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns MysqlObjectIdentifier
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SourceObjectIdentifier.MysqlObjectIdentifier;

                        /**
                         * Decodes a MysqlObjectIdentifier message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns MysqlObjectIdentifier
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SourceObjectIdentifier.MysqlObjectIdentifier;

                        /**
                         * Verifies a MysqlObjectIdentifier message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a MysqlObjectIdentifier message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns MysqlObjectIdentifier
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SourceObjectIdentifier.MysqlObjectIdentifier;

                        /**
                         * Creates a plain object from a MysqlObjectIdentifier message. Also converts values to other types if specified.
                         * @param message MysqlObjectIdentifier
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.SourceObjectIdentifier.MysqlObjectIdentifier, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this MysqlObjectIdentifier to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for MysqlObjectIdentifier
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SqlServerObjectIdentifier. */
                    interface ISqlServerObjectIdentifier {

                        /** SqlServerObjectIdentifier schema */
                        schema?: (string|null);

                        /** SqlServerObjectIdentifier table */
                        table?: (string|null);
                    }

                    /** Represents a SqlServerObjectIdentifier. */
                    class SqlServerObjectIdentifier implements ISqlServerObjectIdentifier {

                        /**
                         * Constructs a new SqlServerObjectIdentifier.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.SourceObjectIdentifier.ISqlServerObjectIdentifier);

                        /** SqlServerObjectIdentifier schema. */
                        public schema: string;

                        /** SqlServerObjectIdentifier table. */
                        public table: string;

                        /**
                         * Creates a new SqlServerObjectIdentifier instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SqlServerObjectIdentifier instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.SourceObjectIdentifier.ISqlServerObjectIdentifier): google.cloud.datastream.v1.SourceObjectIdentifier.SqlServerObjectIdentifier;

                        /**
                         * Encodes the specified SqlServerObjectIdentifier message. Does not implicitly {@link google.cloud.datastream.v1.SourceObjectIdentifier.SqlServerObjectIdentifier.verify|verify} messages.
                         * @param message SqlServerObjectIdentifier message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.SourceObjectIdentifier.ISqlServerObjectIdentifier, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SqlServerObjectIdentifier message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SourceObjectIdentifier.SqlServerObjectIdentifier.verify|verify} messages.
                         * @param message SqlServerObjectIdentifier message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.SourceObjectIdentifier.ISqlServerObjectIdentifier, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SqlServerObjectIdentifier message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SqlServerObjectIdentifier
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SourceObjectIdentifier.SqlServerObjectIdentifier;

                        /**
                         * Decodes a SqlServerObjectIdentifier message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SqlServerObjectIdentifier
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SourceObjectIdentifier.SqlServerObjectIdentifier;

                        /**
                         * Verifies a SqlServerObjectIdentifier message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SqlServerObjectIdentifier message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SqlServerObjectIdentifier
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SourceObjectIdentifier.SqlServerObjectIdentifier;

                        /**
                         * Creates a plain object from a SqlServerObjectIdentifier message. Also converts values to other types if specified.
                         * @param message SqlServerObjectIdentifier
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.SourceObjectIdentifier.SqlServerObjectIdentifier, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SqlServerObjectIdentifier to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SqlServerObjectIdentifier
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SalesforceObjectIdentifier. */
                    interface ISalesforceObjectIdentifier {

                        /** SalesforceObjectIdentifier objectName */
                        objectName?: (string|null);
                    }

                    /** Represents a SalesforceObjectIdentifier. */
                    class SalesforceObjectIdentifier implements ISalesforceObjectIdentifier {

                        /**
                         * Constructs a new SalesforceObjectIdentifier.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.SourceObjectIdentifier.ISalesforceObjectIdentifier);

                        /** SalesforceObjectIdentifier objectName. */
                        public objectName: string;

                        /**
                         * Creates a new SalesforceObjectIdentifier instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SalesforceObjectIdentifier instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.SourceObjectIdentifier.ISalesforceObjectIdentifier): google.cloud.datastream.v1.SourceObjectIdentifier.SalesforceObjectIdentifier;

                        /**
                         * Encodes the specified SalesforceObjectIdentifier message. Does not implicitly {@link google.cloud.datastream.v1.SourceObjectIdentifier.SalesforceObjectIdentifier.verify|verify} messages.
                         * @param message SalesforceObjectIdentifier message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.SourceObjectIdentifier.ISalesforceObjectIdentifier, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SalesforceObjectIdentifier message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SourceObjectIdentifier.SalesforceObjectIdentifier.verify|verify} messages.
                         * @param message SalesforceObjectIdentifier message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.SourceObjectIdentifier.ISalesforceObjectIdentifier, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SalesforceObjectIdentifier message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SalesforceObjectIdentifier
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SourceObjectIdentifier.SalesforceObjectIdentifier;

                        /**
                         * Decodes a SalesforceObjectIdentifier message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SalesforceObjectIdentifier
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SourceObjectIdentifier.SalesforceObjectIdentifier;

                        /**
                         * Verifies a SalesforceObjectIdentifier message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SalesforceObjectIdentifier message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SalesforceObjectIdentifier
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SourceObjectIdentifier.SalesforceObjectIdentifier;

                        /**
                         * Creates a plain object from a SalesforceObjectIdentifier message. Also converts values to other types if specified.
                         * @param message SalesforceObjectIdentifier
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.SourceObjectIdentifier.SalesforceObjectIdentifier, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SalesforceObjectIdentifier to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SalesforceObjectIdentifier
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a MongodbObjectIdentifier. */
                    interface IMongodbObjectIdentifier {

                        /** MongodbObjectIdentifier database */
                        database?: (string|null);

                        /** MongodbObjectIdentifier collection */
                        collection?: (string|null);
                    }

                    /** Represents a MongodbObjectIdentifier. */
                    class MongodbObjectIdentifier implements IMongodbObjectIdentifier {

                        /**
                         * Constructs a new MongodbObjectIdentifier.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.SourceObjectIdentifier.IMongodbObjectIdentifier);

                        /** MongodbObjectIdentifier database. */
                        public database: string;

                        /** MongodbObjectIdentifier collection. */
                        public collection: string;

                        /**
                         * Creates a new MongodbObjectIdentifier instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns MongodbObjectIdentifier instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.SourceObjectIdentifier.IMongodbObjectIdentifier): google.cloud.datastream.v1.SourceObjectIdentifier.MongodbObjectIdentifier;

                        /**
                         * Encodes the specified MongodbObjectIdentifier message. Does not implicitly {@link google.cloud.datastream.v1.SourceObjectIdentifier.MongodbObjectIdentifier.verify|verify} messages.
                         * @param message MongodbObjectIdentifier message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.SourceObjectIdentifier.IMongodbObjectIdentifier, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified MongodbObjectIdentifier message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SourceObjectIdentifier.MongodbObjectIdentifier.verify|verify} messages.
                         * @param message MongodbObjectIdentifier message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.SourceObjectIdentifier.IMongodbObjectIdentifier, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a MongodbObjectIdentifier message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns MongodbObjectIdentifier
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SourceObjectIdentifier.MongodbObjectIdentifier;

                        /**
                         * Decodes a MongodbObjectIdentifier message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns MongodbObjectIdentifier
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SourceObjectIdentifier.MongodbObjectIdentifier;

                        /**
                         * Verifies a MongodbObjectIdentifier message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a MongodbObjectIdentifier message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns MongodbObjectIdentifier
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SourceObjectIdentifier.MongodbObjectIdentifier;

                        /**
                         * Creates a plain object from a MongodbObjectIdentifier message. Also converts values to other types if specified.
                         * @param message MongodbObjectIdentifier
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.SourceObjectIdentifier.MongodbObjectIdentifier, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this MongodbObjectIdentifier to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for MongodbObjectIdentifier
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a BackfillJob. */
                interface IBackfillJob {

                    /** BackfillJob state */
                    state?: (google.cloud.datastream.v1.BackfillJob.State|keyof typeof google.cloud.datastream.v1.BackfillJob.State|null);

                    /** BackfillJob trigger */
                    trigger?: (google.cloud.datastream.v1.BackfillJob.Trigger|keyof typeof google.cloud.datastream.v1.BackfillJob.Trigger|null);

                    /** BackfillJob lastStartTime */
                    lastStartTime?: (google.protobuf.ITimestamp|null);

                    /** BackfillJob lastEndTime */
                    lastEndTime?: (google.protobuf.ITimestamp|null);

                    /** BackfillJob errors */
                    errors?: (google.cloud.datastream.v1.IError[]|null);
                }

                /** Represents a BackfillJob. */
                class BackfillJob implements IBackfillJob {

                    /**
                     * Constructs a new BackfillJob.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IBackfillJob);

                    /** BackfillJob state. */
                    public state: (google.cloud.datastream.v1.BackfillJob.State|keyof typeof google.cloud.datastream.v1.BackfillJob.State);

                    /** BackfillJob trigger. */
                    public trigger: (google.cloud.datastream.v1.BackfillJob.Trigger|keyof typeof google.cloud.datastream.v1.BackfillJob.Trigger);

                    /** BackfillJob lastStartTime. */
                    public lastStartTime?: (google.protobuf.ITimestamp|null);

                    /** BackfillJob lastEndTime. */
                    public lastEndTime?: (google.protobuf.ITimestamp|null);

                    /** BackfillJob errors. */
                    public errors: google.cloud.datastream.v1.IError[];

                    /**
                     * Creates a new BackfillJob instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BackfillJob instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IBackfillJob): google.cloud.datastream.v1.BackfillJob;

                    /**
                     * Encodes the specified BackfillJob message. Does not implicitly {@link google.cloud.datastream.v1.BackfillJob.verify|verify} messages.
                     * @param message BackfillJob message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IBackfillJob, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BackfillJob message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.BackfillJob.verify|verify} messages.
                     * @param message BackfillJob message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IBackfillJob, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BackfillJob message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BackfillJob
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.BackfillJob;

                    /**
                     * Decodes a BackfillJob message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BackfillJob
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.BackfillJob;

                    /**
                     * Verifies a BackfillJob message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BackfillJob message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BackfillJob
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.BackfillJob;

                    /**
                     * Creates a plain object from a BackfillJob message. Also converts values to other types if specified.
                     * @param message BackfillJob
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.BackfillJob, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BackfillJob to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BackfillJob
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BackfillJob {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        NOT_STARTED = 1,
                        PENDING = 2,
                        ACTIVE = 3,
                        STOPPED = 4,
                        FAILED = 5,
                        COMPLETED = 6,
                        UNSUPPORTED = 7
                    }

                    /** Trigger enum. */
                    enum Trigger {
                        TRIGGER_UNSPECIFIED = 0,
                        AUTOMATIC = 1,
                        MANUAL = 2
                    }
                }

                /** Properties of an Error. */
                interface IError {

                    /** Error reason */
                    reason?: (string|null);

                    /** Error errorUuid */
                    errorUuid?: (string|null);

                    /** Error message */
                    message?: (string|null);

                    /** Error errorTime */
                    errorTime?: (google.protobuf.ITimestamp|null);

                    /** Error details */
                    details?: ({ [k: string]: string }|null);
                }

                /** Represents an Error. */
                class Error implements IError {

                    /**
                     * Constructs a new Error.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IError);

                    /** Error reason. */
                    public reason: string;

                    /** Error errorUuid. */
                    public errorUuid: string;

                    /** Error message. */
                    public message: string;

                    /** Error errorTime. */
                    public errorTime?: (google.protobuf.ITimestamp|null);

                    /** Error details. */
                    public details: { [k: string]: string };

                    /**
                     * Creates a new Error instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Error instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IError): google.cloud.datastream.v1.Error;

                    /**
                     * Encodes the specified Error message. Does not implicitly {@link google.cloud.datastream.v1.Error.verify|verify} messages.
                     * @param message Error message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Error message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.Error.verify|verify} messages.
                     * @param message Error message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Error message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Error
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.Error;

                    /**
                     * Decodes an Error message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Error
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.Error;

                    /**
                     * Verifies an Error message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an Error message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Error
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.Error;

                    /**
                     * Creates a plain object from an Error message. Also converts values to other types if specified.
                     * @param message Error
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.Error, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Error to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Error
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ValidationResult. */
                interface IValidationResult {

                    /** ValidationResult validations */
                    validations?: (google.cloud.datastream.v1.IValidation[]|null);
                }

                /** Represents a ValidationResult. */
                class ValidationResult implements IValidationResult {

                    /**
                     * Constructs a new ValidationResult.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IValidationResult);

                    /** ValidationResult validations. */
                    public validations: google.cloud.datastream.v1.IValidation[];

                    /**
                     * Creates a new ValidationResult instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ValidationResult instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IValidationResult): google.cloud.datastream.v1.ValidationResult;

                    /**
                     * Encodes the specified ValidationResult message. Does not implicitly {@link google.cloud.datastream.v1.ValidationResult.verify|verify} messages.
                     * @param message ValidationResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IValidationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ValidationResult message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.ValidationResult.verify|verify} messages.
                     * @param message ValidationResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IValidationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ValidationResult message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ValidationResult
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.ValidationResult;

                    /**
                     * Decodes a ValidationResult message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ValidationResult
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.ValidationResult;

                    /**
                     * Verifies a ValidationResult message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ValidationResult message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ValidationResult
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.ValidationResult;

                    /**
                     * Creates a plain object from a ValidationResult message. Also converts values to other types if specified.
                     * @param message ValidationResult
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.ValidationResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ValidationResult to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ValidationResult
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Validation. */
                interface IValidation {

                    /** Validation description */
                    description?: (string|null);

                    /** Validation state */
                    state?: (google.cloud.datastream.v1.Validation.State|keyof typeof google.cloud.datastream.v1.Validation.State|null);

                    /** Validation message */
                    message?: (google.cloud.datastream.v1.IValidationMessage[]|null);

                    /** Validation code */
                    code?: (string|null);
                }

                /** Represents a Validation. */
                class Validation implements IValidation {

                    /**
                     * Constructs a new Validation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IValidation);

                    /** Validation description. */
                    public description: string;

                    /** Validation state. */
                    public state: (google.cloud.datastream.v1.Validation.State|keyof typeof google.cloud.datastream.v1.Validation.State);

                    /** Validation message. */
                    public message: google.cloud.datastream.v1.IValidationMessage[];

                    /** Validation code. */
                    public code: string;

                    /**
                     * Creates a new Validation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Validation instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IValidation): google.cloud.datastream.v1.Validation;

                    /**
                     * Encodes the specified Validation message. Does not implicitly {@link google.cloud.datastream.v1.Validation.verify|verify} messages.
                     * @param message Validation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IValidation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Validation message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.Validation.verify|verify} messages.
                     * @param message Validation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IValidation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Validation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Validation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.Validation;

                    /**
                     * Decodes a Validation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Validation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.Validation;

                    /**
                     * Verifies a Validation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Validation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Validation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.Validation;

                    /**
                     * Creates a plain object from a Validation message. Also converts values to other types if specified.
                     * @param message Validation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.Validation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Validation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Validation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Validation {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        NOT_EXECUTED = 1,
                        FAILED = 2,
                        PASSED = 3,
                        WARNING = 4
                    }
                }

                /** Properties of a ValidationMessage. */
                interface IValidationMessage {

                    /** ValidationMessage message */
                    message?: (string|null);

                    /** ValidationMessage level */
                    level?: (google.cloud.datastream.v1.ValidationMessage.Level|keyof typeof google.cloud.datastream.v1.ValidationMessage.Level|null);

                    /** ValidationMessage metadata */
                    metadata?: ({ [k: string]: string }|null);

                    /** ValidationMessage code */
                    code?: (string|null);
                }

                /** Represents a ValidationMessage. */
                class ValidationMessage implements IValidationMessage {

                    /**
                     * Constructs a new ValidationMessage.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IValidationMessage);

                    /** ValidationMessage message. */
                    public message: string;

                    /** ValidationMessage level. */
                    public level: (google.cloud.datastream.v1.ValidationMessage.Level|keyof typeof google.cloud.datastream.v1.ValidationMessage.Level);

                    /** ValidationMessage metadata. */
                    public metadata: { [k: string]: string };

                    /** ValidationMessage code. */
                    public code: string;

                    /**
                     * Creates a new ValidationMessage instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ValidationMessage instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IValidationMessage): google.cloud.datastream.v1.ValidationMessage;

                    /**
                     * Encodes the specified ValidationMessage message. Does not implicitly {@link google.cloud.datastream.v1.ValidationMessage.verify|verify} messages.
                     * @param message ValidationMessage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IValidationMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ValidationMessage message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.ValidationMessage.verify|verify} messages.
                     * @param message ValidationMessage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IValidationMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ValidationMessage message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ValidationMessage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.ValidationMessage;

                    /**
                     * Decodes a ValidationMessage message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ValidationMessage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.ValidationMessage;

                    /**
                     * Verifies a ValidationMessage message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ValidationMessage message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ValidationMessage
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.ValidationMessage;

                    /**
                     * Creates a plain object from a ValidationMessage message. Also converts values to other types if specified.
                     * @param message ValidationMessage
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.ValidationMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ValidationMessage to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ValidationMessage
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ValidationMessage {

                    /** Level enum. */
                    enum Level {
                        LEVEL_UNSPECIFIED = 0,
                        WARNING = 1,
                        ERROR = 2
                    }
                }

                /** Properties of a CdcStrategy. */
                interface ICdcStrategy {

                    /** CdcStrategy mostRecentStartPosition */
                    mostRecentStartPosition?: (google.cloud.datastream.v1.CdcStrategy.IMostRecentStartPosition|null);

                    /** CdcStrategy nextAvailableStartPosition */
                    nextAvailableStartPosition?: (google.cloud.datastream.v1.CdcStrategy.INextAvailableStartPosition|null);

                    /** CdcStrategy specificStartPosition */
                    specificStartPosition?: (google.cloud.datastream.v1.CdcStrategy.ISpecificStartPosition|null);
                }

                /** Represents a CdcStrategy. */
                class CdcStrategy implements ICdcStrategy {

                    /**
                     * Constructs a new CdcStrategy.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ICdcStrategy);

                    /** CdcStrategy mostRecentStartPosition. */
                    public mostRecentStartPosition?: (google.cloud.datastream.v1.CdcStrategy.IMostRecentStartPosition|null);

                    /** CdcStrategy nextAvailableStartPosition. */
                    public nextAvailableStartPosition?: (google.cloud.datastream.v1.CdcStrategy.INextAvailableStartPosition|null);

                    /** CdcStrategy specificStartPosition. */
                    public specificStartPosition?: (google.cloud.datastream.v1.CdcStrategy.ISpecificStartPosition|null);

                    /** CdcStrategy startPosition. */
                    public startPosition?: ("mostRecentStartPosition"|"nextAvailableStartPosition"|"specificStartPosition");

                    /**
                     * Creates a new CdcStrategy instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CdcStrategy instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ICdcStrategy): google.cloud.datastream.v1.CdcStrategy;

                    /**
                     * Encodes the specified CdcStrategy message. Does not implicitly {@link google.cloud.datastream.v1.CdcStrategy.verify|verify} messages.
                     * @param message CdcStrategy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ICdcStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CdcStrategy message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.CdcStrategy.verify|verify} messages.
                     * @param message CdcStrategy message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ICdcStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CdcStrategy message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CdcStrategy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.CdcStrategy;

                    /**
                     * Decodes a CdcStrategy message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CdcStrategy
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.CdcStrategy;

                    /**
                     * Verifies a CdcStrategy message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CdcStrategy message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CdcStrategy
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.CdcStrategy;

                    /**
                     * Creates a plain object from a CdcStrategy message. Also converts values to other types if specified.
                     * @param message CdcStrategy
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.CdcStrategy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CdcStrategy to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CdcStrategy
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CdcStrategy {

                    /** Properties of a MostRecentStartPosition. */
                    interface IMostRecentStartPosition {
                    }

                    /** Represents a MostRecentStartPosition. */
                    class MostRecentStartPosition implements IMostRecentStartPosition {

                        /**
                         * Constructs a new MostRecentStartPosition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.CdcStrategy.IMostRecentStartPosition);

                        /**
                         * Creates a new MostRecentStartPosition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns MostRecentStartPosition instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.CdcStrategy.IMostRecentStartPosition): google.cloud.datastream.v1.CdcStrategy.MostRecentStartPosition;

                        /**
                         * Encodes the specified MostRecentStartPosition message. Does not implicitly {@link google.cloud.datastream.v1.CdcStrategy.MostRecentStartPosition.verify|verify} messages.
                         * @param message MostRecentStartPosition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.CdcStrategy.IMostRecentStartPosition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified MostRecentStartPosition message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.CdcStrategy.MostRecentStartPosition.verify|verify} messages.
                         * @param message MostRecentStartPosition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.CdcStrategy.IMostRecentStartPosition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a MostRecentStartPosition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns MostRecentStartPosition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.CdcStrategy.MostRecentStartPosition;

                        /**
                         * Decodes a MostRecentStartPosition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns MostRecentStartPosition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.CdcStrategy.MostRecentStartPosition;

                        /**
                         * Verifies a MostRecentStartPosition message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a MostRecentStartPosition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns MostRecentStartPosition
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.CdcStrategy.MostRecentStartPosition;

                        /**
                         * Creates a plain object from a MostRecentStartPosition message. Also converts values to other types if specified.
                         * @param message MostRecentStartPosition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.CdcStrategy.MostRecentStartPosition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this MostRecentStartPosition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for MostRecentStartPosition
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a NextAvailableStartPosition. */
                    interface INextAvailableStartPosition {
                    }

                    /** Represents a NextAvailableStartPosition. */
                    class NextAvailableStartPosition implements INextAvailableStartPosition {

                        /**
                         * Constructs a new NextAvailableStartPosition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.CdcStrategy.INextAvailableStartPosition);

                        /**
                         * Creates a new NextAvailableStartPosition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NextAvailableStartPosition instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.CdcStrategy.INextAvailableStartPosition): google.cloud.datastream.v1.CdcStrategy.NextAvailableStartPosition;

                        /**
                         * Encodes the specified NextAvailableStartPosition message. Does not implicitly {@link google.cloud.datastream.v1.CdcStrategy.NextAvailableStartPosition.verify|verify} messages.
                         * @param message NextAvailableStartPosition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.CdcStrategy.INextAvailableStartPosition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NextAvailableStartPosition message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.CdcStrategy.NextAvailableStartPosition.verify|verify} messages.
                         * @param message NextAvailableStartPosition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.CdcStrategy.INextAvailableStartPosition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NextAvailableStartPosition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NextAvailableStartPosition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.CdcStrategy.NextAvailableStartPosition;

                        /**
                         * Decodes a NextAvailableStartPosition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NextAvailableStartPosition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.CdcStrategy.NextAvailableStartPosition;

                        /**
                         * Verifies a NextAvailableStartPosition message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NextAvailableStartPosition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NextAvailableStartPosition
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.CdcStrategy.NextAvailableStartPosition;

                        /**
                         * Creates a plain object from a NextAvailableStartPosition message. Also converts values to other types if specified.
                         * @param message NextAvailableStartPosition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.CdcStrategy.NextAvailableStartPosition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NextAvailableStartPosition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for NextAvailableStartPosition
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SpecificStartPosition. */
                    interface ISpecificStartPosition {

                        /** SpecificStartPosition mysqlLogPosition */
                        mysqlLogPosition?: (google.cloud.datastream.v1.IMysqlLogPosition|null);

                        /** SpecificStartPosition oracleScnPosition */
                        oracleScnPosition?: (google.cloud.datastream.v1.IOracleScnPosition|null);

                        /** SpecificStartPosition sqlServerLsnPosition */
                        sqlServerLsnPosition?: (google.cloud.datastream.v1.ISqlServerLsnPosition|null);

                        /** SpecificStartPosition mysqlGtidPosition */
                        mysqlGtidPosition?: (google.cloud.datastream.v1.IMysqlGtidPosition|null);
                    }

                    /** Represents a SpecificStartPosition. */
                    class SpecificStartPosition implements ISpecificStartPosition {

                        /**
                         * Constructs a new SpecificStartPosition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1.CdcStrategy.ISpecificStartPosition);

                        /** SpecificStartPosition mysqlLogPosition. */
                        public mysqlLogPosition?: (google.cloud.datastream.v1.IMysqlLogPosition|null);

                        /** SpecificStartPosition oracleScnPosition. */
                        public oracleScnPosition?: (google.cloud.datastream.v1.IOracleScnPosition|null);

                        /** SpecificStartPosition sqlServerLsnPosition. */
                        public sqlServerLsnPosition?: (google.cloud.datastream.v1.ISqlServerLsnPosition|null);

                        /** SpecificStartPosition mysqlGtidPosition. */
                        public mysqlGtidPosition?: (google.cloud.datastream.v1.IMysqlGtidPosition|null);

                        /** SpecificStartPosition position. */
                        public position?: ("mysqlLogPosition"|"oracleScnPosition"|"sqlServerLsnPosition"|"mysqlGtidPosition");

                        /**
                         * Creates a new SpecificStartPosition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SpecificStartPosition instance
                         */
                        public static create(properties?: google.cloud.datastream.v1.CdcStrategy.ISpecificStartPosition): google.cloud.datastream.v1.CdcStrategy.SpecificStartPosition;

                        /**
                         * Encodes the specified SpecificStartPosition message. Does not implicitly {@link google.cloud.datastream.v1.CdcStrategy.SpecificStartPosition.verify|verify} messages.
                         * @param message SpecificStartPosition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1.CdcStrategy.ISpecificStartPosition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SpecificStartPosition message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.CdcStrategy.SpecificStartPosition.verify|verify} messages.
                         * @param message SpecificStartPosition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1.CdcStrategy.ISpecificStartPosition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SpecificStartPosition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SpecificStartPosition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.CdcStrategy.SpecificStartPosition;

                        /**
                         * Decodes a SpecificStartPosition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SpecificStartPosition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.CdcStrategy.SpecificStartPosition;

                        /**
                         * Verifies a SpecificStartPosition message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SpecificStartPosition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SpecificStartPosition
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.CdcStrategy.SpecificStartPosition;

                        /**
                         * Creates a plain object from a SpecificStartPosition message. Also converts values to other types if specified.
                         * @param message SpecificStartPosition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1.CdcStrategy.SpecificStartPosition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SpecificStartPosition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SpecificStartPosition
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a SqlServerLsnPosition. */
                interface ISqlServerLsnPosition {

                    /** SqlServerLsnPosition lsn */
                    lsn?: (string|null);
                }

                /** Represents a SqlServerLsnPosition. */
                class SqlServerLsnPosition implements ISqlServerLsnPosition {

                    /**
                     * Constructs a new SqlServerLsnPosition.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.ISqlServerLsnPosition);

                    /** SqlServerLsnPosition lsn. */
                    public lsn: string;

                    /**
                     * Creates a new SqlServerLsnPosition instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SqlServerLsnPosition instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.ISqlServerLsnPosition): google.cloud.datastream.v1.SqlServerLsnPosition;

                    /**
                     * Encodes the specified SqlServerLsnPosition message. Does not implicitly {@link google.cloud.datastream.v1.SqlServerLsnPosition.verify|verify} messages.
                     * @param message SqlServerLsnPosition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.ISqlServerLsnPosition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SqlServerLsnPosition message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.SqlServerLsnPosition.verify|verify} messages.
                     * @param message SqlServerLsnPosition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.ISqlServerLsnPosition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SqlServerLsnPosition message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SqlServerLsnPosition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.SqlServerLsnPosition;

                    /**
                     * Decodes a SqlServerLsnPosition message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SqlServerLsnPosition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.SqlServerLsnPosition;

                    /**
                     * Verifies a SqlServerLsnPosition message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SqlServerLsnPosition message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SqlServerLsnPosition
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.SqlServerLsnPosition;

                    /**
                     * Creates a plain object from a SqlServerLsnPosition message. Also converts values to other types if specified.
                     * @param message SqlServerLsnPosition
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.SqlServerLsnPosition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SqlServerLsnPosition to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SqlServerLsnPosition
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OracleScnPosition. */
                interface IOracleScnPosition {

                    /** OracleScnPosition scn */
                    scn?: (number|Long|string|null);
                }

                /** Represents an OracleScnPosition. */
                class OracleScnPosition implements IOracleScnPosition {

                    /**
                     * Constructs a new OracleScnPosition.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IOracleScnPosition);

                    /** OracleScnPosition scn. */
                    public scn: (number|Long|string);

                    /**
                     * Creates a new OracleScnPosition instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OracleScnPosition instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IOracleScnPosition): google.cloud.datastream.v1.OracleScnPosition;

                    /**
                     * Encodes the specified OracleScnPosition message. Does not implicitly {@link google.cloud.datastream.v1.OracleScnPosition.verify|verify} messages.
                     * @param message OracleScnPosition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IOracleScnPosition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OracleScnPosition message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.OracleScnPosition.verify|verify} messages.
                     * @param message OracleScnPosition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IOracleScnPosition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OracleScnPosition message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OracleScnPosition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.OracleScnPosition;

                    /**
                     * Decodes an OracleScnPosition message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OracleScnPosition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.OracleScnPosition;

                    /**
                     * Verifies an OracleScnPosition message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OracleScnPosition message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OracleScnPosition
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.OracleScnPosition;

                    /**
                     * Creates a plain object from an OracleScnPosition message. Also converts values to other types if specified.
                     * @param message OracleScnPosition
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.OracleScnPosition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OracleScnPosition to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OracleScnPosition
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MysqlLogPosition. */
                interface IMysqlLogPosition {

                    /** MysqlLogPosition logFile */
                    logFile?: (string|null);

                    /** MysqlLogPosition logPosition */
                    logPosition?: (number|null);
                }

                /** Represents a MysqlLogPosition. */
                class MysqlLogPosition implements IMysqlLogPosition {

                    /**
                     * Constructs a new MysqlLogPosition.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IMysqlLogPosition);

                    /** MysqlLogPosition logFile. */
                    public logFile: string;

                    /** MysqlLogPosition logPosition. */
                    public logPosition?: (number|null);

                    /**
                     * Creates a new MysqlLogPosition instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MysqlLogPosition instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IMysqlLogPosition): google.cloud.datastream.v1.MysqlLogPosition;

                    /**
                     * Encodes the specified MysqlLogPosition message. Does not implicitly {@link google.cloud.datastream.v1.MysqlLogPosition.verify|verify} messages.
                     * @param message MysqlLogPosition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IMysqlLogPosition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MysqlLogPosition message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MysqlLogPosition.verify|verify} messages.
                     * @param message MysqlLogPosition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IMysqlLogPosition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MysqlLogPosition message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MysqlLogPosition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MysqlLogPosition;

                    /**
                     * Decodes a MysqlLogPosition message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MysqlLogPosition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MysqlLogPosition;

                    /**
                     * Verifies a MysqlLogPosition message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MysqlLogPosition message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MysqlLogPosition
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MysqlLogPosition;

                    /**
                     * Creates a plain object from a MysqlLogPosition message. Also converts values to other types if specified.
                     * @param message MysqlLogPosition
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.MysqlLogPosition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MysqlLogPosition to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MysqlLogPosition
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MysqlGtidPosition. */
                interface IMysqlGtidPosition {

                    /** MysqlGtidPosition gtidSet */
                    gtidSet?: (string|null);
                }

                /** Represents a MysqlGtidPosition. */
                class MysqlGtidPosition implements IMysqlGtidPosition {

                    /**
                     * Constructs a new MysqlGtidPosition.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1.IMysqlGtidPosition);

                    /** MysqlGtidPosition gtidSet. */
                    public gtidSet: string;

                    /**
                     * Creates a new MysqlGtidPosition instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MysqlGtidPosition instance
                     */
                    public static create(properties?: google.cloud.datastream.v1.IMysqlGtidPosition): google.cloud.datastream.v1.MysqlGtidPosition;

                    /**
                     * Encodes the specified MysqlGtidPosition message. Does not implicitly {@link google.cloud.datastream.v1.MysqlGtidPosition.verify|verify} messages.
                     * @param message MysqlGtidPosition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1.IMysqlGtidPosition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MysqlGtidPosition message, length delimited. Does not implicitly {@link google.cloud.datastream.v1.MysqlGtidPosition.verify|verify} messages.
                     * @param message MysqlGtidPosition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1.IMysqlGtidPosition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MysqlGtidPosition message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MysqlGtidPosition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1.MysqlGtidPosition;

                    /**
                     * Decodes a MysqlGtidPosition message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MysqlGtidPosition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1.MysqlGtidPosition;

                    /**
                     * Verifies a MysqlGtidPosition message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MysqlGtidPosition message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MysqlGtidPosition
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1.MysqlGtidPosition;

                    /**
                     * Creates a plain object from a MysqlGtidPosition message. Also converts values to other types if specified.
                     * @param message MysqlGtidPosition
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1.MysqlGtidPosition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MysqlGtidPosition to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MysqlGtidPosition
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }

            /** Namespace v1alpha1. */
            namespace v1alpha1 {

                /** Represents a Datastream */
                class Datastream extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new Datastream service.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     */
                    constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                    /**
                     * Creates new Datastream service using the specified rpc implementation.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     * @returns RPC service. Useful where requests and/or responses are streamed.
                     */
                    public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): Datastream;

                    /**
                     * Calls ListConnectionProfiles.
                     * @param request ListConnectionProfilesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListConnectionProfilesResponse
                     */
                    public listConnectionProfiles(request: google.cloud.datastream.v1alpha1.IListConnectionProfilesRequest, callback: google.cloud.datastream.v1alpha1.Datastream.ListConnectionProfilesCallback): void;

                    /**
                     * Calls ListConnectionProfiles.
                     * @param request ListConnectionProfilesRequest message or plain object
                     * @returns Promise
                     */
                    public listConnectionProfiles(request: google.cloud.datastream.v1alpha1.IListConnectionProfilesRequest): Promise<google.cloud.datastream.v1alpha1.ListConnectionProfilesResponse>;

                    /**
                     * Calls GetConnectionProfile.
                     * @param request GetConnectionProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ConnectionProfile
                     */
                    public getConnectionProfile(request: google.cloud.datastream.v1alpha1.IGetConnectionProfileRequest, callback: google.cloud.datastream.v1alpha1.Datastream.GetConnectionProfileCallback): void;

                    /**
                     * Calls GetConnectionProfile.
                     * @param request GetConnectionProfileRequest message or plain object
                     * @returns Promise
                     */
                    public getConnectionProfile(request: google.cloud.datastream.v1alpha1.IGetConnectionProfileRequest): Promise<google.cloud.datastream.v1alpha1.ConnectionProfile>;

                    /**
                     * Calls CreateConnectionProfile.
                     * @param request CreateConnectionProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createConnectionProfile(request: google.cloud.datastream.v1alpha1.ICreateConnectionProfileRequest, callback: google.cloud.datastream.v1alpha1.Datastream.CreateConnectionProfileCallback): void;

                    /**
                     * Calls CreateConnectionProfile.
                     * @param request CreateConnectionProfileRequest message or plain object
                     * @returns Promise
                     */
                    public createConnectionProfile(request: google.cloud.datastream.v1alpha1.ICreateConnectionProfileRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls UpdateConnectionProfile.
                     * @param request UpdateConnectionProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateConnectionProfile(request: google.cloud.datastream.v1alpha1.IUpdateConnectionProfileRequest, callback: google.cloud.datastream.v1alpha1.Datastream.UpdateConnectionProfileCallback): void;

                    /**
                     * Calls UpdateConnectionProfile.
                     * @param request UpdateConnectionProfileRequest message or plain object
                     * @returns Promise
                     */
                    public updateConnectionProfile(request: google.cloud.datastream.v1alpha1.IUpdateConnectionProfileRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls DeleteConnectionProfile.
                     * @param request DeleteConnectionProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteConnectionProfile(request: google.cloud.datastream.v1alpha1.IDeleteConnectionProfileRequest, callback: google.cloud.datastream.v1alpha1.Datastream.DeleteConnectionProfileCallback): void;

                    /**
                     * Calls DeleteConnectionProfile.
                     * @param request DeleteConnectionProfileRequest message or plain object
                     * @returns Promise
                     */
                    public deleteConnectionProfile(request: google.cloud.datastream.v1alpha1.IDeleteConnectionProfileRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls DiscoverConnectionProfile.
                     * @param request DiscoverConnectionProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiscoverConnectionProfileResponse
                     */
                    public discoverConnectionProfile(request: google.cloud.datastream.v1alpha1.IDiscoverConnectionProfileRequest, callback: google.cloud.datastream.v1alpha1.Datastream.DiscoverConnectionProfileCallback): void;

                    /**
                     * Calls DiscoverConnectionProfile.
                     * @param request DiscoverConnectionProfileRequest message or plain object
                     * @returns Promise
                     */
                    public discoverConnectionProfile(request: google.cloud.datastream.v1alpha1.IDiscoverConnectionProfileRequest): Promise<google.cloud.datastream.v1alpha1.DiscoverConnectionProfileResponse>;

                    /**
                     * Calls ListStreams.
                     * @param request ListStreamsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListStreamsResponse
                     */
                    public listStreams(request: google.cloud.datastream.v1alpha1.IListStreamsRequest, callback: google.cloud.datastream.v1alpha1.Datastream.ListStreamsCallback): void;

                    /**
                     * Calls ListStreams.
                     * @param request ListStreamsRequest message or plain object
                     * @returns Promise
                     */
                    public listStreams(request: google.cloud.datastream.v1alpha1.IListStreamsRequest): Promise<google.cloud.datastream.v1alpha1.ListStreamsResponse>;

                    /**
                     * Calls GetStream.
                     * @param request GetStreamRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Stream
                     */
                    public getStream(request: google.cloud.datastream.v1alpha1.IGetStreamRequest, callback: google.cloud.datastream.v1alpha1.Datastream.GetStreamCallback): void;

                    /**
                     * Calls GetStream.
                     * @param request GetStreamRequest message or plain object
                     * @returns Promise
                     */
                    public getStream(request: google.cloud.datastream.v1alpha1.IGetStreamRequest): Promise<google.cloud.datastream.v1alpha1.Stream>;

                    /**
                     * Calls CreateStream.
                     * @param request CreateStreamRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createStream(request: google.cloud.datastream.v1alpha1.ICreateStreamRequest, callback: google.cloud.datastream.v1alpha1.Datastream.CreateStreamCallback): void;

                    /**
                     * Calls CreateStream.
                     * @param request CreateStreamRequest message or plain object
                     * @returns Promise
                     */
                    public createStream(request: google.cloud.datastream.v1alpha1.ICreateStreamRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls UpdateStream.
                     * @param request UpdateStreamRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public updateStream(request: google.cloud.datastream.v1alpha1.IUpdateStreamRequest, callback: google.cloud.datastream.v1alpha1.Datastream.UpdateStreamCallback): void;

                    /**
                     * Calls UpdateStream.
                     * @param request UpdateStreamRequest message or plain object
                     * @returns Promise
                     */
                    public updateStream(request: google.cloud.datastream.v1alpha1.IUpdateStreamRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls DeleteStream.
                     * @param request DeleteStreamRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteStream(request: google.cloud.datastream.v1alpha1.IDeleteStreamRequest, callback: google.cloud.datastream.v1alpha1.Datastream.DeleteStreamCallback): void;

                    /**
                     * Calls DeleteStream.
                     * @param request DeleteStreamRequest message or plain object
                     * @returns Promise
                     */
                    public deleteStream(request: google.cloud.datastream.v1alpha1.IDeleteStreamRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls FetchErrors.
                     * @param request FetchErrorsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public fetchErrors(request: google.cloud.datastream.v1alpha1.IFetchErrorsRequest, callback: google.cloud.datastream.v1alpha1.Datastream.FetchErrorsCallback): void;

                    /**
                     * Calls FetchErrors.
                     * @param request FetchErrorsRequest message or plain object
                     * @returns Promise
                     */
                    public fetchErrors(request: google.cloud.datastream.v1alpha1.IFetchErrorsRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls FetchStaticIps.
                     * @param request FetchStaticIpsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FetchStaticIpsResponse
                     */
                    public fetchStaticIps(request: google.cloud.datastream.v1alpha1.IFetchStaticIpsRequest, callback: google.cloud.datastream.v1alpha1.Datastream.FetchStaticIpsCallback): void;

                    /**
                     * Calls FetchStaticIps.
                     * @param request FetchStaticIpsRequest message or plain object
                     * @returns Promise
                     */
                    public fetchStaticIps(request: google.cloud.datastream.v1alpha1.IFetchStaticIpsRequest): Promise<google.cloud.datastream.v1alpha1.FetchStaticIpsResponse>;

                    /**
                     * Calls CreatePrivateConnection.
                     * @param request CreatePrivateConnectionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createPrivateConnection(request: google.cloud.datastream.v1alpha1.ICreatePrivateConnectionRequest, callback: google.cloud.datastream.v1alpha1.Datastream.CreatePrivateConnectionCallback): void;

                    /**
                     * Calls CreatePrivateConnection.
                     * @param request CreatePrivateConnectionRequest message or plain object
                     * @returns Promise
                     */
                    public createPrivateConnection(request: google.cloud.datastream.v1alpha1.ICreatePrivateConnectionRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls GetPrivateConnection.
                     * @param request GetPrivateConnectionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and PrivateConnection
                     */
                    public getPrivateConnection(request: google.cloud.datastream.v1alpha1.IGetPrivateConnectionRequest, callback: google.cloud.datastream.v1alpha1.Datastream.GetPrivateConnectionCallback): void;

                    /**
                     * Calls GetPrivateConnection.
                     * @param request GetPrivateConnectionRequest message or plain object
                     * @returns Promise
                     */
                    public getPrivateConnection(request: google.cloud.datastream.v1alpha1.IGetPrivateConnectionRequest): Promise<google.cloud.datastream.v1alpha1.PrivateConnection>;

                    /**
                     * Calls ListPrivateConnections.
                     * @param request ListPrivateConnectionsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListPrivateConnectionsResponse
                     */
                    public listPrivateConnections(request: google.cloud.datastream.v1alpha1.IListPrivateConnectionsRequest, callback: google.cloud.datastream.v1alpha1.Datastream.ListPrivateConnectionsCallback): void;

                    /**
                     * Calls ListPrivateConnections.
                     * @param request ListPrivateConnectionsRequest message or plain object
                     * @returns Promise
                     */
                    public listPrivateConnections(request: google.cloud.datastream.v1alpha1.IListPrivateConnectionsRequest): Promise<google.cloud.datastream.v1alpha1.ListPrivateConnectionsResponse>;

                    /**
                     * Calls DeletePrivateConnection.
                     * @param request DeletePrivateConnectionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deletePrivateConnection(request: google.cloud.datastream.v1alpha1.IDeletePrivateConnectionRequest, callback: google.cloud.datastream.v1alpha1.Datastream.DeletePrivateConnectionCallback): void;

                    /**
                     * Calls DeletePrivateConnection.
                     * @param request DeletePrivateConnectionRequest message or plain object
                     * @returns Promise
                     */
                    public deletePrivateConnection(request: google.cloud.datastream.v1alpha1.IDeletePrivateConnectionRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls CreateRoute.
                     * @param request CreateRouteRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public createRoute(request: google.cloud.datastream.v1alpha1.ICreateRouteRequest, callback: google.cloud.datastream.v1alpha1.Datastream.CreateRouteCallback): void;

                    /**
                     * Calls CreateRoute.
                     * @param request CreateRouteRequest message or plain object
                     * @returns Promise
                     */
                    public createRoute(request: google.cloud.datastream.v1alpha1.ICreateRouteRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls GetRoute.
                     * @param request GetRouteRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Route
                     */
                    public getRoute(request: google.cloud.datastream.v1alpha1.IGetRouteRequest, callback: google.cloud.datastream.v1alpha1.Datastream.GetRouteCallback): void;

                    /**
                     * Calls GetRoute.
                     * @param request GetRouteRequest message or plain object
                     * @returns Promise
                     */
                    public getRoute(request: google.cloud.datastream.v1alpha1.IGetRouteRequest): Promise<google.cloud.datastream.v1alpha1.Route>;

                    /**
                     * Calls ListRoutes.
                     * @param request ListRoutesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListRoutesResponse
                     */
                    public listRoutes(request: google.cloud.datastream.v1alpha1.IListRoutesRequest, callback: google.cloud.datastream.v1alpha1.Datastream.ListRoutesCallback): void;

                    /**
                     * Calls ListRoutes.
                     * @param request ListRoutesRequest message or plain object
                     * @returns Promise
                     */
                    public listRoutes(request: google.cloud.datastream.v1alpha1.IListRoutesRequest): Promise<google.cloud.datastream.v1alpha1.ListRoutesResponse>;

                    /**
                     * Calls DeleteRoute.
                     * @param request DeleteRouteRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public deleteRoute(request: google.cloud.datastream.v1alpha1.IDeleteRouteRequest, callback: google.cloud.datastream.v1alpha1.Datastream.DeleteRouteCallback): void;

                    /**
                     * Calls DeleteRoute.
                     * @param request DeleteRouteRequest message or plain object
                     * @returns Promise
                     */
                    public deleteRoute(request: google.cloud.datastream.v1alpha1.IDeleteRouteRequest): Promise<google.longrunning.Operation>;
                }

                namespace Datastream {

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|listConnectionProfiles}.
                     * @param error Error, if any
                     * @param [response] ListConnectionProfilesResponse
                     */
                    type ListConnectionProfilesCallback = (error: (Error|null), response?: google.cloud.datastream.v1alpha1.ListConnectionProfilesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|getConnectionProfile}.
                     * @param error Error, if any
                     * @param [response] ConnectionProfile
                     */
                    type GetConnectionProfileCallback = (error: (Error|null), response?: google.cloud.datastream.v1alpha1.ConnectionProfile) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|createConnectionProfile}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateConnectionProfileCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|updateConnectionProfile}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateConnectionProfileCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|deleteConnectionProfile}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteConnectionProfileCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|discoverConnectionProfile}.
                     * @param error Error, if any
                     * @param [response] DiscoverConnectionProfileResponse
                     */
                    type DiscoverConnectionProfileCallback = (error: (Error|null), response?: google.cloud.datastream.v1alpha1.DiscoverConnectionProfileResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|listStreams}.
                     * @param error Error, if any
                     * @param [response] ListStreamsResponse
                     */
                    type ListStreamsCallback = (error: (Error|null), response?: google.cloud.datastream.v1alpha1.ListStreamsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|getStream}.
                     * @param error Error, if any
                     * @param [response] Stream
                     */
                    type GetStreamCallback = (error: (Error|null), response?: google.cloud.datastream.v1alpha1.Stream) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|createStream}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateStreamCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|updateStream}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type UpdateStreamCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|deleteStream}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteStreamCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|fetchErrors}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type FetchErrorsCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|fetchStaticIps}.
                     * @param error Error, if any
                     * @param [response] FetchStaticIpsResponse
                     */
                    type FetchStaticIpsCallback = (error: (Error|null), response?: google.cloud.datastream.v1alpha1.FetchStaticIpsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|createPrivateConnection}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreatePrivateConnectionCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|getPrivateConnection}.
                     * @param error Error, if any
                     * @param [response] PrivateConnection
                     */
                    type GetPrivateConnectionCallback = (error: (Error|null), response?: google.cloud.datastream.v1alpha1.PrivateConnection) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|listPrivateConnections}.
                     * @param error Error, if any
                     * @param [response] ListPrivateConnectionsResponse
                     */
                    type ListPrivateConnectionsCallback = (error: (Error|null), response?: google.cloud.datastream.v1alpha1.ListPrivateConnectionsResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|deletePrivateConnection}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeletePrivateConnectionCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|createRoute}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type CreateRouteCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|getRoute}.
                     * @param error Error, if any
                     * @param [response] Route
                     */
                    type GetRouteCallback = (error: (Error|null), response?: google.cloud.datastream.v1alpha1.Route) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|listRoutes}.
                     * @param error Error, if any
                     * @param [response] ListRoutesResponse
                     */
                    type ListRoutesCallback = (error: (Error|null), response?: google.cloud.datastream.v1alpha1.ListRoutesResponse) => void;

                    /**
                     * Callback as used by {@link google.cloud.datastream.v1alpha1.Datastream|deleteRoute}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type DeleteRouteCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;
                }

                /** Properties of a DiscoverConnectionProfileRequest. */
                interface IDiscoverConnectionProfileRequest {

                    /** DiscoverConnectionProfileRequest parent */
                    parent?: (string|null);

                    /** DiscoverConnectionProfileRequest connectionProfile */
                    connectionProfile?: (google.cloud.datastream.v1alpha1.IConnectionProfile|null);

                    /** DiscoverConnectionProfileRequest connectionProfileName */
                    connectionProfileName?: (string|null);

                    /** DiscoverConnectionProfileRequest recursive */
                    recursive?: (boolean|null);

                    /** DiscoverConnectionProfileRequest recursionDepth */
                    recursionDepth?: (number|null);

                    /** DiscoverConnectionProfileRequest oracleRdbms */
                    oracleRdbms?: (google.cloud.datastream.v1alpha1.IOracleRdbms|null);

                    /** DiscoverConnectionProfileRequest mysqlRdbms */
                    mysqlRdbms?: (google.cloud.datastream.v1alpha1.IMysqlRdbms|null);
                }

                /** Represents a DiscoverConnectionProfileRequest. */
                class DiscoverConnectionProfileRequest implements IDiscoverConnectionProfileRequest {

                    /**
                     * Constructs a new DiscoverConnectionProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IDiscoverConnectionProfileRequest);

                    /** DiscoverConnectionProfileRequest parent. */
                    public parent: string;

                    /** DiscoverConnectionProfileRequest connectionProfile. */
                    public connectionProfile?: (google.cloud.datastream.v1alpha1.IConnectionProfile|null);

                    /** DiscoverConnectionProfileRequest connectionProfileName. */
                    public connectionProfileName?: (string|null);

                    /** DiscoverConnectionProfileRequest recursive. */
                    public recursive?: (boolean|null);

                    /** DiscoverConnectionProfileRequest recursionDepth. */
                    public recursionDepth?: (number|null);

                    /** DiscoverConnectionProfileRequest oracleRdbms. */
                    public oracleRdbms?: (google.cloud.datastream.v1alpha1.IOracleRdbms|null);

                    /** DiscoverConnectionProfileRequest mysqlRdbms. */
                    public mysqlRdbms?: (google.cloud.datastream.v1alpha1.IMysqlRdbms|null);

                    /** DiscoverConnectionProfileRequest target. */
                    public target?: ("connectionProfile"|"connectionProfileName");

                    /** DiscoverConnectionProfileRequest depth. */
                    public depth?: ("recursive"|"recursionDepth");

                    /** DiscoverConnectionProfileRequest dataObject. */
                    public dataObject?: ("oracleRdbms"|"mysqlRdbms");

                    /**
                     * Creates a new DiscoverConnectionProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiscoverConnectionProfileRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IDiscoverConnectionProfileRequest): google.cloud.datastream.v1alpha1.DiscoverConnectionProfileRequest;

                    /**
                     * Encodes the specified DiscoverConnectionProfileRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.DiscoverConnectionProfileRequest.verify|verify} messages.
                     * @param message DiscoverConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IDiscoverConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiscoverConnectionProfileRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.DiscoverConnectionProfileRequest.verify|verify} messages.
                     * @param message DiscoverConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IDiscoverConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiscoverConnectionProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoverConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.DiscoverConnectionProfileRequest;

                    /**
                     * Decodes a DiscoverConnectionProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoverConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.DiscoverConnectionProfileRequest;

                    /**
                     * Verifies a DiscoverConnectionProfileRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiscoverConnectionProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoverConnectionProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.DiscoverConnectionProfileRequest;

                    /**
                     * Creates a plain object from a DiscoverConnectionProfileRequest message. Also converts values to other types if specified.
                     * @param message DiscoverConnectionProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.DiscoverConnectionProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiscoverConnectionProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiscoverConnectionProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DiscoverConnectionProfileResponse. */
                interface IDiscoverConnectionProfileResponse {

                    /** DiscoverConnectionProfileResponse oracleRdbms */
                    oracleRdbms?: (google.cloud.datastream.v1alpha1.IOracleRdbms|null);

                    /** DiscoverConnectionProfileResponse mysqlRdbms */
                    mysqlRdbms?: (google.cloud.datastream.v1alpha1.IMysqlRdbms|null);
                }

                /** Represents a DiscoverConnectionProfileResponse. */
                class DiscoverConnectionProfileResponse implements IDiscoverConnectionProfileResponse {

                    /**
                     * Constructs a new DiscoverConnectionProfileResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IDiscoverConnectionProfileResponse);

                    /** DiscoverConnectionProfileResponse oracleRdbms. */
                    public oracleRdbms?: (google.cloud.datastream.v1alpha1.IOracleRdbms|null);

                    /** DiscoverConnectionProfileResponse mysqlRdbms. */
                    public mysqlRdbms?: (google.cloud.datastream.v1alpha1.IMysqlRdbms|null);

                    /** DiscoverConnectionProfileResponse dataObject. */
                    public dataObject?: ("oracleRdbms"|"mysqlRdbms");

                    /**
                     * Creates a new DiscoverConnectionProfileResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DiscoverConnectionProfileResponse instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IDiscoverConnectionProfileResponse): google.cloud.datastream.v1alpha1.DiscoverConnectionProfileResponse;

                    /**
                     * Encodes the specified DiscoverConnectionProfileResponse message. Does not implicitly {@link google.cloud.datastream.v1alpha1.DiscoverConnectionProfileResponse.verify|verify} messages.
                     * @param message DiscoverConnectionProfileResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IDiscoverConnectionProfileResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DiscoverConnectionProfileResponse message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.DiscoverConnectionProfileResponse.verify|verify} messages.
                     * @param message DiscoverConnectionProfileResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IDiscoverConnectionProfileResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DiscoverConnectionProfileResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoverConnectionProfileResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.DiscoverConnectionProfileResponse;

                    /**
                     * Decodes a DiscoverConnectionProfileResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoverConnectionProfileResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.DiscoverConnectionProfileResponse;

                    /**
                     * Verifies a DiscoverConnectionProfileResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DiscoverConnectionProfileResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoverConnectionProfileResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.DiscoverConnectionProfileResponse;

                    /**
                     * Creates a plain object from a DiscoverConnectionProfileResponse message. Also converts values to other types if specified.
                     * @param message DiscoverConnectionProfileResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.DiscoverConnectionProfileResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DiscoverConnectionProfileResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DiscoverConnectionProfileResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FetchStaticIpsRequest. */
                interface IFetchStaticIpsRequest {

                    /** FetchStaticIpsRequest name */
                    name?: (string|null);

                    /** FetchStaticIpsRequest pageSize */
                    pageSize?: (number|null);

                    /** FetchStaticIpsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a FetchStaticIpsRequest. */
                class FetchStaticIpsRequest implements IFetchStaticIpsRequest {

                    /**
                     * Constructs a new FetchStaticIpsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IFetchStaticIpsRequest);

                    /** FetchStaticIpsRequest name. */
                    public name: string;

                    /** FetchStaticIpsRequest pageSize. */
                    public pageSize: number;

                    /** FetchStaticIpsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new FetchStaticIpsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FetchStaticIpsRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IFetchStaticIpsRequest): google.cloud.datastream.v1alpha1.FetchStaticIpsRequest;

                    /**
                     * Encodes the specified FetchStaticIpsRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.FetchStaticIpsRequest.verify|verify} messages.
                     * @param message FetchStaticIpsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IFetchStaticIpsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FetchStaticIpsRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.FetchStaticIpsRequest.verify|verify} messages.
                     * @param message FetchStaticIpsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IFetchStaticIpsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FetchStaticIpsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FetchStaticIpsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.FetchStaticIpsRequest;

                    /**
                     * Decodes a FetchStaticIpsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FetchStaticIpsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.FetchStaticIpsRequest;

                    /**
                     * Verifies a FetchStaticIpsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FetchStaticIpsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FetchStaticIpsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.FetchStaticIpsRequest;

                    /**
                     * Creates a plain object from a FetchStaticIpsRequest message. Also converts values to other types if specified.
                     * @param message FetchStaticIpsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.FetchStaticIpsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FetchStaticIpsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FetchStaticIpsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FetchStaticIpsResponse. */
                interface IFetchStaticIpsResponse {

                    /** FetchStaticIpsResponse staticIps */
                    staticIps?: (string[]|null);

                    /** FetchStaticIpsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a FetchStaticIpsResponse. */
                class FetchStaticIpsResponse implements IFetchStaticIpsResponse {

                    /**
                     * Constructs a new FetchStaticIpsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IFetchStaticIpsResponse);

                    /** FetchStaticIpsResponse staticIps. */
                    public staticIps: string[];

                    /** FetchStaticIpsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new FetchStaticIpsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FetchStaticIpsResponse instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IFetchStaticIpsResponse): google.cloud.datastream.v1alpha1.FetchStaticIpsResponse;

                    /**
                     * Encodes the specified FetchStaticIpsResponse message. Does not implicitly {@link google.cloud.datastream.v1alpha1.FetchStaticIpsResponse.verify|verify} messages.
                     * @param message FetchStaticIpsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IFetchStaticIpsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FetchStaticIpsResponse message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.FetchStaticIpsResponse.verify|verify} messages.
                     * @param message FetchStaticIpsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IFetchStaticIpsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FetchStaticIpsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FetchStaticIpsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.FetchStaticIpsResponse;

                    /**
                     * Decodes a FetchStaticIpsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FetchStaticIpsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.FetchStaticIpsResponse;

                    /**
                     * Verifies a FetchStaticIpsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FetchStaticIpsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FetchStaticIpsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.FetchStaticIpsResponse;

                    /**
                     * Creates a plain object from a FetchStaticIpsResponse message. Also converts values to other types if specified.
                     * @param message FetchStaticIpsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.FetchStaticIpsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FetchStaticIpsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FetchStaticIpsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FetchErrorsRequest. */
                interface IFetchErrorsRequest {

                    /** FetchErrorsRequest stream */
                    stream?: (string|null);
                }

                /** Represents a FetchErrorsRequest. */
                class FetchErrorsRequest implements IFetchErrorsRequest {

                    /**
                     * Constructs a new FetchErrorsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IFetchErrorsRequest);

                    /** FetchErrorsRequest stream. */
                    public stream: string;

                    /**
                     * Creates a new FetchErrorsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FetchErrorsRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IFetchErrorsRequest): google.cloud.datastream.v1alpha1.FetchErrorsRequest;

                    /**
                     * Encodes the specified FetchErrorsRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.FetchErrorsRequest.verify|verify} messages.
                     * @param message FetchErrorsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IFetchErrorsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FetchErrorsRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.FetchErrorsRequest.verify|verify} messages.
                     * @param message FetchErrorsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IFetchErrorsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FetchErrorsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FetchErrorsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.FetchErrorsRequest;

                    /**
                     * Decodes a FetchErrorsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FetchErrorsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.FetchErrorsRequest;

                    /**
                     * Verifies a FetchErrorsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FetchErrorsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FetchErrorsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.FetchErrorsRequest;

                    /**
                     * Creates a plain object from a FetchErrorsRequest message. Also converts values to other types if specified.
                     * @param message FetchErrorsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.FetchErrorsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FetchErrorsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FetchErrorsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FetchErrorsResponse. */
                interface IFetchErrorsResponse {

                    /** FetchErrorsResponse errors */
                    errors?: (google.cloud.datastream.v1alpha1.IError[]|null);
                }

                /** Represents a FetchErrorsResponse. */
                class FetchErrorsResponse implements IFetchErrorsResponse {

                    /**
                     * Constructs a new FetchErrorsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IFetchErrorsResponse);

                    /** FetchErrorsResponse errors. */
                    public errors: google.cloud.datastream.v1alpha1.IError[];

                    /**
                     * Creates a new FetchErrorsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FetchErrorsResponse instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IFetchErrorsResponse): google.cloud.datastream.v1alpha1.FetchErrorsResponse;

                    /**
                     * Encodes the specified FetchErrorsResponse message. Does not implicitly {@link google.cloud.datastream.v1alpha1.FetchErrorsResponse.verify|verify} messages.
                     * @param message FetchErrorsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IFetchErrorsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FetchErrorsResponse message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.FetchErrorsResponse.verify|verify} messages.
                     * @param message FetchErrorsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IFetchErrorsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FetchErrorsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FetchErrorsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.FetchErrorsResponse;

                    /**
                     * Decodes a FetchErrorsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FetchErrorsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.FetchErrorsResponse;

                    /**
                     * Verifies a FetchErrorsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FetchErrorsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FetchErrorsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.FetchErrorsResponse;

                    /**
                     * Creates a plain object from a FetchErrorsResponse message. Also converts values to other types if specified.
                     * @param message FetchErrorsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.FetchErrorsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FetchErrorsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FetchErrorsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConnectionProfilesRequest. */
                interface IListConnectionProfilesRequest {

                    /** ListConnectionProfilesRequest parent */
                    parent?: (string|null);

                    /** ListConnectionProfilesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListConnectionProfilesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListConnectionProfilesRequest filter */
                    filter?: (string|null);

                    /** ListConnectionProfilesRequest orderBy */
                    orderBy?: (string|null);
                }

                /** Represents a ListConnectionProfilesRequest. */
                class ListConnectionProfilesRequest implements IListConnectionProfilesRequest {

                    /**
                     * Constructs a new ListConnectionProfilesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IListConnectionProfilesRequest);

                    /** ListConnectionProfilesRequest parent. */
                    public parent: string;

                    /** ListConnectionProfilesRequest pageSize. */
                    public pageSize: number;

                    /** ListConnectionProfilesRequest pageToken. */
                    public pageToken: string;

                    /** ListConnectionProfilesRequest filter. */
                    public filter: string;

                    /** ListConnectionProfilesRequest orderBy. */
                    public orderBy: string;

                    /**
                     * Creates a new ListConnectionProfilesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConnectionProfilesRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IListConnectionProfilesRequest): google.cloud.datastream.v1alpha1.ListConnectionProfilesRequest;

                    /**
                     * Encodes the specified ListConnectionProfilesRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.ListConnectionProfilesRequest.verify|verify} messages.
                     * @param message ListConnectionProfilesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IListConnectionProfilesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConnectionProfilesRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.ListConnectionProfilesRequest.verify|verify} messages.
                     * @param message ListConnectionProfilesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IListConnectionProfilesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConnectionProfilesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConnectionProfilesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.ListConnectionProfilesRequest;

                    /**
                     * Decodes a ListConnectionProfilesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConnectionProfilesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.ListConnectionProfilesRequest;

                    /**
                     * Verifies a ListConnectionProfilesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListConnectionProfilesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConnectionProfilesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.ListConnectionProfilesRequest;

                    /**
                     * Creates a plain object from a ListConnectionProfilesRequest message. Also converts values to other types if specified.
                     * @param message ListConnectionProfilesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.ListConnectionProfilesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConnectionProfilesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConnectionProfilesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConnectionProfilesResponse. */
                interface IListConnectionProfilesResponse {

                    /** ListConnectionProfilesResponse connectionProfiles */
                    connectionProfiles?: (google.cloud.datastream.v1alpha1.IConnectionProfile[]|null);

                    /** ListConnectionProfilesResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListConnectionProfilesResponse unreachable */
                    unreachable?: (string[]|null);
                }

                /** Represents a ListConnectionProfilesResponse. */
                class ListConnectionProfilesResponse implements IListConnectionProfilesResponse {

                    /**
                     * Constructs a new ListConnectionProfilesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IListConnectionProfilesResponse);

                    /** ListConnectionProfilesResponse connectionProfiles. */
                    public connectionProfiles: google.cloud.datastream.v1alpha1.IConnectionProfile[];

                    /** ListConnectionProfilesResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListConnectionProfilesResponse unreachable. */
                    public unreachable: string[];

                    /**
                     * Creates a new ListConnectionProfilesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConnectionProfilesResponse instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IListConnectionProfilesResponse): google.cloud.datastream.v1alpha1.ListConnectionProfilesResponse;

                    /**
                     * Encodes the specified ListConnectionProfilesResponse message. Does not implicitly {@link google.cloud.datastream.v1alpha1.ListConnectionProfilesResponse.verify|verify} messages.
                     * @param message ListConnectionProfilesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IListConnectionProfilesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConnectionProfilesResponse message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.ListConnectionProfilesResponse.verify|verify} messages.
                     * @param message ListConnectionProfilesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IListConnectionProfilesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConnectionProfilesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConnectionProfilesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.ListConnectionProfilesResponse;

                    /**
                     * Decodes a ListConnectionProfilesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConnectionProfilesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.ListConnectionProfilesResponse;

                    /**
                     * Verifies a ListConnectionProfilesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListConnectionProfilesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConnectionProfilesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.ListConnectionProfilesResponse;

                    /**
                     * Creates a plain object from a ListConnectionProfilesResponse message. Also converts values to other types if specified.
                     * @param message ListConnectionProfilesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.ListConnectionProfilesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConnectionProfilesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConnectionProfilesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetConnectionProfileRequest. */
                interface IGetConnectionProfileRequest {

                    /** GetConnectionProfileRequest name */
                    name?: (string|null);
                }

                /** Represents a GetConnectionProfileRequest. */
                class GetConnectionProfileRequest implements IGetConnectionProfileRequest {

                    /**
                     * Constructs a new GetConnectionProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IGetConnectionProfileRequest);

                    /** GetConnectionProfileRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetConnectionProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetConnectionProfileRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IGetConnectionProfileRequest): google.cloud.datastream.v1alpha1.GetConnectionProfileRequest;

                    /**
                     * Encodes the specified GetConnectionProfileRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.GetConnectionProfileRequest.verify|verify} messages.
                     * @param message GetConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IGetConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetConnectionProfileRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.GetConnectionProfileRequest.verify|verify} messages.
                     * @param message GetConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IGetConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetConnectionProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.GetConnectionProfileRequest;

                    /**
                     * Decodes a GetConnectionProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.GetConnectionProfileRequest;

                    /**
                     * Verifies a GetConnectionProfileRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetConnectionProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetConnectionProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.GetConnectionProfileRequest;

                    /**
                     * Creates a plain object from a GetConnectionProfileRequest message. Also converts values to other types if specified.
                     * @param message GetConnectionProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.GetConnectionProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetConnectionProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetConnectionProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateConnectionProfileRequest. */
                interface ICreateConnectionProfileRequest {

                    /** CreateConnectionProfileRequest parent */
                    parent?: (string|null);

                    /** CreateConnectionProfileRequest connectionProfileId */
                    connectionProfileId?: (string|null);

                    /** CreateConnectionProfileRequest connectionProfile */
                    connectionProfile?: (google.cloud.datastream.v1alpha1.IConnectionProfile|null);

                    /** CreateConnectionProfileRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a CreateConnectionProfileRequest. */
                class CreateConnectionProfileRequest implements ICreateConnectionProfileRequest {

                    /**
                     * Constructs a new CreateConnectionProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.ICreateConnectionProfileRequest);

                    /** CreateConnectionProfileRequest parent. */
                    public parent: string;

                    /** CreateConnectionProfileRequest connectionProfileId. */
                    public connectionProfileId: string;

                    /** CreateConnectionProfileRequest connectionProfile. */
                    public connectionProfile?: (google.cloud.datastream.v1alpha1.IConnectionProfile|null);

                    /** CreateConnectionProfileRequest requestId. */
                    public requestId: string;

                    /**
                     * Creates a new CreateConnectionProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateConnectionProfileRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.ICreateConnectionProfileRequest): google.cloud.datastream.v1alpha1.CreateConnectionProfileRequest;

                    /**
                     * Encodes the specified CreateConnectionProfileRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.CreateConnectionProfileRequest.verify|verify} messages.
                     * @param message CreateConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.ICreateConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateConnectionProfileRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.CreateConnectionProfileRequest.verify|verify} messages.
                     * @param message CreateConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.ICreateConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateConnectionProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.CreateConnectionProfileRequest;

                    /**
                     * Decodes a CreateConnectionProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.CreateConnectionProfileRequest;

                    /**
                     * Verifies a CreateConnectionProfileRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateConnectionProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateConnectionProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.CreateConnectionProfileRequest;

                    /**
                     * Creates a plain object from a CreateConnectionProfileRequest message. Also converts values to other types if specified.
                     * @param message CreateConnectionProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.CreateConnectionProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateConnectionProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateConnectionProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateConnectionProfileRequest. */
                interface IUpdateConnectionProfileRequest {

                    /** UpdateConnectionProfileRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);

                    /** UpdateConnectionProfileRequest connectionProfile */
                    connectionProfile?: (google.cloud.datastream.v1alpha1.IConnectionProfile|null);

                    /** UpdateConnectionProfileRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents an UpdateConnectionProfileRequest. */
                class UpdateConnectionProfileRequest implements IUpdateConnectionProfileRequest {

                    /**
                     * Constructs a new UpdateConnectionProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IUpdateConnectionProfileRequest);

                    /** UpdateConnectionProfileRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /** UpdateConnectionProfileRequest connectionProfile. */
                    public connectionProfile?: (google.cloud.datastream.v1alpha1.IConnectionProfile|null);

                    /** UpdateConnectionProfileRequest requestId. */
                    public requestId: string;

                    /**
                     * Creates a new UpdateConnectionProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateConnectionProfileRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IUpdateConnectionProfileRequest): google.cloud.datastream.v1alpha1.UpdateConnectionProfileRequest;

                    /**
                     * Encodes the specified UpdateConnectionProfileRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.UpdateConnectionProfileRequest.verify|verify} messages.
                     * @param message UpdateConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IUpdateConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateConnectionProfileRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.UpdateConnectionProfileRequest.verify|verify} messages.
                     * @param message UpdateConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IUpdateConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateConnectionProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.UpdateConnectionProfileRequest;

                    /**
                     * Decodes an UpdateConnectionProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.UpdateConnectionProfileRequest;

                    /**
                     * Verifies an UpdateConnectionProfileRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an UpdateConnectionProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateConnectionProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.UpdateConnectionProfileRequest;

                    /**
                     * Creates a plain object from an UpdateConnectionProfileRequest message. Also converts values to other types if specified.
                     * @param message UpdateConnectionProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.UpdateConnectionProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateConnectionProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateConnectionProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteConnectionProfileRequest. */
                interface IDeleteConnectionProfileRequest {

                    /** DeleteConnectionProfileRequest name */
                    name?: (string|null);

                    /** DeleteConnectionProfileRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteConnectionProfileRequest. */
                class DeleteConnectionProfileRequest implements IDeleteConnectionProfileRequest {

                    /**
                     * Constructs a new DeleteConnectionProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IDeleteConnectionProfileRequest);

                    /** DeleteConnectionProfileRequest name. */
                    public name: string;

                    /** DeleteConnectionProfileRequest requestId. */
                    public requestId: string;

                    /**
                     * Creates a new DeleteConnectionProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteConnectionProfileRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IDeleteConnectionProfileRequest): google.cloud.datastream.v1alpha1.DeleteConnectionProfileRequest;

                    /**
                     * Encodes the specified DeleteConnectionProfileRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.DeleteConnectionProfileRequest.verify|verify} messages.
                     * @param message DeleteConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IDeleteConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteConnectionProfileRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.DeleteConnectionProfileRequest.verify|verify} messages.
                     * @param message DeleteConnectionProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IDeleteConnectionProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteConnectionProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.DeleteConnectionProfileRequest;

                    /**
                     * Decodes a DeleteConnectionProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteConnectionProfileRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.DeleteConnectionProfileRequest;

                    /**
                     * Verifies a DeleteConnectionProfileRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteConnectionProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteConnectionProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.DeleteConnectionProfileRequest;

                    /**
                     * Creates a plain object from a DeleteConnectionProfileRequest message. Also converts values to other types if specified.
                     * @param message DeleteConnectionProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.DeleteConnectionProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteConnectionProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteConnectionProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListStreamsRequest. */
                interface IListStreamsRequest {

                    /** ListStreamsRequest parent */
                    parent?: (string|null);

                    /** ListStreamsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListStreamsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListStreamsRequest filter */
                    filter?: (string|null);

                    /** ListStreamsRequest orderBy */
                    orderBy?: (string|null);
                }

                /** Represents a ListStreamsRequest. */
                class ListStreamsRequest implements IListStreamsRequest {

                    /**
                     * Constructs a new ListStreamsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IListStreamsRequest);

                    /** ListStreamsRequest parent. */
                    public parent: string;

                    /** ListStreamsRequest pageSize. */
                    public pageSize: number;

                    /** ListStreamsRequest pageToken. */
                    public pageToken: string;

                    /** ListStreamsRequest filter. */
                    public filter: string;

                    /** ListStreamsRequest orderBy. */
                    public orderBy: string;

                    /**
                     * Creates a new ListStreamsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListStreamsRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IListStreamsRequest): google.cloud.datastream.v1alpha1.ListStreamsRequest;

                    /**
                     * Encodes the specified ListStreamsRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.ListStreamsRequest.verify|verify} messages.
                     * @param message ListStreamsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IListStreamsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListStreamsRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.ListStreamsRequest.verify|verify} messages.
                     * @param message ListStreamsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IListStreamsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListStreamsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListStreamsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.ListStreamsRequest;

                    /**
                     * Decodes a ListStreamsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListStreamsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.ListStreamsRequest;

                    /**
                     * Verifies a ListStreamsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListStreamsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListStreamsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.ListStreamsRequest;

                    /**
                     * Creates a plain object from a ListStreamsRequest message. Also converts values to other types if specified.
                     * @param message ListStreamsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.ListStreamsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListStreamsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListStreamsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListStreamsResponse. */
                interface IListStreamsResponse {

                    /** ListStreamsResponse streams */
                    streams?: (google.cloud.datastream.v1alpha1.IStream[]|null);

                    /** ListStreamsResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListStreamsResponse unreachable */
                    unreachable?: (string[]|null);
                }

                /** Represents a ListStreamsResponse. */
                class ListStreamsResponse implements IListStreamsResponse {

                    /**
                     * Constructs a new ListStreamsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IListStreamsResponse);

                    /** ListStreamsResponse streams. */
                    public streams: google.cloud.datastream.v1alpha1.IStream[];

                    /** ListStreamsResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListStreamsResponse unreachable. */
                    public unreachable: string[];

                    /**
                     * Creates a new ListStreamsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListStreamsResponse instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IListStreamsResponse): google.cloud.datastream.v1alpha1.ListStreamsResponse;

                    /**
                     * Encodes the specified ListStreamsResponse message. Does not implicitly {@link google.cloud.datastream.v1alpha1.ListStreamsResponse.verify|verify} messages.
                     * @param message ListStreamsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IListStreamsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListStreamsResponse message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.ListStreamsResponse.verify|verify} messages.
                     * @param message ListStreamsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IListStreamsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListStreamsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListStreamsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.ListStreamsResponse;

                    /**
                     * Decodes a ListStreamsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListStreamsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.ListStreamsResponse;

                    /**
                     * Verifies a ListStreamsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListStreamsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListStreamsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.ListStreamsResponse;

                    /**
                     * Creates a plain object from a ListStreamsResponse message. Also converts values to other types if specified.
                     * @param message ListStreamsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.ListStreamsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListStreamsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListStreamsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetStreamRequest. */
                interface IGetStreamRequest {

                    /** GetStreamRequest name */
                    name?: (string|null);
                }

                /** Represents a GetStreamRequest. */
                class GetStreamRequest implements IGetStreamRequest {

                    /**
                     * Constructs a new GetStreamRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IGetStreamRequest);

                    /** GetStreamRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetStreamRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetStreamRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IGetStreamRequest): google.cloud.datastream.v1alpha1.GetStreamRequest;

                    /**
                     * Encodes the specified GetStreamRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.GetStreamRequest.verify|verify} messages.
                     * @param message GetStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IGetStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetStreamRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.GetStreamRequest.verify|verify} messages.
                     * @param message GetStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IGetStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetStreamRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.GetStreamRequest;

                    /**
                     * Decodes a GetStreamRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.GetStreamRequest;

                    /**
                     * Verifies a GetStreamRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetStreamRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetStreamRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.GetStreamRequest;

                    /**
                     * Creates a plain object from a GetStreamRequest message. Also converts values to other types if specified.
                     * @param message GetStreamRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.GetStreamRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetStreamRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetStreamRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateStreamRequest. */
                interface ICreateStreamRequest {

                    /** CreateStreamRequest parent */
                    parent?: (string|null);

                    /** CreateStreamRequest streamId */
                    streamId?: (string|null);

                    /** CreateStreamRequest stream */
                    stream?: (google.cloud.datastream.v1alpha1.IStream|null);

                    /** CreateStreamRequest requestId */
                    requestId?: (string|null);

                    /** CreateStreamRequest validateOnly */
                    validateOnly?: (boolean|null);

                    /** CreateStreamRequest force */
                    force?: (boolean|null);
                }

                /** Represents a CreateStreamRequest. */
                class CreateStreamRequest implements ICreateStreamRequest {

                    /**
                     * Constructs a new CreateStreamRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.ICreateStreamRequest);

                    /** CreateStreamRequest parent. */
                    public parent: string;

                    /** CreateStreamRequest streamId. */
                    public streamId: string;

                    /** CreateStreamRequest stream. */
                    public stream?: (google.cloud.datastream.v1alpha1.IStream|null);

                    /** CreateStreamRequest requestId. */
                    public requestId: string;

                    /** CreateStreamRequest validateOnly. */
                    public validateOnly: boolean;

                    /** CreateStreamRequest force. */
                    public force: boolean;

                    /**
                     * Creates a new CreateStreamRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateStreamRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.ICreateStreamRequest): google.cloud.datastream.v1alpha1.CreateStreamRequest;

                    /**
                     * Encodes the specified CreateStreamRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.CreateStreamRequest.verify|verify} messages.
                     * @param message CreateStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.ICreateStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateStreamRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.CreateStreamRequest.verify|verify} messages.
                     * @param message CreateStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.ICreateStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateStreamRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.CreateStreamRequest;

                    /**
                     * Decodes a CreateStreamRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.CreateStreamRequest;

                    /**
                     * Verifies a CreateStreamRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateStreamRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateStreamRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.CreateStreamRequest;

                    /**
                     * Creates a plain object from a CreateStreamRequest message. Also converts values to other types if specified.
                     * @param message CreateStreamRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.CreateStreamRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateStreamRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateStreamRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateStreamRequest. */
                interface IUpdateStreamRequest {

                    /** UpdateStreamRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);

                    /** UpdateStreamRequest stream */
                    stream?: (google.cloud.datastream.v1alpha1.IStream|null);

                    /** UpdateStreamRequest requestId */
                    requestId?: (string|null);

                    /** UpdateStreamRequest validateOnly */
                    validateOnly?: (boolean|null);

                    /** UpdateStreamRequest force */
                    force?: (boolean|null);
                }

                /** Represents an UpdateStreamRequest. */
                class UpdateStreamRequest implements IUpdateStreamRequest {

                    /**
                     * Constructs a new UpdateStreamRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IUpdateStreamRequest);

                    /** UpdateStreamRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /** UpdateStreamRequest stream. */
                    public stream?: (google.cloud.datastream.v1alpha1.IStream|null);

                    /** UpdateStreamRequest requestId. */
                    public requestId: string;

                    /** UpdateStreamRequest validateOnly. */
                    public validateOnly: boolean;

                    /** UpdateStreamRequest force. */
                    public force: boolean;

                    /**
                     * Creates a new UpdateStreamRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateStreamRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IUpdateStreamRequest): google.cloud.datastream.v1alpha1.UpdateStreamRequest;

                    /**
                     * Encodes the specified UpdateStreamRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.UpdateStreamRequest.verify|verify} messages.
                     * @param message UpdateStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IUpdateStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateStreamRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.UpdateStreamRequest.verify|verify} messages.
                     * @param message UpdateStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IUpdateStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateStreamRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.UpdateStreamRequest;

                    /**
                     * Decodes an UpdateStreamRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.UpdateStreamRequest;

                    /**
                     * Verifies an UpdateStreamRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an UpdateStreamRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateStreamRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.UpdateStreamRequest;

                    /**
                     * Creates a plain object from an UpdateStreamRequest message. Also converts values to other types if specified.
                     * @param message UpdateStreamRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.UpdateStreamRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateStreamRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateStreamRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteStreamRequest. */
                interface IDeleteStreamRequest {

                    /** DeleteStreamRequest name */
                    name?: (string|null);

                    /** DeleteStreamRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteStreamRequest. */
                class DeleteStreamRequest implements IDeleteStreamRequest {

                    /**
                     * Constructs a new DeleteStreamRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IDeleteStreamRequest);

                    /** DeleteStreamRequest name. */
                    public name: string;

                    /** DeleteStreamRequest requestId. */
                    public requestId: string;

                    /**
                     * Creates a new DeleteStreamRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteStreamRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IDeleteStreamRequest): google.cloud.datastream.v1alpha1.DeleteStreamRequest;

                    /**
                     * Encodes the specified DeleteStreamRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.DeleteStreamRequest.verify|verify} messages.
                     * @param message DeleteStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IDeleteStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteStreamRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.DeleteStreamRequest.verify|verify} messages.
                     * @param message DeleteStreamRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IDeleteStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteStreamRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.DeleteStreamRequest;

                    /**
                     * Decodes a DeleteStreamRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteStreamRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.DeleteStreamRequest;

                    /**
                     * Verifies a DeleteStreamRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteStreamRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteStreamRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.DeleteStreamRequest;

                    /**
                     * Creates a plain object from a DeleteStreamRequest message. Also converts values to other types if specified.
                     * @param message DeleteStreamRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.DeleteStreamRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteStreamRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteStreamRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OperationMetadata. */
                interface IOperationMetadata {

                    /** OperationMetadata createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** OperationMetadata endTime */
                    endTime?: (google.protobuf.ITimestamp|null);

                    /** OperationMetadata target */
                    target?: (string|null);

                    /** OperationMetadata verb */
                    verb?: (string|null);

                    /** OperationMetadata statusMessage */
                    statusMessage?: (string|null);

                    /** OperationMetadata requestedCancellation */
                    requestedCancellation?: (boolean|null);

                    /** OperationMetadata apiVersion */
                    apiVersion?: (string|null);

                    /** OperationMetadata validationResult */
                    validationResult?: (google.cloud.datastream.v1alpha1.IValidationResult|null);
                }

                /** Represents an OperationMetadata. */
                class OperationMetadata implements IOperationMetadata {

                    /**
                     * Constructs a new OperationMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IOperationMetadata);

                    /** OperationMetadata createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** OperationMetadata endTime. */
                    public endTime?: (google.protobuf.ITimestamp|null);

                    /** OperationMetadata target. */
                    public target: string;

                    /** OperationMetadata verb. */
                    public verb: string;

                    /** OperationMetadata statusMessage. */
                    public statusMessage: string;

                    /** OperationMetadata requestedCancellation. */
                    public requestedCancellation: boolean;

                    /** OperationMetadata apiVersion. */
                    public apiVersion: string;

                    /** OperationMetadata validationResult. */
                    public validationResult?: (google.cloud.datastream.v1alpha1.IValidationResult|null);

                    /**
                     * Creates a new OperationMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OperationMetadata instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IOperationMetadata): google.cloud.datastream.v1alpha1.OperationMetadata;

                    /**
                     * Encodes the specified OperationMetadata message. Does not implicitly {@link google.cloud.datastream.v1alpha1.OperationMetadata.verify|verify} messages.
                     * @param message OperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OperationMetadata message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.OperationMetadata.verify|verify} messages.
                     * @param message OperationMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IOperationMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OperationMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OperationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.OperationMetadata;

                    /**
                     * Decodes an OperationMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OperationMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.OperationMetadata;

                    /**
                     * Verifies an OperationMetadata message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OperationMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OperationMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.OperationMetadata;

                    /**
                     * Creates a plain object from an OperationMetadata message. Also converts values to other types if specified.
                     * @param message OperationMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.OperationMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OperationMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OperationMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreatePrivateConnectionRequest. */
                interface ICreatePrivateConnectionRequest {

                    /** CreatePrivateConnectionRequest parent */
                    parent?: (string|null);

                    /** CreatePrivateConnectionRequest privateConnectionId */
                    privateConnectionId?: (string|null);

                    /** CreatePrivateConnectionRequest privateConnection */
                    privateConnection?: (google.cloud.datastream.v1alpha1.IPrivateConnection|null);

                    /** CreatePrivateConnectionRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a CreatePrivateConnectionRequest. */
                class CreatePrivateConnectionRequest implements ICreatePrivateConnectionRequest {

                    /**
                     * Constructs a new CreatePrivateConnectionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.ICreatePrivateConnectionRequest);

                    /** CreatePrivateConnectionRequest parent. */
                    public parent: string;

                    /** CreatePrivateConnectionRequest privateConnectionId. */
                    public privateConnectionId: string;

                    /** CreatePrivateConnectionRequest privateConnection. */
                    public privateConnection?: (google.cloud.datastream.v1alpha1.IPrivateConnection|null);

                    /** CreatePrivateConnectionRequest requestId. */
                    public requestId: string;

                    /**
                     * Creates a new CreatePrivateConnectionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreatePrivateConnectionRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.ICreatePrivateConnectionRequest): google.cloud.datastream.v1alpha1.CreatePrivateConnectionRequest;

                    /**
                     * Encodes the specified CreatePrivateConnectionRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.CreatePrivateConnectionRequest.verify|verify} messages.
                     * @param message CreatePrivateConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.ICreatePrivateConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreatePrivateConnectionRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.CreatePrivateConnectionRequest.verify|verify} messages.
                     * @param message CreatePrivateConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.ICreatePrivateConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreatePrivateConnectionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreatePrivateConnectionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.CreatePrivateConnectionRequest;

                    /**
                     * Decodes a CreatePrivateConnectionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreatePrivateConnectionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.CreatePrivateConnectionRequest;

                    /**
                     * Verifies a CreatePrivateConnectionRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreatePrivateConnectionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreatePrivateConnectionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.CreatePrivateConnectionRequest;

                    /**
                     * Creates a plain object from a CreatePrivateConnectionRequest message. Also converts values to other types if specified.
                     * @param message CreatePrivateConnectionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.CreatePrivateConnectionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreatePrivateConnectionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreatePrivateConnectionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPrivateConnectionsRequest. */
                interface IListPrivateConnectionsRequest {

                    /** ListPrivateConnectionsRequest parent */
                    parent?: (string|null);

                    /** ListPrivateConnectionsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListPrivateConnectionsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPrivateConnectionsRequest filter */
                    filter?: (string|null);

                    /** ListPrivateConnectionsRequest orderBy */
                    orderBy?: (string|null);
                }

                /** Represents a ListPrivateConnectionsRequest. */
                class ListPrivateConnectionsRequest implements IListPrivateConnectionsRequest {

                    /**
                     * Constructs a new ListPrivateConnectionsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IListPrivateConnectionsRequest);

                    /** ListPrivateConnectionsRequest parent. */
                    public parent: string;

                    /** ListPrivateConnectionsRequest pageSize. */
                    public pageSize: number;

                    /** ListPrivateConnectionsRequest pageToken. */
                    public pageToken: string;

                    /** ListPrivateConnectionsRequest filter. */
                    public filter: string;

                    /** ListPrivateConnectionsRequest orderBy. */
                    public orderBy: string;

                    /**
                     * Creates a new ListPrivateConnectionsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPrivateConnectionsRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IListPrivateConnectionsRequest): google.cloud.datastream.v1alpha1.ListPrivateConnectionsRequest;

                    /**
                     * Encodes the specified ListPrivateConnectionsRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.ListPrivateConnectionsRequest.verify|verify} messages.
                     * @param message ListPrivateConnectionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IListPrivateConnectionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPrivateConnectionsRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.ListPrivateConnectionsRequest.verify|verify} messages.
                     * @param message ListPrivateConnectionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IListPrivateConnectionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPrivateConnectionsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPrivateConnectionsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.ListPrivateConnectionsRequest;

                    /**
                     * Decodes a ListPrivateConnectionsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPrivateConnectionsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.ListPrivateConnectionsRequest;

                    /**
                     * Verifies a ListPrivateConnectionsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPrivateConnectionsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPrivateConnectionsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.ListPrivateConnectionsRequest;

                    /**
                     * Creates a plain object from a ListPrivateConnectionsRequest message. Also converts values to other types if specified.
                     * @param message ListPrivateConnectionsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.ListPrivateConnectionsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPrivateConnectionsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPrivateConnectionsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPrivateConnectionsResponse. */
                interface IListPrivateConnectionsResponse {

                    /** ListPrivateConnectionsResponse privateConnections */
                    privateConnections?: (google.cloud.datastream.v1alpha1.IPrivateConnection[]|null);

                    /** ListPrivateConnectionsResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListPrivateConnectionsResponse unreachable */
                    unreachable?: (string[]|null);
                }

                /** Represents a ListPrivateConnectionsResponse. */
                class ListPrivateConnectionsResponse implements IListPrivateConnectionsResponse {

                    /**
                     * Constructs a new ListPrivateConnectionsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IListPrivateConnectionsResponse);

                    /** ListPrivateConnectionsResponse privateConnections. */
                    public privateConnections: google.cloud.datastream.v1alpha1.IPrivateConnection[];

                    /** ListPrivateConnectionsResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListPrivateConnectionsResponse unreachable. */
                    public unreachable: string[];

                    /**
                     * Creates a new ListPrivateConnectionsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPrivateConnectionsResponse instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IListPrivateConnectionsResponse): google.cloud.datastream.v1alpha1.ListPrivateConnectionsResponse;

                    /**
                     * Encodes the specified ListPrivateConnectionsResponse message. Does not implicitly {@link google.cloud.datastream.v1alpha1.ListPrivateConnectionsResponse.verify|verify} messages.
                     * @param message ListPrivateConnectionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IListPrivateConnectionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPrivateConnectionsResponse message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.ListPrivateConnectionsResponse.verify|verify} messages.
                     * @param message ListPrivateConnectionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IListPrivateConnectionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPrivateConnectionsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPrivateConnectionsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.ListPrivateConnectionsResponse;

                    /**
                     * Decodes a ListPrivateConnectionsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPrivateConnectionsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.ListPrivateConnectionsResponse;

                    /**
                     * Verifies a ListPrivateConnectionsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPrivateConnectionsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPrivateConnectionsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.ListPrivateConnectionsResponse;

                    /**
                     * Creates a plain object from a ListPrivateConnectionsResponse message. Also converts values to other types if specified.
                     * @param message ListPrivateConnectionsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.ListPrivateConnectionsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPrivateConnectionsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPrivateConnectionsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeletePrivateConnectionRequest. */
                interface IDeletePrivateConnectionRequest {

                    /** DeletePrivateConnectionRequest name */
                    name?: (string|null);

                    /** DeletePrivateConnectionRequest requestId */
                    requestId?: (string|null);

                    /** DeletePrivateConnectionRequest force */
                    force?: (boolean|null);
                }

                /** Represents a DeletePrivateConnectionRequest. */
                class DeletePrivateConnectionRequest implements IDeletePrivateConnectionRequest {

                    /**
                     * Constructs a new DeletePrivateConnectionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IDeletePrivateConnectionRequest);

                    /** DeletePrivateConnectionRequest name. */
                    public name: string;

                    /** DeletePrivateConnectionRequest requestId. */
                    public requestId: string;

                    /** DeletePrivateConnectionRequest force. */
                    public force: boolean;

                    /**
                     * Creates a new DeletePrivateConnectionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeletePrivateConnectionRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IDeletePrivateConnectionRequest): google.cloud.datastream.v1alpha1.DeletePrivateConnectionRequest;

                    /**
                     * Encodes the specified DeletePrivateConnectionRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.DeletePrivateConnectionRequest.verify|verify} messages.
                     * @param message DeletePrivateConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IDeletePrivateConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeletePrivateConnectionRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.DeletePrivateConnectionRequest.verify|verify} messages.
                     * @param message DeletePrivateConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IDeletePrivateConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeletePrivateConnectionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeletePrivateConnectionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.DeletePrivateConnectionRequest;

                    /**
                     * Decodes a DeletePrivateConnectionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeletePrivateConnectionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.DeletePrivateConnectionRequest;

                    /**
                     * Verifies a DeletePrivateConnectionRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeletePrivateConnectionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeletePrivateConnectionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.DeletePrivateConnectionRequest;

                    /**
                     * Creates a plain object from a DeletePrivateConnectionRequest message. Also converts values to other types if specified.
                     * @param message DeletePrivateConnectionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.DeletePrivateConnectionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeletePrivateConnectionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeletePrivateConnectionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetPrivateConnectionRequest. */
                interface IGetPrivateConnectionRequest {

                    /** GetPrivateConnectionRequest name */
                    name?: (string|null);
                }

                /** Represents a GetPrivateConnectionRequest. */
                class GetPrivateConnectionRequest implements IGetPrivateConnectionRequest {

                    /**
                     * Constructs a new GetPrivateConnectionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IGetPrivateConnectionRequest);

                    /** GetPrivateConnectionRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetPrivateConnectionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetPrivateConnectionRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IGetPrivateConnectionRequest): google.cloud.datastream.v1alpha1.GetPrivateConnectionRequest;

                    /**
                     * Encodes the specified GetPrivateConnectionRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.GetPrivateConnectionRequest.verify|verify} messages.
                     * @param message GetPrivateConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IGetPrivateConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetPrivateConnectionRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.GetPrivateConnectionRequest.verify|verify} messages.
                     * @param message GetPrivateConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IGetPrivateConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetPrivateConnectionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetPrivateConnectionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.GetPrivateConnectionRequest;

                    /**
                     * Decodes a GetPrivateConnectionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetPrivateConnectionRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.GetPrivateConnectionRequest;

                    /**
                     * Verifies a GetPrivateConnectionRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetPrivateConnectionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetPrivateConnectionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.GetPrivateConnectionRequest;

                    /**
                     * Creates a plain object from a GetPrivateConnectionRequest message. Also converts values to other types if specified.
                     * @param message GetPrivateConnectionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.GetPrivateConnectionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetPrivateConnectionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetPrivateConnectionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateRouteRequest. */
                interface ICreateRouteRequest {

                    /** CreateRouteRequest parent */
                    parent?: (string|null);

                    /** CreateRouteRequest routeId */
                    routeId?: (string|null);

                    /** CreateRouteRequest route */
                    route?: (google.cloud.datastream.v1alpha1.IRoute|null);

                    /** CreateRouteRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a CreateRouteRequest. */
                class CreateRouteRequest implements ICreateRouteRequest {

                    /**
                     * Constructs a new CreateRouteRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.ICreateRouteRequest);

                    /** CreateRouteRequest parent. */
                    public parent: string;

                    /** CreateRouteRequest routeId. */
                    public routeId: string;

                    /** CreateRouteRequest route. */
                    public route?: (google.cloud.datastream.v1alpha1.IRoute|null);

                    /** CreateRouteRequest requestId. */
                    public requestId: string;

                    /**
                     * Creates a new CreateRouteRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateRouteRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.ICreateRouteRequest): google.cloud.datastream.v1alpha1.CreateRouteRequest;

                    /**
                     * Encodes the specified CreateRouteRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.CreateRouteRequest.verify|verify} messages.
                     * @param message CreateRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.ICreateRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateRouteRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.CreateRouteRequest.verify|verify} messages.
                     * @param message CreateRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.ICreateRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateRouteRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.CreateRouteRequest;

                    /**
                     * Decodes a CreateRouteRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.CreateRouteRequest;

                    /**
                     * Verifies a CreateRouteRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateRouteRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateRouteRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.CreateRouteRequest;

                    /**
                     * Creates a plain object from a CreateRouteRequest message. Also converts values to other types if specified.
                     * @param message CreateRouteRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.CreateRouteRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateRouteRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateRouteRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRoutesRequest. */
                interface IListRoutesRequest {

                    /** ListRoutesRequest parent */
                    parent?: (string|null);

                    /** ListRoutesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListRoutesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRoutesRequest filter */
                    filter?: (string|null);

                    /** ListRoutesRequest orderBy */
                    orderBy?: (string|null);
                }

                /** Represents a ListRoutesRequest. */
                class ListRoutesRequest implements IListRoutesRequest {

                    /**
                     * Constructs a new ListRoutesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IListRoutesRequest);

                    /** ListRoutesRequest parent. */
                    public parent: string;

                    /** ListRoutesRequest pageSize. */
                    public pageSize: number;

                    /** ListRoutesRequest pageToken. */
                    public pageToken: string;

                    /** ListRoutesRequest filter. */
                    public filter: string;

                    /** ListRoutesRequest orderBy. */
                    public orderBy: string;

                    /**
                     * Creates a new ListRoutesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRoutesRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IListRoutesRequest): google.cloud.datastream.v1alpha1.ListRoutesRequest;

                    /**
                     * Encodes the specified ListRoutesRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.ListRoutesRequest.verify|verify} messages.
                     * @param message ListRoutesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IListRoutesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRoutesRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.ListRoutesRequest.verify|verify} messages.
                     * @param message ListRoutesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IListRoutesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRoutesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRoutesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.ListRoutesRequest;

                    /**
                     * Decodes a ListRoutesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRoutesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.ListRoutesRequest;

                    /**
                     * Verifies a ListRoutesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRoutesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRoutesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.ListRoutesRequest;

                    /**
                     * Creates a plain object from a ListRoutesRequest message. Also converts values to other types if specified.
                     * @param message ListRoutesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.ListRoutesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRoutesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRoutesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRoutesResponse. */
                interface IListRoutesResponse {

                    /** ListRoutesResponse routes */
                    routes?: (google.cloud.datastream.v1alpha1.IRoute[]|null);

                    /** ListRoutesResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListRoutesResponse unreachable */
                    unreachable?: (string[]|null);
                }

                /** Represents a ListRoutesResponse. */
                class ListRoutesResponse implements IListRoutesResponse {

                    /**
                     * Constructs a new ListRoutesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IListRoutesResponse);

                    /** ListRoutesResponse routes. */
                    public routes: google.cloud.datastream.v1alpha1.IRoute[];

                    /** ListRoutesResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListRoutesResponse unreachable. */
                    public unreachable: string[];

                    /**
                     * Creates a new ListRoutesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRoutesResponse instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IListRoutesResponse): google.cloud.datastream.v1alpha1.ListRoutesResponse;

                    /**
                     * Encodes the specified ListRoutesResponse message. Does not implicitly {@link google.cloud.datastream.v1alpha1.ListRoutesResponse.verify|verify} messages.
                     * @param message ListRoutesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IListRoutesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRoutesResponse message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.ListRoutesResponse.verify|verify} messages.
                     * @param message ListRoutesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IListRoutesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRoutesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRoutesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.ListRoutesResponse;

                    /**
                     * Decodes a ListRoutesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRoutesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.ListRoutesResponse;

                    /**
                     * Verifies a ListRoutesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRoutesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRoutesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.ListRoutesResponse;

                    /**
                     * Creates a plain object from a ListRoutesResponse message. Also converts values to other types if specified.
                     * @param message ListRoutesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.ListRoutesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRoutesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRoutesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteRouteRequest. */
                interface IDeleteRouteRequest {

                    /** DeleteRouteRequest name */
                    name?: (string|null);

                    /** DeleteRouteRequest requestId */
                    requestId?: (string|null);
                }

                /** Represents a DeleteRouteRequest. */
                class DeleteRouteRequest implements IDeleteRouteRequest {

                    /**
                     * Constructs a new DeleteRouteRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IDeleteRouteRequest);

                    /** DeleteRouteRequest name. */
                    public name: string;

                    /** DeleteRouteRequest requestId. */
                    public requestId: string;

                    /**
                     * Creates a new DeleteRouteRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteRouteRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IDeleteRouteRequest): google.cloud.datastream.v1alpha1.DeleteRouteRequest;

                    /**
                     * Encodes the specified DeleteRouteRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.DeleteRouteRequest.verify|verify} messages.
                     * @param message DeleteRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IDeleteRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteRouteRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.DeleteRouteRequest.verify|verify} messages.
                     * @param message DeleteRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IDeleteRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteRouteRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.DeleteRouteRequest;

                    /**
                     * Decodes a DeleteRouteRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.DeleteRouteRequest;

                    /**
                     * Verifies a DeleteRouteRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteRouteRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteRouteRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.DeleteRouteRequest;

                    /**
                     * Creates a plain object from a DeleteRouteRequest message. Also converts values to other types if specified.
                     * @param message DeleteRouteRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.DeleteRouteRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteRouteRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteRouteRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetRouteRequest. */
                interface IGetRouteRequest {

                    /** GetRouteRequest name */
                    name?: (string|null);
                }

                /** Represents a GetRouteRequest. */
                class GetRouteRequest implements IGetRouteRequest {

                    /**
                     * Constructs a new GetRouteRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IGetRouteRequest);

                    /** GetRouteRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetRouteRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRouteRequest instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IGetRouteRequest): google.cloud.datastream.v1alpha1.GetRouteRequest;

                    /**
                     * Encodes the specified GetRouteRequest message. Does not implicitly {@link google.cloud.datastream.v1alpha1.GetRouteRequest.verify|verify} messages.
                     * @param message GetRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IGetRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRouteRequest message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.GetRouteRequest.verify|verify} messages.
                     * @param message GetRouteRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IGetRouteRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRouteRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.GetRouteRequest;

                    /**
                     * Decodes a GetRouteRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRouteRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.GetRouteRequest;

                    /**
                     * Verifies a GetRouteRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRouteRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRouteRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.GetRouteRequest;

                    /**
                     * Creates a plain object from a GetRouteRequest message. Also converts values to other types if specified.
                     * @param message GetRouteRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.GetRouteRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRouteRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRouteRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OracleProfile. */
                interface IOracleProfile {

                    /** OracleProfile hostname */
                    hostname?: (string|null);

                    /** OracleProfile port */
                    port?: (number|null);

                    /** OracleProfile username */
                    username?: (string|null);

                    /** OracleProfile password */
                    password?: (string|null);

                    /** OracleProfile databaseService */
                    databaseService?: (string|null);

                    /** OracleProfile connectionAttributes */
                    connectionAttributes?: ({ [k: string]: string }|null);
                }

                /** Represents an OracleProfile. */
                class OracleProfile implements IOracleProfile {

                    /**
                     * Constructs a new OracleProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IOracleProfile);

                    /** OracleProfile hostname. */
                    public hostname: string;

                    /** OracleProfile port. */
                    public port: number;

                    /** OracleProfile username. */
                    public username: string;

                    /** OracleProfile password. */
                    public password: string;

                    /** OracleProfile databaseService. */
                    public databaseService: string;

                    /** OracleProfile connectionAttributes. */
                    public connectionAttributes: { [k: string]: string };

                    /**
                     * Creates a new OracleProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OracleProfile instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IOracleProfile): google.cloud.datastream.v1alpha1.OracleProfile;

                    /**
                     * Encodes the specified OracleProfile message. Does not implicitly {@link google.cloud.datastream.v1alpha1.OracleProfile.verify|verify} messages.
                     * @param message OracleProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IOracleProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OracleProfile message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.OracleProfile.verify|verify} messages.
                     * @param message OracleProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IOracleProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OracleProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OracleProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.OracleProfile;

                    /**
                     * Decodes an OracleProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OracleProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.OracleProfile;

                    /**
                     * Verifies an OracleProfile message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OracleProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OracleProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.OracleProfile;

                    /**
                     * Creates a plain object from an OracleProfile message. Also converts values to other types if specified.
                     * @param message OracleProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.OracleProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OracleProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OracleProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MysqlProfile. */
                interface IMysqlProfile {

                    /** MysqlProfile hostname */
                    hostname?: (string|null);

                    /** MysqlProfile port */
                    port?: (number|null);

                    /** MysqlProfile username */
                    username?: (string|null);

                    /** MysqlProfile password */
                    password?: (string|null);

                    /** MysqlProfile sslConfig */
                    sslConfig?: (google.cloud.datastream.v1alpha1.IMysqlSslConfig|null);
                }

                /** Represents a MysqlProfile. */
                class MysqlProfile implements IMysqlProfile {

                    /**
                     * Constructs a new MysqlProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IMysqlProfile);

                    /** MysqlProfile hostname. */
                    public hostname: string;

                    /** MysqlProfile port. */
                    public port: number;

                    /** MysqlProfile username. */
                    public username: string;

                    /** MysqlProfile password. */
                    public password: string;

                    /** MysqlProfile sslConfig. */
                    public sslConfig?: (google.cloud.datastream.v1alpha1.IMysqlSslConfig|null);

                    /**
                     * Creates a new MysqlProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MysqlProfile instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IMysqlProfile): google.cloud.datastream.v1alpha1.MysqlProfile;

                    /**
                     * Encodes the specified MysqlProfile message. Does not implicitly {@link google.cloud.datastream.v1alpha1.MysqlProfile.verify|verify} messages.
                     * @param message MysqlProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IMysqlProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MysqlProfile message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.MysqlProfile.verify|verify} messages.
                     * @param message MysqlProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IMysqlProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MysqlProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MysqlProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.MysqlProfile;

                    /**
                     * Decodes a MysqlProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MysqlProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.MysqlProfile;

                    /**
                     * Verifies a MysqlProfile message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MysqlProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MysqlProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.MysqlProfile;

                    /**
                     * Creates a plain object from a MysqlProfile message. Also converts values to other types if specified.
                     * @param message MysqlProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.MysqlProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MysqlProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MysqlProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GcsProfile. */
                interface IGcsProfile {

                    /** GcsProfile bucketName */
                    bucketName?: (string|null);

                    /** GcsProfile rootPath */
                    rootPath?: (string|null);
                }

                /** Represents a GcsProfile. */
                class GcsProfile implements IGcsProfile {

                    /**
                     * Constructs a new GcsProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IGcsProfile);

                    /** GcsProfile bucketName. */
                    public bucketName: string;

                    /** GcsProfile rootPath. */
                    public rootPath: string;

                    /**
                     * Creates a new GcsProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GcsProfile instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IGcsProfile): google.cloud.datastream.v1alpha1.GcsProfile;

                    /**
                     * Encodes the specified GcsProfile message. Does not implicitly {@link google.cloud.datastream.v1alpha1.GcsProfile.verify|verify} messages.
                     * @param message GcsProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IGcsProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GcsProfile message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.GcsProfile.verify|verify} messages.
                     * @param message GcsProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IGcsProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GcsProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GcsProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.GcsProfile;

                    /**
                     * Decodes a GcsProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GcsProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.GcsProfile;

                    /**
                     * Verifies a GcsProfile message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GcsProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GcsProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.GcsProfile;

                    /**
                     * Creates a plain object from a GcsProfile message. Also converts values to other types if specified.
                     * @param message GcsProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.GcsProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GcsProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GcsProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a NoConnectivitySettings. */
                interface INoConnectivitySettings {
                }

                /** Represents a NoConnectivitySettings. */
                class NoConnectivitySettings implements INoConnectivitySettings {

                    /**
                     * Constructs a new NoConnectivitySettings.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.INoConnectivitySettings);

                    /**
                     * Creates a new NoConnectivitySettings instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns NoConnectivitySettings instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.INoConnectivitySettings): google.cloud.datastream.v1alpha1.NoConnectivitySettings;

                    /**
                     * Encodes the specified NoConnectivitySettings message. Does not implicitly {@link google.cloud.datastream.v1alpha1.NoConnectivitySettings.verify|verify} messages.
                     * @param message NoConnectivitySettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.INoConnectivitySettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified NoConnectivitySettings message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.NoConnectivitySettings.verify|verify} messages.
                     * @param message NoConnectivitySettings message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.INoConnectivitySettings, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a NoConnectivitySettings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns NoConnectivitySettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.NoConnectivitySettings;

                    /**
                     * Decodes a NoConnectivitySettings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns NoConnectivitySettings
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.NoConnectivitySettings;

                    /**
                     * Verifies a NoConnectivitySettings message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a NoConnectivitySettings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns NoConnectivitySettings
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.NoConnectivitySettings;

                    /**
                     * Creates a plain object from a NoConnectivitySettings message. Also converts values to other types if specified.
                     * @param message NoConnectivitySettings
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.NoConnectivitySettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this NoConnectivitySettings to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for NoConnectivitySettings
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StaticServiceIpConnectivity. */
                interface IStaticServiceIpConnectivity {
                }

                /** Represents a StaticServiceIpConnectivity. */
                class StaticServiceIpConnectivity implements IStaticServiceIpConnectivity {

                    /**
                     * Constructs a new StaticServiceIpConnectivity.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IStaticServiceIpConnectivity);

                    /**
                     * Creates a new StaticServiceIpConnectivity instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StaticServiceIpConnectivity instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IStaticServiceIpConnectivity): google.cloud.datastream.v1alpha1.StaticServiceIpConnectivity;

                    /**
                     * Encodes the specified StaticServiceIpConnectivity message. Does not implicitly {@link google.cloud.datastream.v1alpha1.StaticServiceIpConnectivity.verify|verify} messages.
                     * @param message StaticServiceIpConnectivity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IStaticServiceIpConnectivity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StaticServiceIpConnectivity message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.StaticServiceIpConnectivity.verify|verify} messages.
                     * @param message StaticServiceIpConnectivity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IStaticServiceIpConnectivity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StaticServiceIpConnectivity message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StaticServiceIpConnectivity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.StaticServiceIpConnectivity;

                    /**
                     * Decodes a StaticServiceIpConnectivity message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StaticServiceIpConnectivity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.StaticServiceIpConnectivity;

                    /**
                     * Verifies a StaticServiceIpConnectivity message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StaticServiceIpConnectivity message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StaticServiceIpConnectivity
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.StaticServiceIpConnectivity;

                    /**
                     * Creates a plain object from a StaticServiceIpConnectivity message. Also converts values to other types if specified.
                     * @param message StaticServiceIpConnectivity
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.StaticServiceIpConnectivity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StaticServiceIpConnectivity to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StaticServiceIpConnectivity
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ForwardSshTunnelConnectivity. */
                interface IForwardSshTunnelConnectivity {

                    /** ForwardSshTunnelConnectivity hostname */
                    hostname?: (string|null);

                    /** ForwardSshTunnelConnectivity username */
                    username?: (string|null);

                    /** ForwardSshTunnelConnectivity port */
                    port?: (number|null);

                    /** ForwardSshTunnelConnectivity password */
                    password?: (string|null);

                    /** ForwardSshTunnelConnectivity privateKey */
                    privateKey?: (string|null);
                }

                /** Represents a ForwardSshTunnelConnectivity. */
                class ForwardSshTunnelConnectivity implements IForwardSshTunnelConnectivity {

                    /**
                     * Constructs a new ForwardSshTunnelConnectivity.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IForwardSshTunnelConnectivity);

                    /** ForwardSshTunnelConnectivity hostname. */
                    public hostname: string;

                    /** ForwardSshTunnelConnectivity username. */
                    public username: string;

                    /** ForwardSshTunnelConnectivity port. */
                    public port: number;

                    /** ForwardSshTunnelConnectivity password. */
                    public password?: (string|null);

                    /** ForwardSshTunnelConnectivity privateKey. */
                    public privateKey?: (string|null);

                    /** ForwardSshTunnelConnectivity authenticationMethod. */
                    public authenticationMethod?: ("password"|"privateKey");

                    /**
                     * Creates a new ForwardSshTunnelConnectivity instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ForwardSshTunnelConnectivity instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IForwardSshTunnelConnectivity): google.cloud.datastream.v1alpha1.ForwardSshTunnelConnectivity;

                    /**
                     * Encodes the specified ForwardSshTunnelConnectivity message. Does not implicitly {@link google.cloud.datastream.v1alpha1.ForwardSshTunnelConnectivity.verify|verify} messages.
                     * @param message ForwardSshTunnelConnectivity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IForwardSshTunnelConnectivity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ForwardSshTunnelConnectivity message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.ForwardSshTunnelConnectivity.verify|verify} messages.
                     * @param message ForwardSshTunnelConnectivity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IForwardSshTunnelConnectivity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ForwardSshTunnelConnectivity message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ForwardSshTunnelConnectivity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.ForwardSshTunnelConnectivity;

                    /**
                     * Decodes a ForwardSshTunnelConnectivity message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ForwardSshTunnelConnectivity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.ForwardSshTunnelConnectivity;

                    /**
                     * Verifies a ForwardSshTunnelConnectivity message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ForwardSshTunnelConnectivity message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ForwardSshTunnelConnectivity
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.ForwardSshTunnelConnectivity;

                    /**
                     * Creates a plain object from a ForwardSshTunnelConnectivity message. Also converts values to other types if specified.
                     * @param message ForwardSshTunnelConnectivity
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.ForwardSshTunnelConnectivity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ForwardSshTunnelConnectivity to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ForwardSshTunnelConnectivity
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a VpcPeeringConfig. */
                interface IVpcPeeringConfig {

                    /** VpcPeeringConfig vpcName */
                    vpcName?: (string|null);

                    /** VpcPeeringConfig subnet */
                    subnet?: (string|null);
                }

                /** Represents a VpcPeeringConfig. */
                class VpcPeeringConfig implements IVpcPeeringConfig {

                    /**
                     * Constructs a new VpcPeeringConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IVpcPeeringConfig);

                    /** VpcPeeringConfig vpcName. */
                    public vpcName: string;

                    /** VpcPeeringConfig subnet. */
                    public subnet: string;

                    /**
                     * Creates a new VpcPeeringConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VpcPeeringConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IVpcPeeringConfig): google.cloud.datastream.v1alpha1.VpcPeeringConfig;

                    /**
                     * Encodes the specified VpcPeeringConfig message. Does not implicitly {@link google.cloud.datastream.v1alpha1.VpcPeeringConfig.verify|verify} messages.
                     * @param message VpcPeeringConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IVpcPeeringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VpcPeeringConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.VpcPeeringConfig.verify|verify} messages.
                     * @param message VpcPeeringConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IVpcPeeringConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VpcPeeringConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VpcPeeringConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.VpcPeeringConfig;

                    /**
                     * Decodes a VpcPeeringConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VpcPeeringConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.VpcPeeringConfig;

                    /**
                     * Verifies a VpcPeeringConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VpcPeeringConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VpcPeeringConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.VpcPeeringConfig;

                    /**
                     * Creates a plain object from a VpcPeeringConfig message. Also converts values to other types if specified.
                     * @param message VpcPeeringConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.VpcPeeringConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VpcPeeringConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VpcPeeringConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PrivateConnection. */
                interface IPrivateConnection {

                    /** PrivateConnection name */
                    name?: (string|null);

                    /** PrivateConnection createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** PrivateConnection updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** PrivateConnection labels */
                    labels?: ({ [k: string]: string }|null);

                    /** PrivateConnection displayName */
                    displayName?: (string|null);

                    /** PrivateConnection state */
                    state?: (google.cloud.datastream.v1alpha1.PrivateConnection.State|keyof typeof google.cloud.datastream.v1alpha1.PrivateConnection.State|null);

                    /** PrivateConnection error */
                    error?: (google.cloud.datastream.v1alpha1.IError|null);

                    /** PrivateConnection vpcPeeringConfig */
                    vpcPeeringConfig?: (google.cloud.datastream.v1alpha1.IVpcPeeringConfig|null);
                }

                /** Represents a PrivateConnection. */
                class PrivateConnection implements IPrivateConnection {

                    /**
                     * Constructs a new PrivateConnection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IPrivateConnection);

                    /** PrivateConnection name. */
                    public name: string;

                    /** PrivateConnection createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** PrivateConnection updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** PrivateConnection labels. */
                    public labels: { [k: string]: string };

                    /** PrivateConnection displayName. */
                    public displayName: string;

                    /** PrivateConnection state. */
                    public state: (google.cloud.datastream.v1alpha1.PrivateConnection.State|keyof typeof google.cloud.datastream.v1alpha1.PrivateConnection.State);

                    /** PrivateConnection error. */
                    public error?: (google.cloud.datastream.v1alpha1.IError|null);

                    /** PrivateConnection vpcPeeringConfig. */
                    public vpcPeeringConfig?: (google.cloud.datastream.v1alpha1.IVpcPeeringConfig|null);

                    /**
                     * Creates a new PrivateConnection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PrivateConnection instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IPrivateConnection): google.cloud.datastream.v1alpha1.PrivateConnection;

                    /**
                     * Encodes the specified PrivateConnection message. Does not implicitly {@link google.cloud.datastream.v1alpha1.PrivateConnection.verify|verify} messages.
                     * @param message PrivateConnection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IPrivateConnection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PrivateConnection message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.PrivateConnection.verify|verify} messages.
                     * @param message PrivateConnection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IPrivateConnection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PrivateConnection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PrivateConnection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.PrivateConnection;

                    /**
                     * Decodes a PrivateConnection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PrivateConnection
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.PrivateConnection;

                    /**
                     * Verifies a PrivateConnection message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PrivateConnection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PrivateConnection
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.PrivateConnection;

                    /**
                     * Creates a plain object from a PrivateConnection message. Also converts values to other types if specified.
                     * @param message PrivateConnection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.PrivateConnection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PrivateConnection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PrivateConnection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PrivateConnection {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        CREATING = 1,
                        CREATED = 2,
                        FAILED = 3
                    }
                }

                /** Properties of a PrivateConnectivity. */
                interface IPrivateConnectivity {

                    /** PrivateConnectivity privateConnectionName */
                    privateConnectionName?: (string|null);
                }

                /** Represents a PrivateConnectivity. */
                class PrivateConnectivity implements IPrivateConnectivity {

                    /**
                     * Constructs a new PrivateConnectivity.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IPrivateConnectivity);

                    /** PrivateConnectivity privateConnectionName. */
                    public privateConnectionName: string;

                    /**
                     * Creates a new PrivateConnectivity instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PrivateConnectivity instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IPrivateConnectivity): google.cloud.datastream.v1alpha1.PrivateConnectivity;

                    /**
                     * Encodes the specified PrivateConnectivity message. Does not implicitly {@link google.cloud.datastream.v1alpha1.PrivateConnectivity.verify|verify} messages.
                     * @param message PrivateConnectivity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IPrivateConnectivity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PrivateConnectivity message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.PrivateConnectivity.verify|verify} messages.
                     * @param message PrivateConnectivity message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IPrivateConnectivity, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PrivateConnectivity message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PrivateConnectivity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.PrivateConnectivity;

                    /**
                     * Decodes a PrivateConnectivity message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PrivateConnectivity
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.PrivateConnectivity;

                    /**
                     * Verifies a PrivateConnectivity message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PrivateConnectivity message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PrivateConnectivity
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.PrivateConnectivity;

                    /**
                     * Creates a plain object from a PrivateConnectivity message. Also converts values to other types if specified.
                     * @param message PrivateConnectivity
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.PrivateConnectivity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PrivateConnectivity to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PrivateConnectivity
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Route. */
                interface IRoute {

                    /** Route name */
                    name?: (string|null);

                    /** Route createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** Route updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** Route labels */
                    labels?: ({ [k: string]: string }|null);

                    /** Route displayName */
                    displayName?: (string|null);

                    /** Route destinationAddress */
                    destinationAddress?: (string|null);

                    /** Route destinationPort */
                    destinationPort?: (number|null);
                }

                /** Represents a Route. */
                class Route implements IRoute {

                    /**
                     * Constructs a new Route.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IRoute);

                    /** Route name. */
                    public name: string;

                    /** Route createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** Route updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** Route labels. */
                    public labels: { [k: string]: string };

                    /** Route displayName. */
                    public displayName: string;

                    /** Route destinationAddress. */
                    public destinationAddress: string;

                    /** Route destinationPort. */
                    public destinationPort: number;

                    /**
                     * Creates a new Route instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Route instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IRoute): google.cloud.datastream.v1alpha1.Route;

                    /**
                     * Encodes the specified Route message. Does not implicitly {@link google.cloud.datastream.v1alpha1.Route.verify|verify} messages.
                     * @param message Route message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IRoute, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Route message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.Route.verify|verify} messages.
                     * @param message Route message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IRoute, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Route message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Route
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.Route;

                    /**
                     * Decodes a Route message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Route
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.Route;

                    /**
                     * Verifies a Route message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Route message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Route
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.Route;

                    /**
                     * Creates a plain object from a Route message. Also converts values to other types if specified.
                     * @param message Route
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.Route, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Route to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Route
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MysqlSslConfig. */
                interface IMysqlSslConfig {

                    /** MysqlSslConfig clientKey */
                    clientKey?: (string|null);

                    /** MysqlSslConfig clientKeySet */
                    clientKeySet?: (boolean|null);

                    /** MysqlSslConfig clientCertificate */
                    clientCertificate?: (string|null);

                    /** MysqlSslConfig clientCertificateSet */
                    clientCertificateSet?: (boolean|null);

                    /** MysqlSslConfig caCertificate */
                    caCertificate?: (string|null);

                    /** MysqlSslConfig caCertificateSet */
                    caCertificateSet?: (boolean|null);
                }

                /** Represents a MysqlSslConfig. */
                class MysqlSslConfig implements IMysqlSslConfig {

                    /**
                     * Constructs a new MysqlSslConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IMysqlSslConfig);

                    /** MysqlSslConfig clientKey. */
                    public clientKey: string;

                    /** MysqlSslConfig clientKeySet. */
                    public clientKeySet: boolean;

                    /** MysqlSslConfig clientCertificate. */
                    public clientCertificate: string;

                    /** MysqlSslConfig clientCertificateSet. */
                    public clientCertificateSet: boolean;

                    /** MysqlSslConfig caCertificate. */
                    public caCertificate: string;

                    /** MysqlSslConfig caCertificateSet. */
                    public caCertificateSet: boolean;

                    /**
                     * Creates a new MysqlSslConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MysqlSslConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IMysqlSslConfig): google.cloud.datastream.v1alpha1.MysqlSslConfig;

                    /**
                     * Encodes the specified MysqlSslConfig message. Does not implicitly {@link google.cloud.datastream.v1alpha1.MysqlSslConfig.verify|verify} messages.
                     * @param message MysqlSslConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IMysqlSslConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MysqlSslConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.MysqlSslConfig.verify|verify} messages.
                     * @param message MysqlSslConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IMysqlSslConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MysqlSslConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MysqlSslConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.MysqlSslConfig;

                    /**
                     * Decodes a MysqlSslConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MysqlSslConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.MysqlSslConfig;

                    /**
                     * Verifies a MysqlSslConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MysqlSslConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MysqlSslConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.MysqlSslConfig;

                    /**
                     * Creates a plain object from a MysqlSslConfig message. Also converts values to other types if specified.
                     * @param message MysqlSslConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.MysqlSslConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MysqlSslConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MysqlSslConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ConnectionProfile. */
                interface IConnectionProfile {

                    /** ConnectionProfile name */
                    name?: (string|null);

                    /** ConnectionProfile createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** ConnectionProfile updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** ConnectionProfile labels */
                    labels?: ({ [k: string]: string }|null);

                    /** ConnectionProfile displayName */
                    displayName?: (string|null);

                    /** ConnectionProfile oracleProfile */
                    oracleProfile?: (google.cloud.datastream.v1alpha1.IOracleProfile|null);

                    /** ConnectionProfile gcsProfile */
                    gcsProfile?: (google.cloud.datastream.v1alpha1.IGcsProfile|null);

                    /** ConnectionProfile mysqlProfile */
                    mysqlProfile?: (google.cloud.datastream.v1alpha1.IMysqlProfile|null);

                    /** ConnectionProfile noConnectivity */
                    noConnectivity?: (google.cloud.datastream.v1alpha1.INoConnectivitySettings|null);

                    /** ConnectionProfile staticServiceIpConnectivity */
                    staticServiceIpConnectivity?: (google.cloud.datastream.v1alpha1.IStaticServiceIpConnectivity|null);

                    /** ConnectionProfile forwardSshConnectivity */
                    forwardSshConnectivity?: (google.cloud.datastream.v1alpha1.IForwardSshTunnelConnectivity|null);

                    /** ConnectionProfile privateConnectivity */
                    privateConnectivity?: (google.cloud.datastream.v1alpha1.IPrivateConnectivity|null);
                }

                /** Represents a ConnectionProfile. */
                class ConnectionProfile implements IConnectionProfile {

                    /**
                     * Constructs a new ConnectionProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IConnectionProfile);

                    /** ConnectionProfile name. */
                    public name: string;

                    /** ConnectionProfile createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** ConnectionProfile updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** ConnectionProfile labels. */
                    public labels: { [k: string]: string };

                    /** ConnectionProfile displayName. */
                    public displayName: string;

                    /** ConnectionProfile oracleProfile. */
                    public oracleProfile?: (google.cloud.datastream.v1alpha1.IOracleProfile|null);

                    /** ConnectionProfile gcsProfile. */
                    public gcsProfile?: (google.cloud.datastream.v1alpha1.IGcsProfile|null);

                    /** ConnectionProfile mysqlProfile. */
                    public mysqlProfile?: (google.cloud.datastream.v1alpha1.IMysqlProfile|null);

                    /** ConnectionProfile noConnectivity. */
                    public noConnectivity?: (google.cloud.datastream.v1alpha1.INoConnectivitySettings|null);

                    /** ConnectionProfile staticServiceIpConnectivity. */
                    public staticServiceIpConnectivity?: (google.cloud.datastream.v1alpha1.IStaticServiceIpConnectivity|null);

                    /** ConnectionProfile forwardSshConnectivity. */
                    public forwardSshConnectivity?: (google.cloud.datastream.v1alpha1.IForwardSshTunnelConnectivity|null);

                    /** ConnectionProfile privateConnectivity. */
                    public privateConnectivity?: (google.cloud.datastream.v1alpha1.IPrivateConnectivity|null);

                    /** ConnectionProfile profile. */
                    public profile?: ("oracleProfile"|"gcsProfile"|"mysqlProfile");

                    /** ConnectionProfile connectivity. */
                    public connectivity?: ("noConnectivity"|"staticServiceIpConnectivity"|"forwardSshConnectivity"|"privateConnectivity");

                    /**
                     * Creates a new ConnectionProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ConnectionProfile instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IConnectionProfile): google.cloud.datastream.v1alpha1.ConnectionProfile;

                    /**
                     * Encodes the specified ConnectionProfile message. Does not implicitly {@link google.cloud.datastream.v1alpha1.ConnectionProfile.verify|verify} messages.
                     * @param message ConnectionProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IConnectionProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ConnectionProfile message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.ConnectionProfile.verify|verify} messages.
                     * @param message ConnectionProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IConnectionProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ConnectionProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ConnectionProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.ConnectionProfile;

                    /**
                     * Decodes a ConnectionProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ConnectionProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.ConnectionProfile;

                    /**
                     * Verifies a ConnectionProfile message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ConnectionProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ConnectionProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.ConnectionProfile;

                    /**
                     * Creates a plain object from a ConnectionProfile message. Also converts values to other types if specified.
                     * @param message ConnectionProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.ConnectionProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ConnectionProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ConnectionProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OracleColumn. */
                interface IOracleColumn {

                    /** OracleColumn columnName */
                    columnName?: (string|null);

                    /** OracleColumn dataType */
                    dataType?: (string|null);

                    /** OracleColumn length */
                    length?: (number|null);

                    /** OracleColumn precision */
                    precision?: (number|null);

                    /** OracleColumn scale */
                    scale?: (number|null);

                    /** OracleColumn encoding */
                    encoding?: (string|null);

                    /** OracleColumn primaryKey */
                    primaryKey?: (boolean|null);

                    /** OracleColumn nullable */
                    nullable?: (boolean|null);

                    /** OracleColumn ordinalPosition */
                    ordinalPosition?: (number|null);
                }

                /** Represents an OracleColumn. */
                class OracleColumn implements IOracleColumn {

                    /**
                     * Constructs a new OracleColumn.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IOracleColumn);

                    /** OracleColumn columnName. */
                    public columnName: string;

                    /** OracleColumn dataType. */
                    public dataType: string;

                    /** OracleColumn length. */
                    public length: number;

                    /** OracleColumn precision. */
                    public precision: number;

                    /** OracleColumn scale. */
                    public scale: number;

                    /** OracleColumn encoding. */
                    public encoding: string;

                    /** OracleColumn primaryKey. */
                    public primaryKey: boolean;

                    /** OracleColumn nullable. */
                    public nullable: boolean;

                    /** OracleColumn ordinalPosition. */
                    public ordinalPosition: number;

                    /**
                     * Creates a new OracleColumn instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OracleColumn instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IOracleColumn): google.cloud.datastream.v1alpha1.OracleColumn;

                    /**
                     * Encodes the specified OracleColumn message. Does not implicitly {@link google.cloud.datastream.v1alpha1.OracleColumn.verify|verify} messages.
                     * @param message OracleColumn message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IOracleColumn, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OracleColumn message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.OracleColumn.verify|verify} messages.
                     * @param message OracleColumn message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IOracleColumn, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OracleColumn message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OracleColumn
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.OracleColumn;

                    /**
                     * Decodes an OracleColumn message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OracleColumn
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.OracleColumn;

                    /**
                     * Verifies an OracleColumn message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OracleColumn message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OracleColumn
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.OracleColumn;

                    /**
                     * Creates a plain object from an OracleColumn message. Also converts values to other types if specified.
                     * @param message OracleColumn
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.OracleColumn, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OracleColumn to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OracleColumn
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OracleTable. */
                interface IOracleTable {

                    /** OracleTable tableName */
                    tableName?: (string|null);

                    /** OracleTable oracleColumns */
                    oracleColumns?: (google.cloud.datastream.v1alpha1.IOracleColumn[]|null);
                }

                /** Represents an OracleTable. */
                class OracleTable implements IOracleTable {

                    /**
                     * Constructs a new OracleTable.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IOracleTable);

                    /** OracleTable tableName. */
                    public tableName: string;

                    /** OracleTable oracleColumns. */
                    public oracleColumns: google.cloud.datastream.v1alpha1.IOracleColumn[];

                    /**
                     * Creates a new OracleTable instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OracleTable instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IOracleTable): google.cloud.datastream.v1alpha1.OracleTable;

                    /**
                     * Encodes the specified OracleTable message. Does not implicitly {@link google.cloud.datastream.v1alpha1.OracleTable.verify|verify} messages.
                     * @param message OracleTable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IOracleTable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OracleTable message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.OracleTable.verify|verify} messages.
                     * @param message OracleTable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IOracleTable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OracleTable message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OracleTable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.OracleTable;

                    /**
                     * Decodes an OracleTable message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OracleTable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.OracleTable;

                    /**
                     * Verifies an OracleTable message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OracleTable message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OracleTable
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.OracleTable;

                    /**
                     * Creates a plain object from an OracleTable message. Also converts values to other types if specified.
                     * @param message OracleTable
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.OracleTable, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OracleTable to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OracleTable
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OracleSchema. */
                interface IOracleSchema {

                    /** OracleSchema schemaName */
                    schemaName?: (string|null);

                    /** OracleSchema oracleTables */
                    oracleTables?: (google.cloud.datastream.v1alpha1.IOracleTable[]|null);
                }

                /** Represents an OracleSchema. */
                class OracleSchema implements IOracleSchema {

                    /**
                     * Constructs a new OracleSchema.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IOracleSchema);

                    /** OracleSchema schemaName. */
                    public schemaName: string;

                    /** OracleSchema oracleTables. */
                    public oracleTables: google.cloud.datastream.v1alpha1.IOracleTable[];

                    /**
                     * Creates a new OracleSchema instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OracleSchema instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IOracleSchema): google.cloud.datastream.v1alpha1.OracleSchema;

                    /**
                     * Encodes the specified OracleSchema message. Does not implicitly {@link google.cloud.datastream.v1alpha1.OracleSchema.verify|verify} messages.
                     * @param message OracleSchema message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IOracleSchema, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OracleSchema message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.OracleSchema.verify|verify} messages.
                     * @param message OracleSchema message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IOracleSchema, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OracleSchema message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OracleSchema
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.OracleSchema;

                    /**
                     * Decodes an OracleSchema message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OracleSchema
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.OracleSchema;

                    /**
                     * Verifies an OracleSchema message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OracleSchema message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OracleSchema
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.OracleSchema;

                    /**
                     * Creates a plain object from an OracleSchema message. Also converts values to other types if specified.
                     * @param message OracleSchema
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.OracleSchema, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OracleSchema to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OracleSchema
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OracleRdbms. */
                interface IOracleRdbms {

                    /** OracleRdbms oracleSchemas */
                    oracleSchemas?: (google.cloud.datastream.v1alpha1.IOracleSchema[]|null);
                }

                /** Represents an OracleRdbms. */
                class OracleRdbms implements IOracleRdbms {

                    /**
                     * Constructs a new OracleRdbms.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IOracleRdbms);

                    /** OracleRdbms oracleSchemas. */
                    public oracleSchemas: google.cloud.datastream.v1alpha1.IOracleSchema[];

                    /**
                     * Creates a new OracleRdbms instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OracleRdbms instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IOracleRdbms): google.cloud.datastream.v1alpha1.OracleRdbms;

                    /**
                     * Encodes the specified OracleRdbms message. Does not implicitly {@link google.cloud.datastream.v1alpha1.OracleRdbms.verify|verify} messages.
                     * @param message OracleRdbms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IOracleRdbms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OracleRdbms message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.OracleRdbms.verify|verify} messages.
                     * @param message OracleRdbms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IOracleRdbms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OracleRdbms message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OracleRdbms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.OracleRdbms;

                    /**
                     * Decodes an OracleRdbms message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OracleRdbms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.OracleRdbms;

                    /**
                     * Verifies an OracleRdbms message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OracleRdbms message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OracleRdbms
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.OracleRdbms;

                    /**
                     * Creates a plain object from an OracleRdbms message. Also converts values to other types if specified.
                     * @param message OracleRdbms
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.OracleRdbms, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OracleRdbms to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OracleRdbms
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OracleSourceConfig. */
                interface IOracleSourceConfig {

                    /** OracleSourceConfig allowlist */
                    allowlist?: (google.cloud.datastream.v1alpha1.IOracleRdbms|null);

                    /** OracleSourceConfig rejectlist */
                    rejectlist?: (google.cloud.datastream.v1alpha1.IOracleRdbms|null);
                }

                /** Represents an OracleSourceConfig. */
                class OracleSourceConfig implements IOracleSourceConfig {

                    /**
                     * Constructs a new OracleSourceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IOracleSourceConfig);

                    /** OracleSourceConfig allowlist. */
                    public allowlist?: (google.cloud.datastream.v1alpha1.IOracleRdbms|null);

                    /** OracleSourceConfig rejectlist. */
                    public rejectlist?: (google.cloud.datastream.v1alpha1.IOracleRdbms|null);

                    /**
                     * Creates a new OracleSourceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OracleSourceConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IOracleSourceConfig): google.cloud.datastream.v1alpha1.OracleSourceConfig;

                    /**
                     * Encodes the specified OracleSourceConfig message. Does not implicitly {@link google.cloud.datastream.v1alpha1.OracleSourceConfig.verify|verify} messages.
                     * @param message OracleSourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IOracleSourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OracleSourceConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.OracleSourceConfig.verify|verify} messages.
                     * @param message OracleSourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IOracleSourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OracleSourceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OracleSourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.OracleSourceConfig;

                    /**
                     * Decodes an OracleSourceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OracleSourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.OracleSourceConfig;

                    /**
                     * Verifies an OracleSourceConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OracleSourceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OracleSourceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.OracleSourceConfig;

                    /**
                     * Creates a plain object from an OracleSourceConfig message. Also converts values to other types if specified.
                     * @param message OracleSourceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.OracleSourceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OracleSourceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OracleSourceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MysqlColumn. */
                interface IMysqlColumn {

                    /** MysqlColumn columnName */
                    columnName?: (string|null);

                    /** MysqlColumn dataType */
                    dataType?: (string|null);

                    /** MysqlColumn length */
                    length?: (number|null);

                    /** MysqlColumn collation */
                    collation?: (string|null);

                    /** MysqlColumn primaryKey */
                    primaryKey?: (boolean|null);

                    /** MysqlColumn nullable */
                    nullable?: (boolean|null);

                    /** MysqlColumn ordinalPosition */
                    ordinalPosition?: (number|null);
                }

                /** Represents a MysqlColumn. */
                class MysqlColumn implements IMysqlColumn {

                    /**
                     * Constructs a new MysqlColumn.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IMysqlColumn);

                    /** MysqlColumn columnName. */
                    public columnName: string;

                    /** MysqlColumn dataType. */
                    public dataType: string;

                    /** MysqlColumn length. */
                    public length: number;

                    /** MysqlColumn collation. */
                    public collation: string;

                    /** MysqlColumn primaryKey. */
                    public primaryKey: boolean;

                    /** MysqlColumn nullable. */
                    public nullable: boolean;

                    /** MysqlColumn ordinalPosition. */
                    public ordinalPosition: number;

                    /**
                     * Creates a new MysqlColumn instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MysqlColumn instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IMysqlColumn): google.cloud.datastream.v1alpha1.MysqlColumn;

                    /**
                     * Encodes the specified MysqlColumn message. Does not implicitly {@link google.cloud.datastream.v1alpha1.MysqlColumn.verify|verify} messages.
                     * @param message MysqlColumn message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IMysqlColumn, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MysqlColumn message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.MysqlColumn.verify|verify} messages.
                     * @param message MysqlColumn message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IMysqlColumn, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MysqlColumn message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MysqlColumn
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.MysqlColumn;

                    /**
                     * Decodes a MysqlColumn message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MysqlColumn
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.MysqlColumn;

                    /**
                     * Verifies a MysqlColumn message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MysqlColumn message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MysqlColumn
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.MysqlColumn;

                    /**
                     * Creates a plain object from a MysqlColumn message. Also converts values to other types if specified.
                     * @param message MysqlColumn
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.MysqlColumn, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MysqlColumn to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MysqlColumn
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MysqlTable. */
                interface IMysqlTable {

                    /** MysqlTable tableName */
                    tableName?: (string|null);

                    /** MysqlTable mysqlColumns */
                    mysqlColumns?: (google.cloud.datastream.v1alpha1.IMysqlColumn[]|null);
                }

                /** Represents a MysqlTable. */
                class MysqlTable implements IMysqlTable {

                    /**
                     * Constructs a new MysqlTable.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IMysqlTable);

                    /** MysqlTable tableName. */
                    public tableName: string;

                    /** MysqlTable mysqlColumns. */
                    public mysqlColumns: google.cloud.datastream.v1alpha1.IMysqlColumn[];

                    /**
                     * Creates a new MysqlTable instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MysqlTable instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IMysqlTable): google.cloud.datastream.v1alpha1.MysqlTable;

                    /**
                     * Encodes the specified MysqlTable message. Does not implicitly {@link google.cloud.datastream.v1alpha1.MysqlTable.verify|verify} messages.
                     * @param message MysqlTable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IMysqlTable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MysqlTable message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.MysqlTable.verify|verify} messages.
                     * @param message MysqlTable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IMysqlTable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MysqlTable message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MysqlTable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.MysqlTable;

                    /**
                     * Decodes a MysqlTable message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MysqlTable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.MysqlTable;

                    /**
                     * Verifies a MysqlTable message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MysqlTable message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MysqlTable
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.MysqlTable;

                    /**
                     * Creates a plain object from a MysqlTable message. Also converts values to other types if specified.
                     * @param message MysqlTable
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.MysqlTable, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MysqlTable to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MysqlTable
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MysqlDatabase. */
                interface IMysqlDatabase {

                    /** MysqlDatabase databaseName */
                    databaseName?: (string|null);

                    /** MysqlDatabase mysqlTables */
                    mysqlTables?: (google.cloud.datastream.v1alpha1.IMysqlTable[]|null);
                }

                /** Represents a MysqlDatabase. */
                class MysqlDatabase implements IMysqlDatabase {

                    /**
                     * Constructs a new MysqlDatabase.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IMysqlDatabase);

                    /** MysqlDatabase databaseName. */
                    public databaseName: string;

                    /** MysqlDatabase mysqlTables. */
                    public mysqlTables: google.cloud.datastream.v1alpha1.IMysqlTable[];

                    /**
                     * Creates a new MysqlDatabase instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MysqlDatabase instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IMysqlDatabase): google.cloud.datastream.v1alpha1.MysqlDatabase;

                    /**
                     * Encodes the specified MysqlDatabase message. Does not implicitly {@link google.cloud.datastream.v1alpha1.MysqlDatabase.verify|verify} messages.
                     * @param message MysqlDatabase message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IMysqlDatabase, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MysqlDatabase message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.MysqlDatabase.verify|verify} messages.
                     * @param message MysqlDatabase message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IMysqlDatabase, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MysqlDatabase message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MysqlDatabase
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.MysqlDatabase;

                    /**
                     * Decodes a MysqlDatabase message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MysqlDatabase
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.MysqlDatabase;

                    /**
                     * Verifies a MysqlDatabase message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MysqlDatabase message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MysqlDatabase
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.MysqlDatabase;

                    /**
                     * Creates a plain object from a MysqlDatabase message. Also converts values to other types if specified.
                     * @param message MysqlDatabase
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.MysqlDatabase, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MysqlDatabase to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MysqlDatabase
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MysqlRdbms. */
                interface IMysqlRdbms {

                    /** MysqlRdbms mysqlDatabases */
                    mysqlDatabases?: (google.cloud.datastream.v1alpha1.IMysqlDatabase[]|null);
                }

                /** Represents a MysqlRdbms. */
                class MysqlRdbms implements IMysqlRdbms {

                    /**
                     * Constructs a new MysqlRdbms.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IMysqlRdbms);

                    /** MysqlRdbms mysqlDatabases. */
                    public mysqlDatabases: google.cloud.datastream.v1alpha1.IMysqlDatabase[];

                    /**
                     * Creates a new MysqlRdbms instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MysqlRdbms instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IMysqlRdbms): google.cloud.datastream.v1alpha1.MysqlRdbms;

                    /**
                     * Encodes the specified MysqlRdbms message. Does not implicitly {@link google.cloud.datastream.v1alpha1.MysqlRdbms.verify|verify} messages.
                     * @param message MysqlRdbms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IMysqlRdbms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MysqlRdbms message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.MysqlRdbms.verify|verify} messages.
                     * @param message MysqlRdbms message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IMysqlRdbms, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MysqlRdbms message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MysqlRdbms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.MysqlRdbms;

                    /**
                     * Decodes a MysqlRdbms message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MysqlRdbms
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.MysqlRdbms;

                    /**
                     * Verifies a MysqlRdbms message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MysqlRdbms message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MysqlRdbms
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.MysqlRdbms;

                    /**
                     * Creates a plain object from a MysqlRdbms message. Also converts values to other types if specified.
                     * @param message MysqlRdbms
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.MysqlRdbms, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MysqlRdbms to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MysqlRdbms
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MysqlSourceConfig. */
                interface IMysqlSourceConfig {

                    /** MysqlSourceConfig allowlist */
                    allowlist?: (google.cloud.datastream.v1alpha1.IMysqlRdbms|null);

                    /** MysqlSourceConfig rejectlist */
                    rejectlist?: (google.cloud.datastream.v1alpha1.IMysqlRdbms|null);
                }

                /** Represents a MysqlSourceConfig. */
                class MysqlSourceConfig implements IMysqlSourceConfig {

                    /**
                     * Constructs a new MysqlSourceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IMysqlSourceConfig);

                    /** MysqlSourceConfig allowlist. */
                    public allowlist?: (google.cloud.datastream.v1alpha1.IMysqlRdbms|null);

                    /** MysqlSourceConfig rejectlist. */
                    public rejectlist?: (google.cloud.datastream.v1alpha1.IMysqlRdbms|null);

                    /**
                     * Creates a new MysqlSourceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MysqlSourceConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IMysqlSourceConfig): google.cloud.datastream.v1alpha1.MysqlSourceConfig;

                    /**
                     * Encodes the specified MysqlSourceConfig message. Does not implicitly {@link google.cloud.datastream.v1alpha1.MysqlSourceConfig.verify|verify} messages.
                     * @param message MysqlSourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IMysqlSourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MysqlSourceConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.MysqlSourceConfig.verify|verify} messages.
                     * @param message MysqlSourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IMysqlSourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MysqlSourceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MysqlSourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.MysqlSourceConfig;

                    /**
                     * Decodes a MysqlSourceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MysqlSourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.MysqlSourceConfig;

                    /**
                     * Verifies a MysqlSourceConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MysqlSourceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MysqlSourceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.MysqlSourceConfig;

                    /**
                     * Creates a plain object from a MysqlSourceConfig message. Also converts values to other types if specified.
                     * @param message MysqlSourceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.MysqlSourceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MysqlSourceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MysqlSourceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SourceConfig. */
                interface ISourceConfig {

                    /** SourceConfig sourceConnectionProfileName */
                    sourceConnectionProfileName?: (string|null);

                    /** SourceConfig oracleSourceConfig */
                    oracleSourceConfig?: (google.cloud.datastream.v1alpha1.IOracleSourceConfig|null);

                    /** SourceConfig mysqlSourceConfig */
                    mysqlSourceConfig?: (google.cloud.datastream.v1alpha1.IMysqlSourceConfig|null);
                }

                /** Represents a SourceConfig. */
                class SourceConfig implements ISourceConfig {

                    /**
                     * Constructs a new SourceConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.ISourceConfig);

                    /** SourceConfig sourceConnectionProfileName. */
                    public sourceConnectionProfileName: string;

                    /** SourceConfig oracleSourceConfig. */
                    public oracleSourceConfig?: (google.cloud.datastream.v1alpha1.IOracleSourceConfig|null);

                    /** SourceConfig mysqlSourceConfig. */
                    public mysqlSourceConfig?: (google.cloud.datastream.v1alpha1.IMysqlSourceConfig|null);

                    /** SourceConfig sourceStreamConfig. */
                    public sourceStreamConfig?: ("oracleSourceConfig"|"mysqlSourceConfig");

                    /**
                     * Creates a new SourceConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SourceConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.ISourceConfig): google.cloud.datastream.v1alpha1.SourceConfig;

                    /**
                     * Encodes the specified SourceConfig message. Does not implicitly {@link google.cloud.datastream.v1alpha1.SourceConfig.verify|verify} messages.
                     * @param message SourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.ISourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SourceConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.SourceConfig.verify|verify} messages.
                     * @param message SourceConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.ISourceConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SourceConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.SourceConfig;

                    /**
                     * Decodes a SourceConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SourceConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.SourceConfig;

                    /**
                     * Verifies a SourceConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SourceConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SourceConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.SourceConfig;

                    /**
                     * Creates a plain object from a SourceConfig message. Also converts values to other types if specified.
                     * @param message SourceConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.SourceConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SourceConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SourceConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AvroFileFormat. */
                interface IAvroFileFormat {
                }

                /** Represents an AvroFileFormat. */
                class AvroFileFormat implements IAvroFileFormat {

                    /**
                     * Constructs a new AvroFileFormat.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IAvroFileFormat);

                    /**
                     * Creates a new AvroFileFormat instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AvroFileFormat instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IAvroFileFormat): google.cloud.datastream.v1alpha1.AvroFileFormat;

                    /**
                     * Encodes the specified AvroFileFormat message. Does not implicitly {@link google.cloud.datastream.v1alpha1.AvroFileFormat.verify|verify} messages.
                     * @param message AvroFileFormat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IAvroFileFormat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AvroFileFormat message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.AvroFileFormat.verify|verify} messages.
                     * @param message AvroFileFormat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IAvroFileFormat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AvroFileFormat message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AvroFileFormat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.AvroFileFormat;

                    /**
                     * Decodes an AvroFileFormat message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AvroFileFormat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.AvroFileFormat;

                    /**
                     * Verifies an AvroFileFormat message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an AvroFileFormat message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AvroFileFormat
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.AvroFileFormat;

                    /**
                     * Creates a plain object from an AvroFileFormat message. Also converts values to other types if specified.
                     * @param message AvroFileFormat
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.AvroFileFormat, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AvroFileFormat to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AvroFileFormat
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** GcsFileFormat enum. */
                enum GcsFileFormat {
                    GCS_FILE_FORMAT_UNSPECIFIED = 0,
                    AVRO = 1
                }

                /** SchemaFileFormat enum. */
                enum SchemaFileFormat {
                    SCHEMA_FILE_FORMAT_UNSPECIFIED = 0,
                    NO_SCHEMA_FILE = 1,
                    AVRO_SCHEMA_FILE = 2
                }

                /** Properties of a JsonFileFormat. */
                interface IJsonFileFormat {

                    /** JsonFileFormat schemaFileFormat */
                    schemaFileFormat?: (google.cloud.datastream.v1alpha1.SchemaFileFormat|keyof typeof google.cloud.datastream.v1alpha1.SchemaFileFormat|null);

                    /** JsonFileFormat compression */
                    compression?: (google.cloud.datastream.v1alpha1.JsonFileFormat.JsonCompression|keyof typeof google.cloud.datastream.v1alpha1.JsonFileFormat.JsonCompression|null);
                }

                /** Represents a JsonFileFormat. */
                class JsonFileFormat implements IJsonFileFormat {

                    /**
                     * Constructs a new JsonFileFormat.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IJsonFileFormat);

                    /** JsonFileFormat schemaFileFormat. */
                    public schemaFileFormat: (google.cloud.datastream.v1alpha1.SchemaFileFormat|keyof typeof google.cloud.datastream.v1alpha1.SchemaFileFormat);

                    /** JsonFileFormat compression. */
                    public compression: (google.cloud.datastream.v1alpha1.JsonFileFormat.JsonCompression|keyof typeof google.cloud.datastream.v1alpha1.JsonFileFormat.JsonCompression);

                    /**
                     * Creates a new JsonFileFormat instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns JsonFileFormat instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IJsonFileFormat): google.cloud.datastream.v1alpha1.JsonFileFormat;

                    /**
                     * Encodes the specified JsonFileFormat message. Does not implicitly {@link google.cloud.datastream.v1alpha1.JsonFileFormat.verify|verify} messages.
                     * @param message JsonFileFormat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IJsonFileFormat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified JsonFileFormat message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.JsonFileFormat.verify|verify} messages.
                     * @param message JsonFileFormat message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IJsonFileFormat, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a JsonFileFormat message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns JsonFileFormat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.JsonFileFormat;

                    /**
                     * Decodes a JsonFileFormat message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns JsonFileFormat
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.JsonFileFormat;

                    /**
                     * Verifies a JsonFileFormat message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a JsonFileFormat message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns JsonFileFormat
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.JsonFileFormat;

                    /**
                     * Creates a plain object from a JsonFileFormat message. Also converts values to other types if specified.
                     * @param message JsonFileFormat
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.JsonFileFormat, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this JsonFileFormat to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for JsonFileFormat
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace JsonFileFormat {

                    /** JsonCompression enum. */
                    enum JsonCompression {
                        JSON_COMPRESSION_UNSPECIFIED = 0,
                        NO_COMPRESSION = 1,
                        GZIP = 2
                    }
                }

                /** Properties of a GcsDestinationConfig. */
                interface IGcsDestinationConfig {

                    /** GcsDestinationConfig path */
                    path?: (string|null);

                    /** GcsDestinationConfig gcsFileFormat */
                    gcsFileFormat?: (google.cloud.datastream.v1alpha1.GcsFileFormat|keyof typeof google.cloud.datastream.v1alpha1.GcsFileFormat|null);

                    /** GcsDestinationConfig fileRotationMb */
                    fileRotationMb?: (number|null);

                    /** GcsDestinationConfig fileRotationInterval */
                    fileRotationInterval?: (google.protobuf.IDuration|null);

                    /** GcsDestinationConfig avroFileFormat */
                    avroFileFormat?: (google.cloud.datastream.v1alpha1.IAvroFileFormat|null);

                    /** GcsDestinationConfig jsonFileFormat */
                    jsonFileFormat?: (google.cloud.datastream.v1alpha1.IJsonFileFormat|null);
                }

                /** Represents a GcsDestinationConfig. */
                class GcsDestinationConfig implements IGcsDestinationConfig {

                    /**
                     * Constructs a new GcsDestinationConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IGcsDestinationConfig);

                    /** GcsDestinationConfig path. */
                    public path: string;

                    /** GcsDestinationConfig gcsFileFormat. */
                    public gcsFileFormat: (google.cloud.datastream.v1alpha1.GcsFileFormat|keyof typeof google.cloud.datastream.v1alpha1.GcsFileFormat);

                    /** GcsDestinationConfig fileRotationMb. */
                    public fileRotationMb: number;

                    /** GcsDestinationConfig fileRotationInterval. */
                    public fileRotationInterval?: (google.protobuf.IDuration|null);

                    /** GcsDestinationConfig avroFileFormat. */
                    public avroFileFormat?: (google.cloud.datastream.v1alpha1.IAvroFileFormat|null);

                    /** GcsDestinationConfig jsonFileFormat. */
                    public jsonFileFormat?: (google.cloud.datastream.v1alpha1.IJsonFileFormat|null);

                    /** GcsDestinationConfig fileFormat. */
                    public fileFormat?: ("avroFileFormat"|"jsonFileFormat");

                    /**
                     * Creates a new GcsDestinationConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GcsDestinationConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IGcsDestinationConfig): google.cloud.datastream.v1alpha1.GcsDestinationConfig;

                    /**
                     * Encodes the specified GcsDestinationConfig message. Does not implicitly {@link google.cloud.datastream.v1alpha1.GcsDestinationConfig.verify|verify} messages.
                     * @param message GcsDestinationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IGcsDestinationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GcsDestinationConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.GcsDestinationConfig.verify|verify} messages.
                     * @param message GcsDestinationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IGcsDestinationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GcsDestinationConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GcsDestinationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.GcsDestinationConfig;

                    /**
                     * Decodes a GcsDestinationConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GcsDestinationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.GcsDestinationConfig;

                    /**
                     * Verifies a GcsDestinationConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GcsDestinationConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GcsDestinationConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.GcsDestinationConfig;

                    /**
                     * Creates a plain object from a GcsDestinationConfig message. Also converts values to other types if specified.
                     * @param message GcsDestinationConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.GcsDestinationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GcsDestinationConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GcsDestinationConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DestinationConfig. */
                interface IDestinationConfig {

                    /** DestinationConfig destinationConnectionProfileName */
                    destinationConnectionProfileName?: (string|null);

                    /** DestinationConfig gcsDestinationConfig */
                    gcsDestinationConfig?: (google.cloud.datastream.v1alpha1.IGcsDestinationConfig|null);
                }

                /** Represents a DestinationConfig. */
                class DestinationConfig implements IDestinationConfig {

                    /**
                     * Constructs a new DestinationConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IDestinationConfig);

                    /** DestinationConfig destinationConnectionProfileName. */
                    public destinationConnectionProfileName: string;

                    /** DestinationConfig gcsDestinationConfig. */
                    public gcsDestinationConfig?: (google.cloud.datastream.v1alpha1.IGcsDestinationConfig|null);

                    /** DestinationConfig destinationStreamConfig. */
                    public destinationStreamConfig?: "gcsDestinationConfig";

                    /**
                     * Creates a new DestinationConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DestinationConfig instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IDestinationConfig): google.cloud.datastream.v1alpha1.DestinationConfig;

                    /**
                     * Encodes the specified DestinationConfig message. Does not implicitly {@link google.cloud.datastream.v1alpha1.DestinationConfig.verify|verify} messages.
                     * @param message DestinationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IDestinationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DestinationConfig message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.DestinationConfig.verify|verify} messages.
                     * @param message DestinationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IDestinationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DestinationConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DestinationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.DestinationConfig;

                    /**
                     * Decodes a DestinationConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DestinationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.DestinationConfig;

                    /**
                     * Verifies a DestinationConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DestinationConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DestinationConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.DestinationConfig;

                    /**
                     * Creates a plain object from a DestinationConfig message. Also converts values to other types if specified.
                     * @param message DestinationConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.DestinationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DestinationConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DestinationConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Stream. */
                interface IStream {

                    /** Stream name */
                    name?: (string|null);

                    /** Stream createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** Stream updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** Stream labels */
                    labels?: ({ [k: string]: string }|null);

                    /** Stream displayName */
                    displayName?: (string|null);

                    /** Stream sourceConfig */
                    sourceConfig?: (google.cloud.datastream.v1alpha1.ISourceConfig|null);

                    /** Stream destinationConfig */
                    destinationConfig?: (google.cloud.datastream.v1alpha1.IDestinationConfig|null);

                    /** Stream state */
                    state?: (google.cloud.datastream.v1alpha1.Stream.State|keyof typeof google.cloud.datastream.v1alpha1.Stream.State|null);

                    /** Stream backfillAll */
                    backfillAll?: (google.cloud.datastream.v1alpha1.Stream.IBackfillAllStrategy|null);

                    /** Stream backfillNone */
                    backfillNone?: (google.cloud.datastream.v1alpha1.Stream.IBackfillNoneStrategy|null);

                    /** Stream errors */
                    errors?: (google.cloud.datastream.v1alpha1.IError[]|null);
                }

                /** Represents a Stream. */
                class Stream implements IStream {

                    /**
                     * Constructs a new Stream.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IStream);

                    /** Stream name. */
                    public name: string;

                    /** Stream createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** Stream updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** Stream labels. */
                    public labels: { [k: string]: string };

                    /** Stream displayName. */
                    public displayName: string;

                    /** Stream sourceConfig. */
                    public sourceConfig?: (google.cloud.datastream.v1alpha1.ISourceConfig|null);

                    /** Stream destinationConfig. */
                    public destinationConfig?: (google.cloud.datastream.v1alpha1.IDestinationConfig|null);

                    /** Stream state. */
                    public state: (google.cloud.datastream.v1alpha1.Stream.State|keyof typeof google.cloud.datastream.v1alpha1.Stream.State);

                    /** Stream backfillAll. */
                    public backfillAll?: (google.cloud.datastream.v1alpha1.Stream.IBackfillAllStrategy|null);

                    /** Stream backfillNone. */
                    public backfillNone?: (google.cloud.datastream.v1alpha1.Stream.IBackfillNoneStrategy|null);

                    /** Stream errors. */
                    public errors: google.cloud.datastream.v1alpha1.IError[];

                    /** Stream backfillStrategy. */
                    public backfillStrategy?: ("backfillAll"|"backfillNone");

                    /**
                     * Creates a new Stream instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Stream instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IStream): google.cloud.datastream.v1alpha1.Stream;

                    /**
                     * Encodes the specified Stream message. Does not implicitly {@link google.cloud.datastream.v1alpha1.Stream.verify|verify} messages.
                     * @param message Stream message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IStream, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Stream message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.Stream.verify|verify} messages.
                     * @param message Stream message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IStream, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Stream message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Stream
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.Stream;

                    /**
                     * Decodes a Stream message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Stream
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.Stream;

                    /**
                     * Verifies a Stream message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Stream message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Stream
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.Stream;

                    /**
                     * Creates a plain object from a Stream message. Also converts values to other types if specified.
                     * @param message Stream
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.Stream, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Stream to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Stream
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Stream {

                    /** Properties of a BackfillAllStrategy. */
                    interface IBackfillAllStrategy {

                        /** BackfillAllStrategy oracleExcludedObjects */
                        oracleExcludedObjects?: (google.cloud.datastream.v1alpha1.IOracleRdbms|null);

                        /** BackfillAllStrategy mysqlExcludedObjects */
                        mysqlExcludedObjects?: (google.cloud.datastream.v1alpha1.IMysqlRdbms|null);
                    }

                    /** Represents a BackfillAllStrategy. */
                    class BackfillAllStrategy implements IBackfillAllStrategy {

                        /**
                         * Constructs a new BackfillAllStrategy.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1alpha1.Stream.IBackfillAllStrategy);

                        /** BackfillAllStrategy oracleExcludedObjects. */
                        public oracleExcludedObjects?: (google.cloud.datastream.v1alpha1.IOracleRdbms|null);

                        /** BackfillAllStrategy mysqlExcludedObjects. */
                        public mysqlExcludedObjects?: (google.cloud.datastream.v1alpha1.IMysqlRdbms|null);

                        /** BackfillAllStrategy excludedObjects. */
                        public excludedObjects?: ("oracleExcludedObjects"|"mysqlExcludedObjects");

                        /**
                         * Creates a new BackfillAllStrategy instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns BackfillAllStrategy instance
                         */
                        public static create(properties?: google.cloud.datastream.v1alpha1.Stream.IBackfillAllStrategy): google.cloud.datastream.v1alpha1.Stream.BackfillAllStrategy;

                        /**
                         * Encodes the specified BackfillAllStrategy message. Does not implicitly {@link google.cloud.datastream.v1alpha1.Stream.BackfillAllStrategy.verify|verify} messages.
                         * @param message BackfillAllStrategy message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1alpha1.Stream.IBackfillAllStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified BackfillAllStrategy message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.Stream.BackfillAllStrategy.verify|verify} messages.
                         * @param message BackfillAllStrategy message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1alpha1.Stream.IBackfillAllStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a BackfillAllStrategy message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns BackfillAllStrategy
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.Stream.BackfillAllStrategy;

                        /**
                         * Decodes a BackfillAllStrategy message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns BackfillAllStrategy
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.Stream.BackfillAllStrategy;

                        /**
                         * Verifies a BackfillAllStrategy message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a BackfillAllStrategy message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns BackfillAllStrategy
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.Stream.BackfillAllStrategy;

                        /**
                         * Creates a plain object from a BackfillAllStrategy message. Also converts values to other types if specified.
                         * @param message BackfillAllStrategy
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1alpha1.Stream.BackfillAllStrategy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this BackfillAllStrategy to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for BackfillAllStrategy
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a BackfillNoneStrategy. */
                    interface IBackfillNoneStrategy {
                    }

                    /** Represents a BackfillNoneStrategy. */
                    class BackfillNoneStrategy implements IBackfillNoneStrategy {

                        /**
                         * Constructs a new BackfillNoneStrategy.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.cloud.datastream.v1alpha1.Stream.IBackfillNoneStrategy);

                        /**
                         * Creates a new BackfillNoneStrategy instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns BackfillNoneStrategy instance
                         */
                        public static create(properties?: google.cloud.datastream.v1alpha1.Stream.IBackfillNoneStrategy): google.cloud.datastream.v1alpha1.Stream.BackfillNoneStrategy;

                        /**
                         * Encodes the specified BackfillNoneStrategy message. Does not implicitly {@link google.cloud.datastream.v1alpha1.Stream.BackfillNoneStrategy.verify|verify} messages.
                         * @param message BackfillNoneStrategy message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.cloud.datastream.v1alpha1.Stream.IBackfillNoneStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified BackfillNoneStrategy message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.Stream.BackfillNoneStrategy.verify|verify} messages.
                         * @param message BackfillNoneStrategy message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.cloud.datastream.v1alpha1.Stream.IBackfillNoneStrategy, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a BackfillNoneStrategy message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns BackfillNoneStrategy
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.Stream.BackfillNoneStrategy;

                        /**
                         * Decodes a BackfillNoneStrategy message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns BackfillNoneStrategy
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.Stream.BackfillNoneStrategy;

                        /**
                         * Verifies a BackfillNoneStrategy message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a BackfillNoneStrategy message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns BackfillNoneStrategy
                         */
                        public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.Stream.BackfillNoneStrategy;

                        /**
                         * Creates a plain object from a BackfillNoneStrategy message. Also converts values to other types if specified.
                         * @param message BackfillNoneStrategy
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.cloud.datastream.v1alpha1.Stream.BackfillNoneStrategy, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this BackfillNoneStrategy to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for BackfillNoneStrategy
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        CREATED = 1,
                        RUNNING = 2,
                        PAUSED = 3,
                        MAINTENANCE = 4,
                        FAILED = 5,
                        FAILED_PERMANENTLY = 6,
                        STARTING = 7,
                        DRAINING = 8
                    }
                }

                /** Properties of an Error. */
                interface IError {

                    /** Error reason */
                    reason?: (string|null);

                    /** Error errorUuid */
                    errorUuid?: (string|null);

                    /** Error message */
                    message?: (string|null);

                    /** Error errorTime */
                    errorTime?: (google.protobuf.ITimestamp|null);

                    /** Error details */
                    details?: ({ [k: string]: string }|null);
                }

                /** Represents an Error. */
                class Error implements IError {

                    /**
                     * Constructs a new Error.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IError);

                    /** Error reason. */
                    public reason: string;

                    /** Error errorUuid. */
                    public errorUuid: string;

                    /** Error message. */
                    public message: string;

                    /** Error errorTime. */
                    public errorTime?: (google.protobuf.ITimestamp|null);

                    /** Error details. */
                    public details: { [k: string]: string };

                    /**
                     * Creates a new Error instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Error instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IError): google.cloud.datastream.v1alpha1.Error;

                    /**
                     * Encodes the specified Error message. Does not implicitly {@link google.cloud.datastream.v1alpha1.Error.verify|verify} messages.
                     * @param message Error message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Error message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.Error.verify|verify} messages.
                     * @param message Error message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Error message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Error
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.Error;

                    /**
                     * Decodes an Error message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Error
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.Error;

                    /**
                     * Verifies an Error message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an Error message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Error
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.Error;

                    /**
                     * Creates a plain object from an Error message. Also converts values to other types if specified.
                     * @param message Error
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.Error, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Error to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Error
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ValidationResult. */
                interface IValidationResult {

                    /** ValidationResult validations */
                    validations?: (google.cloud.datastream.v1alpha1.IValidation[]|null);
                }

                /** Represents a ValidationResult. */
                class ValidationResult implements IValidationResult {

                    /**
                     * Constructs a new ValidationResult.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IValidationResult);

                    /** ValidationResult validations. */
                    public validations: google.cloud.datastream.v1alpha1.IValidation[];

                    /**
                     * Creates a new ValidationResult instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ValidationResult instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IValidationResult): google.cloud.datastream.v1alpha1.ValidationResult;

                    /**
                     * Encodes the specified ValidationResult message. Does not implicitly {@link google.cloud.datastream.v1alpha1.ValidationResult.verify|verify} messages.
                     * @param message ValidationResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IValidationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ValidationResult message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.ValidationResult.verify|verify} messages.
                     * @param message ValidationResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IValidationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ValidationResult message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ValidationResult
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.ValidationResult;

                    /**
                     * Decodes a ValidationResult message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ValidationResult
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.ValidationResult;

                    /**
                     * Verifies a ValidationResult message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ValidationResult message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ValidationResult
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.ValidationResult;

                    /**
                     * Creates a plain object from a ValidationResult message. Also converts values to other types if specified.
                     * @param message ValidationResult
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.ValidationResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ValidationResult to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ValidationResult
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Validation. */
                interface IValidation {

                    /** Validation description */
                    description?: (string|null);

                    /** Validation status */
                    status?: (google.cloud.datastream.v1alpha1.Validation.Status|keyof typeof google.cloud.datastream.v1alpha1.Validation.Status|null);

                    /** Validation message */
                    message?: (google.cloud.datastream.v1alpha1.IValidationMessage[]|null);

                    /** Validation code */
                    code?: (string|null);
                }

                /** Represents a Validation. */
                class Validation implements IValidation {

                    /**
                     * Constructs a new Validation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IValidation);

                    /** Validation description. */
                    public description: string;

                    /** Validation status. */
                    public status: (google.cloud.datastream.v1alpha1.Validation.Status|keyof typeof google.cloud.datastream.v1alpha1.Validation.Status);

                    /** Validation message. */
                    public message: google.cloud.datastream.v1alpha1.IValidationMessage[];

                    /** Validation code. */
                    public code: string;

                    /**
                     * Creates a new Validation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Validation instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IValidation): google.cloud.datastream.v1alpha1.Validation;

                    /**
                     * Encodes the specified Validation message. Does not implicitly {@link google.cloud.datastream.v1alpha1.Validation.verify|verify} messages.
                     * @param message Validation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IValidation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Validation message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.Validation.verify|verify} messages.
                     * @param message Validation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IValidation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Validation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Validation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.Validation;

                    /**
                     * Decodes a Validation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Validation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.Validation;

                    /**
                     * Verifies a Validation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Validation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Validation
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.Validation;

                    /**
                     * Creates a plain object from a Validation message. Also converts values to other types if specified.
                     * @param message Validation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.Validation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Validation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Validation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Validation {

                    /** Status enum. */
                    enum Status {
                        STATUS_UNSPECIFIED = 0,
                        NOT_EXECUTED = 1,
                        FAILED = 2,
                        PASSED = 3
                    }
                }

                /** Properties of a ValidationMessage. */
                interface IValidationMessage {

                    /** ValidationMessage message */
                    message?: (string|null);

                    /** ValidationMessage level */
                    level?: (google.cloud.datastream.v1alpha1.ValidationMessage.Level|keyof typeof google.cloud.datastream.v1alpha1.ValidationMessage.Level|null);

                    /** ValidationMessage metadata */
                    metadata?: ({ [k: string]: string }|null);

                    /** ValidationMessage code */
                    code?: (string|null);
                }

                /** Represents a ValidationMessage. */
                class ValidationMessage implements IValidationMessage {

                    /**
                     * Constructs a new ValidationMessage.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.cloud.datastream.v1alpha1.IValidationMessage);

                    /** ValidationMessage message. */
                    public message: string;

                    /** ValidationMessage level. */
                    public level: (google.cloud.datastream.v1alpha1.ValidationMessage.Level|keyof typeof google.cloud.datastream.v1alpha1.ValidationMessage.Level);

                    /** ValidationMessage metadata. */
                    public metadata: { [k: string]: string };

                    /** ValidationMessage code. */
                    public code: string;

                    /**
                     * Creates a new ValidationMessage instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ValidationMessage instance
                     */
                    public static create(properties?: google.cloud.datastream.v1alpha1.IValidationMessage): google.cloud.datastream.v1alpha1.ValidationMessage;

                    /**
                     * Encodes the specified ValidationMessage message. Does not implicitly {@link google.cloud.datastream.v1alpha1.ValidationMessage.verify|verify} messages.
                     * @param message ValidationMessage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.cloud.datastream.v1alpha1.IValidationMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ValidationMessage message, length delimited. Does not implicitly {@link google.cloud.datastream.v1alpha1.ValidationMessage.verify|verify} messages.
                     * @param message ValidationMessage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.cloud.datastream.v1alpha1.IValidationMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ValidationMessage message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ValidationMessage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.datastream.v1alpha1.ValidationMessage;

                    /**
                     * Decodes a ValidationMessage message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ValidationMessage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.datastream.v1alpha1.ValidationMessage;

                    /**
                     * Verifies a ValidationMessage message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ValidationMessage message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ValidationMessage
                     */
                    public static fromObject(object: { [k: string]: any }): google.cloud.datastream.v1alpha1.ValidationMessage;

                    /**
                     * Creates a plain object from a ValidationMessage message. Also converts values to other types if specified.
                     * @param message ValidationMessage
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.cloud.datastream.v1alpha1.ValidationMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ValidationMessage to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ValidationMessage
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ValidationMessage {

                    /** Level enum. */
                    enum Level {
                        LEVEL_UNSPECIFIED = 0,
                        WARNING = 1,
                        ERROR = 2
                    }
                }
            }
        }
    }

    /** Namespace api. */
    namespace api {

        /** Properties of a Http. */
        interface IHttp {

            /** Http rules */
            rules?: (google.api.IHttpRule[]|null);

            /** Http fullyDecodeReservedExpansion */
            fullyDecodeReservedExpansion?: (boolean|null);
        }

        /** Represents a Http. */
        class Http implements IHttp {

            /**
             * Constructs a new Http.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IHttp);

            /** Http rules. */
            public rules: google.api.IHttpRule[];

            /** Http fullyDecodeReservedExpansion. */
            public fullyDecodeReservedExpansion: boolean;

            /**
             * Creates a new Http instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Http instance
             */
            public static create(properties?: google.api.IHttp): google.api.Http;

            /**
             * Encodes the specified Http message. Does not implicitly {@link google.api.Http.verify|verify} messages.
             * @param message Http message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Http message, length delimited. Does not implicitly {@link google.api.Http.verify|verify} messages.
             * @param message Http message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Http message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Http
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.Http;

            /**
             * Decodes a Http message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Http
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.Http;

            /**
             * Verifies a Http message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Http message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Http
             */
            public static fromObject(object: { [k: string]: any }): google.api.Http;

            /**
             * Creates a plain object from a Http message. Also converts values to other types if specified.
             * @param message Http
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.Http, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Http to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Http
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a HttpRule. */
        interface IHttpRule {

            /** HttpRule selector */
            selector?: (string|null);

            /** HttpRule get */
            get?: (string|null);

            /** HttpRule put */
            put?: (string|null);

            /** HttpRule post */
            post?: (string|null);

            /** HttpRule delete */
            "delete"?: (string|null);

            /** HttpRule patch */
            patch?: (string|null);

            /** HttpRule custom */
            custom?: (google.api.ICustomHttpPattern|null);

            /** HttpRule body */
            body?: (string|null);

            /** HttpRule responseBody */
            responseBody?: (string|null);

            /** HttpRule additionalBindings */
            additionalBindings?: (google.api.IHttpRule[]|null);
        }

        /** Represents a HttpRule. */
        class HttpRule implements IHttpRule {

            /**
             * Constructs a new HttpRule.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IHttpRule);

            /** HttpRule selector. */
            public selector: string;

            /** HttpRule get. */
            public get?: (string|null);

            /** HttpRule put. */
            public put?: (string|null);

            /** HttpRule post. */
            public post?: (string|null);

            /** HttpRule delete. */
            public delete?: (string|null);

            /** HttpRule patch. */
            public patch?: (string|null);

            /** HttpRule custom. */
            public custom?: (google.api.ICustomHttpPattern|null);

            /** HttpRule body. */
            public body: string;

            /** HttpRule responseBody. */
            public responseBody: string;

            /** HttpRule additionalBindings. */
            public additionalBindings: google.api.IHttpRule[];

            /** HttpRule pattern. */
            public pattern?: ("get"|"put"|"post"|"delete"|"patch"|"custom");

            /**
             * Creates a new HttpRule instance using the specified properties.
             * @param [properties] Properties to set
             * @returns HttpRule instance
             */
            public static create(properties?: google.api.IHttpRule): google.api.HttpRule;

            /**
             * Encodes the specified HttpRule message. Does not implicitly {@link google.api.HttpRule.verify|verify} messages.
             * @param message HttpRule message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified HttpRule message, length delimited. Does not implicitly {@link google.api.HttpRule.verify|verify} messages.
             * @param message HttpRule message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a HttpRule message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns HttpRule
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.HttpRule;

            /**
             * Decodes a HttpRule message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns HttpRule
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.HttpRule;

            /**
             * Verifies a HttpRule message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a HttpRule message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns HttpRule
             */
            public static fromObject(object: { [k: string]: any }): google.api.HttpRule;

            /**
             * Creates a plain object from a HttpRule message. Also converts values to other types if specified.
             * @param message HttpRule
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.HttpRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this HttpRule to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for HttpRule
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a CustomHttpPattern. */
        interface ICustomHttpPattern {

            /** CustomHttpPattern kind */
            kind?: (string|null);

            /** CustomHttpPattern path */
            path?: (string|null);
        }

        /** Represents a CustomHttpPattern. */
        class CustomHttpPattern implements ICustomHttpPattern {

            /**
             * Constructs a new CustomHttpPattern.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.ICustomHttpPattern);

            /** CustomHttpPattern kind. */
            public kind: string;

            /** CustomHttpPattern path. */
            public path: string;

            /**
             * Creates a new CustomHttpPattern instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CustomHttpPattern instance
             */
            public static create(properties?: google.api.ICustomHttpPattern): google.api.CustomHttpPattern;

            /**
             * Encodes the specified CustomHttpPattern message. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages.
             * @param message CustomHttpPattern message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CustomHttpPattern message, length delimited. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages.
             * @param message CustomHttpPattern message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CustomHttpPattern message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CustomHttpPattern
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CustomHttpPattern;

            /**
             * Decodes a CustomHttpPattern message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CustomHttpPattern
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CustomHttpPattern;

            /**
             * Verifies a CustomHttpPattern message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CustomHttpPattern message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CustomHttpPattern
             */
            public static fromObject(object: { [k: string]: any }): google.api.CustomHttpPattern;

            /**
             * Creates a plain object from a CustomHttpPattern message. Also converts values to other types if specified.
             * @param message CustomHttpPattern
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.CustomHttpPattern, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CustomHttpPattern to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for CustomHttpPattern
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a CommonLanguageSettings. */
        interface ICommonLanguageSettings {

            /** CommonLanguageSettings referenceDocsUri */
            referenceDocsUri?: (string|null);

            /** CommonLanguageSettings destinations */
            destinations?: (google.api.ClientLibraryDestination[]|null);

            /** CommonLanguageSettings selectiveGapicGeneration */
            selectiveGapicGeneration?: (google.api.ISelectiveGapicGeneration|null);
        }

        /** Represents a CommonLanguageSettings. */
        class CommonLanguageSettings implements ICommonLanguageSettings {

            /**
             * Constructs a new CommonLanguageSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.ICommonLanguageSettings);

            /** CommonLanguageSettings referenceDocsUri. */
            public referenceDocsUri: string;

            /** CommonLanguageSettings destinations. */
            public destinations: google.api.ClientLibraryDestination[];

            /** CommonLanguageSettings selectiveGapicGeneration. */
            public selectiveGapicGeneration?: (google.api.ISelectiveGapicGeneration|null);

            /**
             * Creates a new CommonLanguageSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CommonLanguageSettings instance
             */
            public static create(properties?: google.api.ICommonLanguageSettings): google.api.CommonLanguageSettings;

            /**
             * Encodes the specified CommonLanguageSettings message. Does not implicitly {@link google.api.CommonLanguageSettings.verify|verify} messages.
             * @param message CommonLanguageSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.ICommonLanguageSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CommonLanguageSettings message, length delimited. Does not implicitly {@link google.api.CommonLanguageSettings.verify|verify} messages.
             * @param message CommonLanguageSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.ICommonLanguageSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CommonLanguageSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CommonLanguageSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CommonLanguageSettings;

            /**
             * Decodes a CommonLanguageSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CommonLanguageSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CommonLanguageSettings;

            /**
             * Verifies a CommonLanguageSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CommonLanguageSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CommonLanguageSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.CommonLanguageSettings;

            /**
             * Creates a plain object from a CommonLanguageSettings message. Also converts values to other types if specified.
             * @param message CommonLanguageSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.CommonLanguageSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CommonLanguageSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for CommonLanguageSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a ClientLibrarySettings. */
        interface IClientLibrarySettings {

            /** ClientLibrarySettings version */
            version?: (string|null);

            /** ClientLibrarySettings launchStage */
            launchStage?: (google.api.LaunchStage|keyof typeof google.api.LaunchStage|null);

            /** ClientLibrarySettings restNumericEnums */
            restNumericEnums?: (boolean|null);

            /** ClientLibrarySettings javaSettings */
            javaSettings?: (google.api.IJavaSettings|null);

            /** ClientLibrarySettings cppSettings */
            cppSettings?: (google.api.ICppSettings|null);

            /** ClientLibrarySettings phpSettings */
            phpSettings?: (google.api.IPhpSettings|null);

            /** ClientLibrarySettings pythonSettings */
            pythonSettings?: (google.api.IPythonSettings|null);

            /** ClientLibrarySettings nodeSettings */
            nodeSettings?: (google.api.INodeSettings|null);

            /** ClientLibrarySettings dotnetSettings */
            dotnetSettings?: (google.api.IDotnetSettings|null);

            /** ClientLibrarySettings rubySettings */
            rubySettings?: (google.api.IRubySettings|null);

            /** ClientLibrarySettings goSettings */
            goSettings?: (google.api.IGoSettings|null);
        }

        /** Represents a ClientLibrarySettings. */
        class ClientLibrarySettings implements IClientLibrarySettings {

            /**
             * Constructs a new ClientLibrarySettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IClientLibrarySettings);

            /** ClientLibrarySettings version. */
            public version: string;

            /** ClientLibrarySettings launchStage. */
            public launchStage: (google.api.LaunchStage|keyof typeof google.api.LaunchStage);

            /** ClientLibrarySettings restNumericEnums. */
            public restNumericEnums: boolean;

            /** ClientLibrarySettings javaSettings. */
            public javaSettings?: (google.api.IJavaSettings|null);

            /** ClientLibrarySettings cppSettings. */
            public cppSettings?: (google.api.ICppSettings|null);

            /** ClientLibrarySettings phpSettings. */
            public phpSettings?: (google.api.IPhpSettings|null);

            /** ClientLibrarySettings pythonSettings. */
            public pythonSettings?: (google.api.IPythonSettings|null);

            /** ClientLibrarySettings nodeSettings. */
            public nodeSettings?: (google.api.INodeSettings|null);

            /** ClientLibrarySettings dotnetSettings. */
            public dotnetSettings?: (google.api.IDotnetSettings|null);

            /** ClientLibrarySettings rubySettings. */
            public rubySettings?: (google.api.IRubySettings|null);

            /** ClientLibrarySettings goSettings. */
            public goSettings?: (google.api.IGoSettings|null);

            /**
             * Creates a new ClientLibrarySettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ClientLibrarySettings instance
             */
            public static create(properties?: google.api.IClientLibrarySettings): google.api.ClientLibrarySettings;

            /**
             * Encodes the specified ClientLibrarySettings message. Does not implicitly {@link google.api.ClientLibrarySettings.verify|verify} messages.
             * @param message ClientLibrarySettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IClientLibrarySettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ClientLibrarySettings message, length delimited. Does not implicitly {@link google.api.ClientLibrarySettings.verify|verify} messages.
             * @param message ClientLibrarySettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IClientLibrarySettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ClientLibrarySettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ClientLibrarySettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ClientLibrarySettings;

            /**
             * Decodes a ClientLibrarySettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ClientLibrarySettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ClientLibrarySettings;

            /**
             * Verifies a ClientLibrarySettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ClientLibrarySettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ClientLibrarySettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.ClientLibrarySettings;

            /**
             * Creates a plain object from a ClientLibrarySettings message. Also converts values to other types if specified.
             * @param message ClientLibrarySettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.ClientLibrarySettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ClientLibrarySettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ClientLibrarySettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a Publishing. */
        interface IPublishing {

            /** Publishing methodSettings */
            methodSettings?: (google.api.IMethodSettings[]|null);

            /** Publishing newIssueUri */
            newIssueUri?: (string|null);

            /** Publishing documentationUri */
            documentationUri?: (string|null);

            /** Publishing apiShortName */
            apiShortName?: (string|null);

            /** Publishing githubLabel */
            githubLabel?: (string|null);

            /** Publishing codeownerGithubTeams */
            codeownerGithubTeams?: (string[]|null);

            /** Publishing docTagPrefix */
            docTagPrefix?: (string|null);

            /** Publishing organization */
            organization?: (google.api.ClientLibraryOrganization|keyof typeof google.api.ClientLibraryOrganization|null);

            /** Publishing librarySettings */
            librarySettings?: (google.api.IClientLibrarySettings[]|null);

            /** Publishing protoReferenceDocumentationUri */
            protoReferenceDocumentationUri?: (string|null);

            /** Publishing restReferenceDocumentationUri */
            restReferenceDocumentationUri?: (string|null);
        }

        /** Represents a Publishing. */
        class Publishing implements IPublishing {

            /**
             * Constructs a new Publishing.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IPublishing);

            /** Publishing methodSettings. */
            public methodSettings: google.api.IMethodSettings[];

            /** Publishing newIssueUri. */
            public newIssueUri: string;

            /** Publishing documentationUri. */
            public documentationUri: string;

            /** Publishing apiShortName. */
            public apiShortName: string;

            /** Publishing githubLabel. */
            public githubLabel: string;

            /** Publishing codeownerGithubTeams. */
            public codeownerGithubTeams: string[];

            /** Publishing docTagPrefix. */
            public docTagPrefix: string;

            /** Publishing organization. */
            public organization: (google.api.ClientLibraryOrganization|keyof typeof google.api.ClientLibraryOrganization);

            /** Publishing librarySettings. */
            public librarySettings: google.api.IClientLibrarySettings[];

            /** Publishing protoReferenceDocumentationUri. */
            public protoReferenceDocumentationUri: string;

            /** Publishing restReferenceDocumentationUri. */
            public restReferenceDocumentationUri: string;

            /**
             * Creates a new Publishing instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Publishing instance
             */
            public static create(properties?: google.api.IPublishing): google.api.Publishing;

            /**
             * Encodes the specified Publishing message. Does not implicitly {@link google.api.Publishing.verify|verify} messages.
             * @param message Publishing message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IPublishing, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Publishing message, length delimited. Does not implicitly {@link google.api.Publishing.verify|verify} messages.
             * @param message Publishing message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IPublishing, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Publishing message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Publishing
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.Publishing;

            /**
             * Decodes a Publishing message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Publishing
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.Publishing;

            /**
             * Verifies a Publishing message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Publishing message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Publishing
             */
            public static fromObject(object: { [k: string]: any }): google.api.Publishing;

            /**
             * Creates a plain object from a Publishing message. Also converts values to other types if specified.
             * @param message Publishing
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.Publishing, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Publishing to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Publishing
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a JavaSettings. */
        interface IJavaSettings {

            /** JavaSettings libraryPackage */
            libraryPackage?: (string|null);

            /** JavaSettings serviceClassNames */
            serviceClassNames?: ({ [k: string]: string }|null);

            /** JavaSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a JavaSettings. */
        class JavaSettings implements IJavaSettings {

            /**
             * Constructs a new JavaSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IJavaSettings);

            /** JavaSettings libraryPackage. */
            public libraryPackage: string;

            /** JavaSettings serviceClassNames. */
            public serviceClassNames: { [k: string]: string };

            /** JavaSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new JavaSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns JavaSettings instance
             */
            public static create(properties?: google.api.IJavaSettings): google.api.JavaSettings;

            /**
             * Encodes the specified JavaSettings message. Does not implicitly {@link google.api.JavaSettings.verify|verify} messages.
             * @param message JavaSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IJavaSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified JavaSettings message, length delimited. Does not implicitly {@link google.api.JavaSettings.verify|verify} messages.
             * @param message JavaSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IJavaSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a JavaSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns JavaSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.JavaSettings;

            /**
             * Decodes a JavaSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns JavaSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.JavaSettings;

            /**
             * Verifies a JavaSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a JavaSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns JavaSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.JavaSettings;

            /**
             * Creates a plain object from a JavaSettings message. Also converts values to other types if specified.
             * @param message JavaSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.JavaSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this JavaSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for JavaSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a CppSettings. */
        interface ICppSettings {

            /** CppSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a CppSettings. */
        class CppSettings implements ICppSettings {

            /**
             * Constructs a new CppSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.ICppSettings);

            /** CppSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new CppSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CppSettings instance
             */
            public static create(properties?: google.api.ICppSettings): google.api.CppSettings;

            /**
             * Encodes the specified CppSettings message. Does not implicitly {@link google.api.CppSettings.verify|verify} messages.
             * @param message CppSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.ICppSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CppSettings message, length delimited. Does not implicitly {@link google.api.CppSettings.verify|verify} messages.
             * @param message CppSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.ICppSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CppSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CppSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CppSettings;

            /**
             * Decodes a CppSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CppSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CppSettings;

            /**
             * Verifies a CppSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CppSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CppSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.CppSettings;

            /**
             * Creates a plain object from a CppSettings message. Also converts values to other types if specified.
             * @param message CppSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.CppSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CppSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for CppSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a PhpSettings. */
        interface IPhpSettings {

            /** PhpSettings common */
            common?: (google.api.ICommonLanguageSettings|null);

            /** PhpSettings libraryPackage */
            libraryPackage?: (string|null);
        }

        /** Represents a PhpSettings. */
        class PhpSettings implements IPhpSettings {

            /**
             * Constructs a new PhpSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IPhpSettings);

            /** PhpSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /** PhpSettings libraryPackage. */
            public libraryPackage: string;

            /**
             * Creates a new PhpSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PhpSettings instance
             */
            public static create(properties?: google.api.IPhpSettings): google.api.PhpSettings;

            /**
             * Encodes the specified PhpSettings message. Does not implicitly {@link google.api.PhpSettings.verify|verify} messages.
             * @param message PhpSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IPhpSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PhpSettings message, length delimited. Does not implicitly {@link google.api.PhpSettings.verify|verify} messages.
             * @param message PhpSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IPhpSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PhpSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PhpSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.PhpSettings;

            /**
             * Decodes a PhpSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PhpSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.PhpSettings;

            /**
             * Verifies a PhpSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PhpSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PhpSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.PhpSettings;

            /**
             * Creates a plain object from a PhpSettings message. Also converts values to other types if specified.
             * @param message PhpSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.PhpSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PhpSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for PhpSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a PythonSettings. */
        interface IPythonSettings {

            /** PythonSettings common */
            common?: (google.api.ICommonLanguageSettings|null);

            /** PythonSettings experimentalFeatures */
            experimentalFeatures?: (google.api.PythonSettings.IExperimentalFeatures|null);
        }

        /** Represents a PythonSettings. */
        class PythonSettings implements IPythonSettings {

            /**
             * Constructs a new PythonSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IPythonSettings);

            /** PythonSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /** PythonSettings experimentalFeatures. */
            public experimentalFeatures?: (google.api.PythonSettings.IExperimentalFeatures|null);

            /**
             * Creates a new PythonSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PythonSettings instance
             */
            public static create(properties?: google.api.IPythonSettings): google.api.PythonSettings;

            /**
             * Encodes the specified PythonSettings message. Does not implicitly {@link google.api.PythonSettings.verify|verify} messages.
             * @param message PythonSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IPythonSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PythonSettings message, length delimited. Does not implicitly {@link google.api.PythonSettings.verify|verify} messages.
             * @param message PythonSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IPythonSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PythonSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PythonSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.PythonSettings;

            /**
             * Decodes a PythonSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PythonSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.PythonSettings;

            /**
             * Verifies a PythonSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PythonSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PythonSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.PythonSettings;

            /**
             * Creates a plain object from a PythonSettings message. Also converts values to other types if specified.
             * @param message PythonSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.PythonSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PythonSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for PythonSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace PythonSettings {

            /** Properties of an ExperimentalFeatures. */
            interface IExperimentalFeatures {

                /** ExperimentalFeatures restAsyncIoEnabled */
                restAsyncIoEnabled?: (boolean|null);

                /** ExperimentalFeatures protobufPythonicTypesEnabled */
                protobufPythonicTypesEnabled?: (boolean|null);

                /** ExperimentalFeatures unversionedPackageDisabled */
                unversionedPackageDisabled?: (boolean|null);
            }

            /** Represents an ExperimentalFeatures. */
            class ExperimentalFeatures implements IExperimentalFeatures {

                /**
                 * Constructs a new ExperimentalFeatures.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.api.PythonSettings.IExperimentalFeatures);

                /** ExperimentalFeatures restAsyncIoEnabled. */
                public restAsyncIoEnabled: boolean;

                /** ExperimentalFeatures protobufPythonicTypesEnabled. */
                public protobufPythonicTypesEnabled: boolean;

                /** ExperimentalFeatures unversionedPackageDisabled. */
                public unversionedPackageDisabled: boolean;

                /**
                 * Creates a new ExperimentalFeatures instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ExperimentalFeatures instance
                 */
                public static create(properties?: google.api.PythonSettings.IExperimentalFeatures): google.api.PythonSettings.ExperimentalFeatures;

                /**
                 * Encodes the specified ExperimentalFeatures message. Does not implicitly {@link google.api.PythonSettings.ExperimentalFeatures.verify|verify} messages.
                 * @param message ExperimentalFeatures message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.api.PythonSettings.IExperimentalFeatures, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ExperimentalFeatures message, length delimited. Does not implicitly {@link google.api.PythonSettings.ExperimentalFeatures.verify|verify} messages.
                 * @param message ExperimentalFeatures message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.api.PythonSettings.IExperimentalFeatures, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an ExperimentalFeatures message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ExperimentalFeatures
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.PythonSettings.ExperimentalFeatures;

                /**
                 * Decodes an ExperimentalFeatures message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ExperimentalFeatures
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.PythonSettings.ExperimentalFeatures;

                /**
                 * Verifies an ExperimentalFeatures message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an ExperimentalFeatures message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ExperimentalFeatures
                 */
                public static fromObject(object: { [k: string]: any }): google.api.PythonSettings.ExperimentalFeatures;

                /**
                 * Creates a plain object from an ExperimentalFeatures message. Also converts values to other types if specified.
                 * @param message ExperimentalFeatures
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.api.PythonSettings.ExperimentalFeatures, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ExperimentalFeatures to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ExperimentalFeatures
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of a NodeSettings. */
        interface INodeSettings {

            /** NodeSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a NodeSettings. */
        class NodeSettings implements INodeSettings {

            /**
             * Constructs a new NodeSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.INodeSettings);

            /** NodeSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new NodeSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns NodeSettings instance
             */
            public static create(properties?: google.api.INodeSettings): google.api.NodeSettings;

            /**
             * Encodes the specified NodeSettings message. Does not implicitly {@link google.api.NodeSettings.verify|verify} messages.
             * @param message NodeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.INodeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified NodeSettings message, length delimited. Does not implicitly {@link google.api.NodeSettings.verify|verify} messages.
             * @param message NodeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.INodeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a NodeSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns NodeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.NodeSettings;

            /**
             * Decodes a NodeSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns NodeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.NodeSettings;

            /**
             * Verifies a NodeSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a NodeSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns NodeSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.NodeSettings;

            /**
             * Creates a plain object from a NodeSettings message. Also converts values to other types if specified.
             * @param message NodeSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.NodeSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this NodeSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for NodeSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a DotnetSettings. */
        interface IDotnetSettings {

            /** DotnetSettings common */
            common?: (google.api.ICommonLanguageSettings|null);

            /** DotnetSettings renamedServices */
            renamedServices?: ({ [k: string]: string }|null);

            /** DotnetSettings renamedResources */
            renamedResources?: ({ [k: string]: string }|null);

            /** DotnetSettings ignoredResources */
            ignoredResources?: (string[]|null);

            /** DotnetSettings forcedNamespaceAliases */
            forcedNamespaceAliases?: (string[]|null);

            /** DotnetSettings handwrittenSignatures */
            handwrittenSignatures?: (string[]|null);
        }

        /** Represents a DotnetSettings. */
        class DotnetSettings implements IDotnetSettings {

            /**
             * Constructs a new DotnetSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IDotnetSettings);

            /** DotnetSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /** DotnetSettings renamedServices. */
            public renamedServices: { [k: string]: string };

            /** DotnetSettings renamedResources. */
            public renamedResources: { [k: string]: string };

            /** DotnetSettings ignoredResources. */
            public ignoredResources: string[];

            /** DotnetSettings forcedNamespaceAliases. */
            public forcedNamespaceAliases: string[];

            /** DotnetSettings handwrittenSignatures. */
            public handwrittenSignatures: string[];

            /**
             * Creates a new DotnetSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DotnetSettings instance
             */
            public static create(properties?: google.api.IDotnetSettings): google.api.DotnetSettings;

            /**
             * Encodes the specified DotnetSettings message. Does not implicitly {@link google.api.DotnetSettings.verify|verify} messages.
             * @param message DotnetSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IDotnetSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DotnetSettings message, length delimited. Does not implicitly {@link google.api.DotnetSettings.verify|verify} messages.
             * @param message DotnetSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IDotnetSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DotnetSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DotnetSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.DotnetSettings;

            /**
             * Decodes a DotnetSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DotnetSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.DotnetSettings;

            /**
             * Verifies a DotnetSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DotnetSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DotnetSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.DotnetSettings;

            /**
             * Creates a plain object from a DotnetSettings message. Also converts values to other types if specified.
             * @param message DotnetSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.DotnetSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DotnetSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for DotnetSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a RubySettings. */
        interface IRubySettings {

            /** RubySettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a RubySettings. */
        class RubySettings implements IRubySettings {

            /**
             * Constructs a new RubySettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IRubySettings);

            /** RubySettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new RubySettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns RubySettings instance
             */
            public static create(properties?: google.api.IRubySettings): google.api.RubySettings;

            /**
             * Encodes the specified RubySettings message. Does not implicitly {@link google.api.RubySettings.verify|verify} messages.
             * @param message RubySettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IRubySettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified RubySettings message, length delimited. Does not implicitly {@link google.api.RubySettings.verify|verify} messages.
             * @param message RubySettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IRubySettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a RubySettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns RubySettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.RubySettings;

            /**
             * Decodes a RubySettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns RubySettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.RubySettings;

            /**
             * Verifies a RubySettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a RubySettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns RubySettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.RubySettings;

            /**
             * Creates a plain object from a RubySettings message. Also converts values to other types if specified.
             * @param message RubySettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.RubySettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this RubySettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for RubySettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a GoSettings. */
        interface IGoSettings {

            /** GoSettings common */
            common?: (google.api.ICommonLanguageSettings|null);

            /** GoSettings renamedServices */
            renamedServices?: ({ [k: string]: string }|null);
        }

        /** Represents a GoSettings. */
        class GoSettings implements IGoSettings {

            /**
             * Constructs a new GoSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IGoSettings);

            /** GoSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /** GoSettings renamedServices. */
            public renamedServices: { [k: string]: string };

            /**
             * Creates a new GoSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GoSettings instance
             */
            public static create(properties?: google.api.IGoSettings): google.api.GoSettings;

            /**
             * Encodes the specified GoSettings message. Does not implicitly {@link google.api.GoSettings.verify|verify} messages.
             * @param message GoSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IGoSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified GoSettings message, length delimited. Does not implicitly {@link google.api.GoSettings.verify|verify} messages.
             * @param message GoSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IGoSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a GoSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns GoSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.GoSettings;

            /**
             * Decodes a GoSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns GoSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.GoSettings;

            /**
             * Verifies a GoSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a GoSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns GoSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.GoSettings;

            /**
             * Creates a plain object from a GoSettings message. Also converts values to other types if specified.
             * @param message GoSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.GoSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this GoSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for GoSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a MethodSettings. */
        interface IMethodSettings {

            /** MethodSettings selector */
            selector?: (string|null);

            /** MethodSettings longRunning */
            longRunning?: (google.api.MethodSettings.ILongRunning|null);

            /** MethodSettings autoPopulatedFields */
            autoPopulatedFields?: (string[]|null);

            /** MethodSettings batching */
            batching?: (google.api.IBatchingConfigProto|null);
        }

        /** Represents a MethodSettings. */
        class MethodSettings implements IMethodSettings {

            /**
             * Constructs a new MethodSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IMethodSettings);

            /** MethodSettings selector. */
            public selector: string;

            /** MethodSettings longRunning. */
            public longRunning?: (google.api.MethodSettings.ILongRunning|null);

            /** MethodSettings autoPopulatedFields. */
            public autoPopulatedFields: string[];

            /** MethodSettings batching. */
            public batching?: (google.api.IBatchingConfigProto|null);

            /**
             * Creates a new MethodSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MethodSettings instance
             */
            public static create(properties?: google.api.IMethodSettings): google.api.MethodSettings;

            /**
             * Encodes the specified MethodSettings message. Does not implicitly {@link google.api.MethodSettings.verify|verify} messages.
             * @param message MethodSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IMethodSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MethodSettings message, length delimited. Does not implicitly {@link google.api.MethodSettings.verify|verify} messages.
             * @param message MethodSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IMethodSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MethodSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MethodSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.MethodSettings;

            /**
             * Decodes a MethodSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MethodSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.MethodSettings;

            /**
             * Verifies a MethodSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MethodSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MethodSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.MethodSettings;

            /**
             * Creates a plain object from a MethodSettings message. Also converts values to other types if specified.
             * @param message MethodSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.MethodSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MethodSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for MethodSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace MethodSettings {

            /** Properties of a LongRunning. */
            interface ILongRunning {

                /** LongRunning initialPollDelay */
                initialPollDelay?: (google.protobuf.IDuration|null);

                /** LongRunning pollDelayMultiplier */
                pollDelayMultiplier?: (number|null);

                /** LongRunning maxPollDelay */
                maxPollDelay?: (google.protobuf.IDuration|null);

                /** LongRunning totalPollTimeout */
                totalPollTimeout?: (google.protobuf.IDuration|null);
            }

            /** Represents a LongRunning. */
            class LongRunning implements ILongRunning {

                /**
                 * Constructs a new LongRunning.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.api.MethodSettings.ILongRunning);

                /** LongRunning initialPollDelay. */
                public initialPollDelay?: (google.protobuf.IDuration|null);

                /** LongRunning pollDelayMultiplier. */
                public pollDelayMultiplier: number;

                /** LongRunning maxPollDelay. */
                public maxPollDelay?: (google.protobuf.IDuration|null);

                /** LongRunning totalPollTimeout. */
                public totalPollTimeout?: (google.protobuf.IDuration|null);

                /**
                 * Creates a new LongRunning instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LongRunning instance
                 */
                public static create(properties?: google.api.MethodSettings.ILongRunning): google.api.MethodSettings.LongRunning;

                /**
                 * Encodes the specified LongRunning message. Does not implicitly {@link google.api.MethodSettings.LongRunning.verify|verify} messages.
                 * @param message LongRunning message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.api.MethodSettings.ILongRunning, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified LongRunning message, length delimited. Does not implicitly {@link google.api.MethodSettings.LongRunning.verify|verify} messages.
                 * @param message LongRunning message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.api.MethodSettings.ILongRunning, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a LongRunning message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns LongRunning
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.MethodSettings.LongRunning;

                /**
                 * Decodes a LongRunning message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns LongRunning
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.MethodSettings.LongRunning;

                /**
                 * Verifies a LongRunning message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a LongRunning message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LongRunning
                 */
                public static fromObject(object: { [k: string]: any }): google.api.MethodSettings.LongRunning;

                /**
                 * Creates a plain object from a LongRunning message. Also converts values to other types if specified.
                 * @param message LongRunning
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.api.MethodSettings.LongRunning, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this LongRunning to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for LongRunning
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** ClientLibraryOrganization enum. */
        enum ClientLibraryOrganization {
            CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED = 0,
            CLOUD = 1,
            ADS = 2,
            PHOTOS = 3,
            STREET_VIEW = 4,
            SHOPPING = 5,
            GEO = 6,
            GENERATIVE_AI = 7
        }

        /** ClientLibraryDestination enum. */
        enum ClientLibraryDestination {
            CLIENT_LIBRARY_DESTINATION_UNSPECIFIED = 0,
            GITHUB = 10,
            PACKAGE_MANAGER = 20
        }

        /** Properties of a SelectiveGapicGeneration. */
        interface ISelectiveGapicGeneration {

            /** SelectiveGapicGeneration methods */
            methods?: (string[]|null);

            /** SelectiveGapicGeneration generateOmittedAsInternal */
            generateOmittedAsInternal?: (boolean|null);
        }

        /** Represents a SelectiveGapicGeneration. */
        class SelectiveGapicGeneration implements ISelectiveGapicGeneration {

            /**
             * Constructs a new SelectiveGapicGeneration.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.ISelectiveGapicGeneration);

            /** SelectiveGapicGeneration methods. */
            public methods: string[];

            /** SelectiveGapicGeneration generateOmittedAsInternal. */
            public generateOmittedAsInternal: boolean;

            /**
             * Creates a new SelectiveGapicGeneration instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SelectiveGapicGeneration instance
             */
            public static create(properties?: google.api.ISelectiveGapicGeneration): google.api.SelectiveGapicGeneration;

            /**
             * Encodes the specified SelectiveGapicGeneration message. Does not implicitly {@link google.api.SelectiveGapicGeneration.verify|verify} messages.
             * @param message SelectiveGapicGeneration message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.ISelectiveGapicGeneration, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified SelectiveGapicGeneration message, length delimited. Does not implicitly {@link google.api.SelectiveGapicGeneration.verify|verify} messages.
             * @param message SelectiveGapicGeneration message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.ISelectiveGapicGeneration, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a SelectiveGapicGeneration message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SelectiveGapicGeneration
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.SelectiveGapicGeneration;

            /**
             * Decodes a SelectiveGapicGeneration message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SelectiveGapicGeneration
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.SelectiveGapicGeneration;

            /**
             * Verifies a SelectiveGapicGeneration message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a SelectiveGapicGeneration message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SelectiveGapicGeneration
             */
            public static fromObject(object: { [k: string]: any }): google.api.SelectiveGapicGeneration;

            /**
             * Creates a plain object from a SelectiveGapicGeneration message. Also converts values to other types if specified.
             * @param message SelectiveGapicGeneration
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.SelectiveGapicGeneration, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SelectiveGapicGeneration to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for SelectiveGapicGeneration
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a BatchingConfigProto. */
        interface IBatchingConfigProto {

            /** BatchingConfigProto thresholds */
            thresholds?: (google.api.IBatchingSettingsProto|null);

            /** BatchingConfigProto batchDescriptor */
            batchDescriptor?: (google.api.IBatchingDescriptorProto|null);
        }

        /** Represents a BatchingConfigProto. */
        class BatchingConfigProto implements IBatchingConfigProto {

            /**
             * Constructs a new BatchingConfigProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IBatchingConfigProto);

            /** BatchingConfigProto thresholds. */
            public thresholds?: (google.api.IBatchingSettingsProto|null);

            /** BatchingConfigProto batchDescriptor. */
            public batchDescriptor?: (google.api.IBatchingDescriptorProto|null);

            /**
             * Creates a new BatchingConfigProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns BatchingConfigProto instance
             */
            public static create(properties?: google.api.IBatchingConfigProto): google.api.BatchingConfigProto;

            /**
             * Encodes the specified BatchingConfigProto message. Does not implicitly {@link google.api.BatchingConfigProto.verify|verify} messages.
             * @param message BatchingConfigProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IBatchingConfigProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified BatchingConfigProto message, length delimited. Does not implicitly {@link google.api.BatchingConfigProto.verify|verify} messages.
             * @param message BatchingConfigProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IBatchingConfigProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a BatchingConfigProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns BatchingConfigProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.BatchingConfigProto;

            /**
             * Decodes a BatchingConfigProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns BatchingConfigProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.BatchingConfigProto;

            /**
             * Verifies a BatchingConfigProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a BatchingConfigProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns BatchingConfigProto
             */
            public static fromObject(object: { [k: string]: any }): google.api.BatchingConfigProto;

            /**
             * Creates a plain object from a BatchingConfigProto message. Also converts values to other types if specified.
             * @param message BatchingConfigProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.BatchingConfigProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this BatchingConfigProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for BatchingConfigProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a BatchingSettingsProto. */
        interface IBatchingSettingsProto {

            /** BatchingSettingsProto elementCountThreshold */
            elementCountThreshold?: (number|null);

            /** BatchingSettingsProto requestByteThreshold */
            requestByteThreshold?: (number|Long|string|null);

            /** BatchingSettingsProto delayThreshold */
            delayThreshold?: (google.protobuf.IDuration|null);

            /** BatchingSettingsProto elementCountLimit */
            elementCountLimit?: (number|null);

            /** BatchingSettingsProto requestByteLimit */
            requestByteLimit?: (number|null);

            /** BatchingSettingsProto flowControlElementLimit */
            flowControlElementLimit?: (number|null);

            /** BatchingSettingsProto flowControlByteLimit */
            flowControlByteLimit?: (number|null);

            /** BatchingSettingsProto flowControlLimitExceededBehavior */
            flowControlLimitExceededBehavior?: (google.api.FlowControlLimitExceededBehaviorProto|keyof typeof google.api.FlowControlLimitExceededBehaviorProto|null);
        }

        /** Represents a BatchingSettingsProto. */
        class BatchingSettingsProto implements IBatchingSettingsProto {

            /**
             * Constructs a new BatchingSettingsProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IBatchingSettingsProto);

            /** BatchingSettingsProto elementCountThreshold. */
            public elementCountThreshold: number;

            /** BatchingSettingsProto requestByteThreshold. */
            public requestByteThreshold: (number|Long|string);

            /** BatchingSettingsProto delayThreshold. */
            public delayThreshold?: (google.protobuf.IDuration|null);

            /** BatchingSettingsProto elementCountLimit. */
            public elementCountLimit: number;

            /** BatchingSettingsProto requestByteLimit. */
            public requestByteLimit: number;

            /** BatchingSettingsProto flowControlElementLimit. */
            public flowControlElementLimit: number;

            /** BatchingSettingsProto flowControlByteLimit. */
            public flowControlByteLimit: number;

            /** BatchingSettingsProto flowControlLimitExceededBehavior. */
            public flowControlLimitExceededBehavior: (google.api.FlowControlLimitExceededBehaviorProto|keyof typeof google.api.FlowControlLimitExceededBehaviorProto);

            /**
             * Creates a new BatchingSettingsProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns BatchingSettingsProto instance
             */
            public static create(properties?: google.api.IBatchingSettingsProto): google.api.BatchingSettingsProto;

            /**
             * Encodes the specified BatchingSettingsProto message. Does not implicitly {@link google.api.BatchingSettingsProto.verify|verify} messages.
             * @param message BatchingSettingsProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IBatchingSettingsProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified BatchingSettingsProto message, length delimited. Does not implicitly {@link google.api.BatchingSettingsProto.verify|verify} messages.
             * @param message BatchingSettingsProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IBatchingSettingsProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a BatchingSettingsProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns BatchingSettingsProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.BatchingSettingsProto;

            /**
             * Decodes a BatchingSettingsProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns BatchingSettingsProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.BatchingSettingsProto;

            /**
             * Verifies a BatchingSettingsProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a BatchingSettingsProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns BatchingSettingsProto
             */
            public static fromObject(object: { [k: string]: any }): google.api.BatchingSettingsProto;

            /**
             * Creates a plain object from a BatchingSettingsProto message. Also converts values to other types if specified.
             * @param message BatchingSettingsProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.BatchingSettingsProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this BatchingSettingsProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for BatchingSettingsProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** FlowControlLimitExceededBehaviorProto enum. */
        enum FlowControlLimitExceededBehaviorProto {
            UNSET_BEHAVIOR = 0,
            THROW_EXCEPTION = 1,
            BLOCK = 2,
            IGNORE = 3
        }

        /** Properties of a BatchingDescriptorProto. */
        interface IBatchingDescriptorProto {

            /** BatchingDescriptorProto batchedField */
            batchedField?: (string|null);

            /** BatchingDescriptorProto discriminatorFields */
            discriminatorFields?: (string[]|null);

            /** BatchingDescriptorProto subresponseField */
            subresponseField?: (string|null);
        }

        /** Represents a BatchingDescriptorProto. */
        class BatchingDescriptorProto implements IBatchingDescriptorProto {

            /**
             * Constructs a new BatchingDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IBatchingDescriptorProto);

            /** BatchingDescriptorProto batchedField. */
            public batchedField: string;

            /** BatchingDescriptorProto discriminatorFields. */
            public discriminatorFields: string[];

            /** BatchingDescriptorProto subresponseField. */
            public subresponseField: string;

            /**
             * Creates a new BatchingDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns BatchingDescriptorProto instance
             */
            public static create(properties?: google.api.IBatchingDescriptorProto): google.api.BatchingDescriptorProto;

            /**
             * Encodes the specified BatchingDescriptorProto message. Does not implicitly {@link google.api.BatchingDescriptorProto.verify|verify} messages.
             * @param message BatchingDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IBatchingDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified BatchingDescriptorProto message, length delimited. Does not implicitly {@link google.api.BatchingDescriptorProto.verify|verify} messages.
             * @param message BatchingDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IBatchingDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a BatchingDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns BatchingDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.BatchingDescriptorProto;

            /**
             * Decodes a BatchingDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns BatchingDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.BatchingDescriptorProto;

            /**
             * Verifies a BatchingDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a BatchingDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns BatchingDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.api.BatchingDescriptorProto;

            /**
             * Creates a plain object from a BatchingDescriptorProto message. Also converts values to other types if specified.
             * @param message BatchingDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.BatchingDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this BatchingDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for BatchingDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** LaunchStage enum. */
        enum LaunchStage {
            LAUNCH_STAGE_UNSPECIFIED = 0,
            UNIMPLEMENTED = 6,
            PRELAUNCH = 7,
            EARLY_ACCESS = 1,
            ALPHA = 2,
            BETA = 3,
            GA = 4,
            DEPRECATED = 5
        }

        /** FieldBehavior enum. */
        enum FieldBehavior {
            FIELD_BEHAVIOR_UNSPECIFIED = 0,
            OPTIONAL = 1,
            REQUIRED = 2,
            OUTPUT_ONLY = 3,
            INPUT_ONLY = 4,
            IMMUTABLE = 5,
            UNORDERED_LIST = 6,
            NON_EMPTY_DEFAULT = 7,
            IDENTIFIER = 8
        }

        /** Properties of a ResourceDescriptor. */
        interface IResourceDescriptor {

            /** ResourceDescriptor type */
            type?: (string|null);

            /** ResourceDescriptor pattern */
            pattern?: (string[]|null);

            /** ResourceDescriptor nameField */
            nameField?: (string|null);

            /** ResourceDescriptor history */
            history?: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History|null);

            /** ResourceDescriptor plural */
            plural?: (string|null);

            /** ResourceDescriptor singular */
            singular?: (string|null);

            /** ResourceDescriptor style */
            style?: (google.api.ResourceDescriptor.Style[]|null);
        }

        /** Represents a ResourceDescriptor. */
        class ResourceDescriptor implements IResourceDescriptor {

            /**
             * Constructs a new ResourceDescriptor.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IResourceDescriptor);

            /** ResourceDescriptor type. */
            public type: string;

            /** ResourceDescriptor pattern. */
            public pattern: string[];

            /** ResourceDescriptor nameField. */
            public nameField: string;

            /** ResourceDescriptor history. */
            public history: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History);

            /** ResourceDescriptor plural. */
            public plural: string;

            /** ResourceDescriptor singular. */
            public singular: string;

            /** ResourceDescriptor style. */
            public style: google.api.ResourceDescriptor.Style[];

            /**
             * Creates a new ResourceDescriptor instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ResourceDescriptor instance
             */
            public static create(properties?: google.api.IResourceDescriptor): google.api.ResourceDescriptor;

            /**
             * Encodes the specified ResourceDescriptor message. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages.
             * @param message ResourceDescriptor message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ResourceDescriptor message, length delimited. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages.
             * @param message ResourceDescriptor message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ResourceDescriptor message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ResourceDescriptor
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ResourceDescriptor;

            /**
             * Decodes a ResourceDescriptor message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ResourceDescriptor
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ResourceDescriptor;

            /**
             * Verifies a ResourceDescriptor message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ResourceDescriptor message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ResourceDescriptor
             */
            public static fromObject(object: { [k: string]: any }): google.api.ResourceDescriptor;

            /**
             * Creates a plain object from a ResourceDescriptor message. Also converts values to other types if specified.
             * @param message ResourceDescriptor
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.ResourceDescriptor, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ResourceDescriptor to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ResourceDescriptor
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace ResourceDescriptor {

            /** History enum. */
            enum History {
                HISTORY_UNSPECIFIED = 0,
                ORIGINALLY_SINGLE_PATTERN = 1,
                FUTURE_MULTI_PATTERN = 2
            }

            /** Style enum. */
            enum Style {
                STYLE_UNSPECIFIED = 0,
                DECLARATIVE_FRIENDLY = 1
            }
        }

        /** Properties of a ResourceReference. */
        interface IResourceReference {

            /** ResourceReference type */
            type?: (string|null);

            /** ResourceReference childType */
            childType?: (string|null);
        }

        /** Represents a ResourceReference. */
        class ResourceReference implements IResourceReference {

            /**
             * Constructs a new ResourceReference.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IResourceReference);

            /** ResourceReference type. */
            public type: string;

            /** ResourceReference childType. */
            public childType: string;

            /**
             * Creates a new ResourceReference instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ResourceReference instance
             */
            public static create(properties?: google.api.IResourceReference): google.api.ResourceReference;

            /**
             * Encodes the specified ResourceReference message. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages.
             * @param message ResourceReference message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ResourceReference message, length delimited. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages.
             * @param message ResourceReference message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ResourceReference message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ResourceReference
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ResourceReference;

            /**
             * Decodes a ResourceReference message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ResourceReference
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ResourceReference;

            /**
             * Verifies a ResourceReference message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ResourceReference message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ResourceReference
             */
            public static fromObject(object: { [k: string]: any }): google.api.ResourceReference;

            /**
             * Creates a plain object from a ResourceReference message. Also converts values to other types if specified.
             * @param message ResourceReference
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.ResourceReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ResourceReference to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ResourceReference
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }

    /** Namespace protobuf. */
    namespace protobuf {

        /** Properties of a FileDescriptorSet. */
        interface IFileDescriptorSet {

            /** FileDescriptorSet file */
            file?: (google.protobuf.IFileDescriptorProto[]|null);
        }

        /** Represents a FileDescriptorSet. */
        class FileDescriptorSet implements IFileDescriptorSet {

            /**
             * Constructs a new FileDescriptorSet.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFileDescriptorSet);

            /** FileDescriptorSet file. */
            public file: google.protobuf.IFileDescriptorProto[];

            /**
             * Creates a new FileDescriptorSet instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FileDescriptorSet instance
             */
            public static create(properties?: google.protobuf.IFileDescriptorSet): google.protobuf.FileDescriptorSet;

            /**
             * Encodes the specified FileDescriptorSet message. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages.
             * @param message FileDescriptorSet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFileDescriptorSet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FileDescriptorSet message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages.
             * @param message FileDescriptorSet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFileDescriptorSet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FileDescriptorSet message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FileDescriptorSet
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileDescriptorSet;

            /**
             * Decodes a FileDescriptorSet message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FileDescriptorSet
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileDescriptorSet;

            /**
             * Verifies a FileDescriptorSet message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FileDescriptorSet message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FileDescriptorSet
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FileDescriptorSet;

            /**
             * Creates a plain object from a FileDescriptorSet message. Also converts values to other types if specified.
             * @param message FileDescriptorSet
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FileDescriptorSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FileDescriptorSet to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FileDescriptorSet
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Edition enum. */
        enum Edition {
            EDITION_UNKNOWN = 0,
            EDITION_LEGACY = 900,
            EDITION_PROTO2 = 998,
            EDITION_PROTO3 = 999,
            EDITION_2023 = 1000,
            EDITION_2024 = 1001,
            EDITION_2026 = 1002,
            EDITION_UNSTABLE = 9999,
            EDITION_1_TEST_ONLY = 1,
            EDITION_2_TEST_ONLY = 2,
            EDITION_99997_TEST_ONLY = 99997,
            EDITION_99998_TEST_ONLY = 99998,
            EDITION_99999_TEST_ONLY = 99999,
            EDITION_MAX = 2147483647
        }

        /** Properties of a FileDescriptorProto. */
        interface IFileDescriptorProto {

            /** FileDescriptorProto name */
            name?: (string|null);

            /** FileDescriptorProto package */
            "package"?: (string|null);

            /** FileDescriptorProto dependency */
            dependency?: (string[]|null);

            /** FileDescriptorProto publicDependency */
            publicDependency?: (number[]|null);

            /** FileDescriptorProto weakDependency */
            weakDependency?: (number[]|null);

            /** FileDescriptorProto optionDependency */
            optionDependency?: (string[]|null);

            /** FileDescriptorProto messageType */
            messageType?: (google.protobuf.IDescriptorProto[]|null);

            /** FileDescriptorProto enumType */
            enumType?: (google.protobuf.IEnumDescriptorProto[]|null);

            /** FileDescriptorProto service */
            service?: (google.protobuf.IServiceDescriptorProto[]|null);

            /** FileDescriptorProto extension */
            extension?: (google.protobuf.IFieldDescriptorProto[]|null);

            /** FileDescriptorProto options */
            options?: (google.protobuf.IFileOptions|null);

            /** FileDescriptorProto sourceCodeInfo */
            sourceCodeInfo?: (google.protobuf.ISourceCodeInfo|null);

            /** FileDescriptorProto syntax */
            syntax?: (string|null);

            /** FileDescriptorProto edition */
            edition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);
        }

        /** Represents a FileDescriptorProto. */
        class FileDescriptorProto implements IFileDescriptorProto {

            /**
             * Constructs a new FileDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFileDescriptorProto);

            /** FileDescriptorProto name. */
            public name: string;

            /** FileDescriptorProto package. */
            public package: string;

            /** FileDescriptorProto dependency. */
            public dependency: string[];

            /** FileDescriptorProto publicDependency. */
            public publicDependency: number[];

            /** FileDescriptorProto weakDependency. */
            public weakDependency: number[];

            /** FileDescriptorProto optionDependency. */
            public optionDependency: string[];

            /** FileDescriptorProto messageType. */
            public messageType: google.protobuf.IDescriptorProto[];

            /** FileDescriptorProto enumType. */
            public enumType: google.protobuf.IEnumDescriptorProto[];

            /** FileDescriptorProto service. */
            public service: google.protobuf.IServiceDescriptorProto[];

            /** FileDescriptorProto extension. */
            public extension: google.protobuf.IFieldDescriptorProto[];

            /** FileDescriptorProto options. */
            public options?: (google.protobuf.IFileOptions|null);

            /** FileDescriptorProto sourceCodeInfo. */
            public sourceCodeInfo?: (google.protobuf.ISourceCodeInfo|null);

            /** FileDescriptorProto syntax. */
            public syntax: string;

            /** FileDescriptorProto edition. */
            public edition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

            /**
             * Creates a new FileDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FileDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IFileDescriptorProto): google.protobuf.FileDescriptorProto;

            /**
             * Encodes the specified FileDescriptorProto message. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages.
             * @param message FileDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFileDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FileDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages.
             * @param message FileDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFileDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FileDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FileDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileDescriptorProto;

            /**
             * Decodes a FileDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FileDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileDescriptorProto;

            /**
             * Verifies a FileDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FileDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FileDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FileDescriptorProto;

            /**
             * Creates a plain object from a FileDescriptorProto message. Also converts values to other types if specified.
             * @param message FileDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FileDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FileDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FileDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a DescriptorProto. */
        interface IDescriptorProto {

            /** DescriptorProto name */
            name?: (string|null);

            /** DescriptorProto field */
            field?: (google.protobuf.IFieldDescriptorProto[]|null);

            /** DescriptorProto extension */
            extension?: (google.protobuf.IFieldDescriptorProto[]|null);

            /** DescriptorProto nestedType */
            nestedType?: (google.protobuf.IDescriptorProto[]|null);

            /** DescriptorProto enumType */
            enumType?: (google.protobuf.IEnumDescriptorProto[]|null);

            /** DescriptorProto extensionRange */
            extensionRange?: (google.protobuf.DescriptorProto.IExtensionRange[]|null);

            /** DescriptorProto oneofDecl */
            oneofDecl?: (google.protobuf.IOneofDescriptorProto[]|null);

            /** DescriptorProto options */
            options?: (google.protobuf.IMessageOptions|null);

            /** DescriptorProto reservedRange */
            reservedRange?: (google.protobuf.DescriptorProto.IReservedRange[]|null);

            /** DescriptorProto reservedName */
            reservedName?: (string[]|null);

            /** DescriptorProto visibility */
            visibility?: (google.protobuf.SymbolVisibility|keyof typeof google.protobuf.SymbolVisibility|null);
        }

        /** Represents a DescriptorProto. */
        class DescriptorProto implements IDescriptorProto {

            /**
             * Constructs a new DescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IDescriptorProto);

            /** DescriptorProto name. */
            public name: string;

            /** DescriptorProto field. */
            public field: google.protobuf.IFieldDescriptorProto[];

            /** DescriptorProto extension. */
            public extension: google.protobuf.IFieldDescriptorProto[];

            /** DescriptorProto nestedType. */
            public nestedType: google.protobuf.IDescriptorProto[];

            /** DescriptorProto enumType. */
            public enumType: google.protobuf.IEnumDescriptorProto[];

            /** DescriptorProto extensionRange. */
            public extensionRange: google.protobuf.DescriptorProto.IExtensionRange[];

            /** DescriptorProto oneofDecl. */
            public oneofDecl: google.protobuf.IOneofDescriptorProto[];

            /** DescriptorProto options. */
            public options?: (google.protobuf.IMessageOptions|null);

            /** DescriptorProto reservedRange. */
            public reservedRange: google.protobuf.DescriptorProto.IReservedRange[];

            /** DescriptorProto reservedName. */
            public reservedName: string[];

            /** DescriptorProto visibility. */
            public visibility: (google.protobuf.SymbolVisibility|keyof typeof google.protobuf.SymbolVisibility);

            /**
             * Creates a new DescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescriptorProto instance
             */
            public static create(properties?: google.protobuf.IDescriptorProto): google.protobuf.DescriptorProto;

            /**
             * Encodes the specified DescriptorProto message. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages.
             * @param message DescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages.
             * @param message DescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto;

            /**
             * Decodes a DescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto;

            /**
             * Verifies a DescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto;

            /**
             * Creates a plain object from a DescriptorProto message. Also converts values to other types if specified.
             * @param message DescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.DescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for DescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace DescriptorProto {

            /** Properties of an ExtensionRange. */
            interface IExtensionRange {

                /** ExtensionRange start */
                start?: (number|null);

                /** ExtensionRange end */
                end?: (number|null);

                /** ExtensionRange options */
                options?: (google.protobuf.IExtensionRangeOptions|null);
            }

            /** Represents an ExtensionRange. */
            class ExtensionRange implements IExtensionRange {

                /**
                 * Constructs a new ExtensionRange.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.DescriptorProto.IExtensionRange);

                /** ExtensionRange start. */
                public start: number;

                /** ExtensionRange end. */
                public end: number;

                /** ExtensionRange options. */
                public options?: (google.protobuf.IExtensionRangeOptions|null);

                /**
                 * Creates a new ExtensionRange instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ExtensionRange instance
                 */
                public static create(properties?: google.protobuf.DescriptorProto.IExtensionRange): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Encodes the specified ExtensionRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages.
                 * @param message ExtensionRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.DescriptorProto.IExtensionRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ExtensionRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages.
                 * @param message ExtensionRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.DescriptorProto.IExtensionRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an ExtensionRange message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ExtensionRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Decodes an ExtensionRange message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ExtensionRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Verifies an ExtensionRange message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an ExtensionRange message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ExtensionRange
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Creates a plain object from an ExtensionRange message. Also converts values to other types if specified.
                 * @param message ExtensionRange
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.DescriptorProto.ExtensionRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ExtensionRange to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ExtensionRange
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ReservedRange. */
            interface IReservedRange {

                /** ReservedRange start */
                start?: (number|null);

                /** ReservedRange end */
                end?: (number|null);
            }

            /** Represents a ReservedRange. */
            class ReservedRange implements IReservedRange {

                /**
                 * Constructs a new ReservedRange.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.DescriptorProto.IReservedRange);

                /** ReservedRange start. */
                public start: number;

                /** ReservedRange end. */
                public end: number;

                /**
                 * Creates a new ReservedRange instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReservedRange instance
                 */
                public static create(properties?: google.protobuf.DescriptorProto.IReservedRange): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Encodes the specified ReservedRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages.
                 * @param message ReservedRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.DescriptorProto.IReservedRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ReservedRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages.
                 * @param message ReservedRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.DescriptorProto.IReservedRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ReservedRange message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReservedRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Decodes a ReservedRange message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReservedRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Verifies a ReservedRange message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReservedRange message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReservedRange
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Creates a plain object from a ReservedRange message. Also converts values to other types if specified.
                 * @param message ReservedRange
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.DescriptorProto.ReservedRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReservedRange to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ReservedRange
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of an ExtensionRangeOptions. */
        interface IExtensionRangeOptions {

            /** ExtensionRangeOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** ExtensionRangeOptions declaration */
            declaration?: (google.protobuf.ExtensionRangeOptions.IDeclaration[]|null);

            /** ExtensionRangeOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** ExtensionRangeOptions verification */
            verification?: (google.protobuf.ExtensionRangeOptions.VerificationState|keyof typeof google.protobuf.ExtensionRangeOptions.VerificationState|null);
        }

        /** Represents an ExtensionRangeOptions. */
        class ExtensionRangeOptions implements IExtensionRangeOptions {

            /**
             * Constructs a new ExtensionRangeOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IExtensionRangeOptions);

            /** ExtensionRangeOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /** ExtensionRangeOptions declaration. */
            public declaration: google.protobuf.ExtensionRangeOptions.IDeclaration[];

            /** ExtensionRangeOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** ExtensionRangeOptions verification. */
            public verification: (google.protobuf.ExtensionRangeOptions.VerificationState|keyof typeof google.protobuf.ExtensionRangeOptions.VerificationState);

            /**
             * Creates a new ExtensionRangeOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExtensionRangeOptions instance
             */
            public static create(properties?: google.protobuf.IExtensionRangeOptions): google.protobuf.ExtensionRangeOptions;

            /**
             * Encodes the specified ExtensionRangeOptions message. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages.
             * @param message ExtensionRangeOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IExtensionRangeOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExtensionRangeOptions message, length delimited. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages.
             * @param message ExtensionRangeOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IExtensionRangeOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExtensionRangeOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExtensionRangeOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ExtensionRangeOptions;

            /**
             * Decodes an ExtensionRangeOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExtensionRangeOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ExtensionRangeOptions;

            /**
             * Verifies an ExtensionRangeOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an ExtensionRangeOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExtensionRangeOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.ExtensionRangeOptions;

            /**
             * Creates a plain object from an ExtensionRangeOptions message. Also converts values to other types if specified.
             * @param message ExtensionRangeOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.ExtensionRangeOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExtensionRangeOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ExtensionRangeOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace ExtensionRangeOptions {

            /** Properties of a Declaration. */
            interface IDeclaration {

                /** Declaration number */
                number?: (number|null);

                /** Declaration fullName */
                fullName?: (string|null);

                /** Declaration type */
                type?: (string|null);

                /** Declaration reserved */
                reserved?: (boolean|null);

                /** Declaration repeated */
                repeated?: (boolean|null);
            }

            /** Represents a Declaration. */
            class Declaration implements IDeclaration {

                /**
                 * Constructs a new Declaration.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.ExtensionRangeOptions.IDeclaration);

                /** Declaration number. */
                public number: number;

                /** Declaration fullName. */
                public fullName: string;

                /** Declaration type. */
                public type: string;

                /** Declaration reserved. */
                public reserved: boolean;

                /** Declaration repeated. */
                public repeated: boolean;

                /**
                 * Creates a new Declaration instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Declaration instance
                 */
                public static create(properties?: google.protobuf.ExtensionRangeOptions.IDeclaration): google.protobuf.ExtensionRangeOptions.Declaration;

                /**
                 * Encodes the specified Declaration message. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.Declaration.verify|verify} messages.
                 * @param message Declaration message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.ExtensionRangeOptions.IDeclaration, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Declaration message, length delimited. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.Declaration.verify|verify} messages.
                 * @param message Declaration message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.ExtensionRangeOptions.IDeclaration, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a Declaration message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Declaration
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ExtensionRangeOptions.Declaration;

                /**
                 * Decodes a Declaration message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Declaration
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ExtensionRangeOptions.Declaration;

                /**
                 * Verifies a Declaration message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a Declaration message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Declaration
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.ExtensionRangeOptions.Declaration;

                /**
                 * Creates a plain object from a Declaration message. Also converts values to other types if specified.
                 * @param message Declaration
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.ExtensionRangeOptions.Declaration, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Declaration to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Declaration
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** VerificationState enum. */
            enum VerificationState {
                DECLARATION = 0,
                UNVERIFIED = 1
            }
        }

        /** Properties of a FieldDescriptorProto. */
        interface IFieldDescriptorProto {

            /** FieldDescriptorProto name */
            name?: (string|null);

            /** FieldDescriptorProto number */
            number?: (number|null);

            /** FieldDescriptorProto label */
            label?: (google.protobuf.FieldDescriptorProto.Label|keyof typeof google.protobuf.FieldDescriptorProto.Label|null);

            /** FieldDescriptorProto type */
            type?: (google.protobuf.FieldDescriptorProto.Type|keyof typeof google.protobuf.FieldDescriptorProto.Type|null);

            /** FieldDescriptorProto typeName */
            typeName?: (string|null);

            /** FieldDescriptorProto extendee */
            extendee?: (string|null);

            /** FieldDescriptorProto defaultValue */
            defaultValue?: (string|null);

            /** FieldDescriptorProto oneofIndex */
            oneofIndex?: (number|null);

            /** FieldDescriptorProto jsonName */
            jsonName?: (string|null);

            /** FieldDescriptorProto options */
            options?: (google.protobuf.IFieldOptions|null);

            /** FieldDescriptorProto proto3Optional */
            proto3Optional?: (boolean|null);
        }

        /** Represents a FieldDescriptorProto. */
        class FieldDescriptorProto implements IFieldDescriptorProto {

            /**
             * Constructs a new FieldDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFieldDescriptorProto);

            /** FieldDescriptorProto name. */
            public name: string;

            /** FieldDescriptorProto number. */
            public number: number;

            /** FieldDescriptorProto label. */
            public label: (google.protobuf.FieldDescriptorProto.Label|keyof typeof google.protobuf.FieldDescriptorProto.Label);

            /** FieldDescriptorProto type. */
            public type: (google.protobuf.FieldDescriptorProto.Type|keyof typeof google.protobuf.FieldDescriptorProto.Type);

            /** FieldDescriptorProto typeName. */
            public typeName: string;

            /** FieldDescriptorProto extendee. */
            public extendee: string;

            /** FieldDescriptorProto defaultValue. */
            public defaultValue: string;

            /** FieldDescriptorProto oneofIndex. */
            public oneofIndex: number;

            /** FieldDescriptorProto jsonName. */
            public jsonName: string;

            /** FieldDescriptorProto options. */
            public options?: (google.protobuf.IFieldOptions|null);

            /** FieldDescriptorProto proto3Optional. */
            public proto3Optional: boolean;

            /**
             * Creates a new FieldDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FieldDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IFieldDescriptorProto): google.protobuf.FieldDescriptorProto;

            /**
             * Encodes the specified FieldDescriptorProto message. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages.
             * @param message FieldDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFieldDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FieldDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages.
             * @param message FieldDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFieldDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FieldDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FieldDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldDescriptorProto;

            /**
             * Decodes a FieldDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FieldDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldDescriptorProto;

            /**
             * Verifies a FieldDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FieldDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FieldDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FieldDescriptorProto;

            /**
             * Creates a plain object from a FieldDescriptorProto message. Also converts values to other types if specified.
             * @param message FieldDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FieldDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FieldDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FieldDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FieldDescriptorProto {

            /** Type enum. */
            enum Type {
                TYPE_DOUBLE = 1,
                TYPE_FLOAT = 2,
                TYPE_INT64 = 3,
                TYPE_UINT64 = 4,
                TYPE_INT32 = 5,
                TYPE_FIXED64 = 6,
                TYPE_FIXED32 = 7,
                TYPE_BOOL = 8,
                TYPE_STRING = 9,
                TYPE_GROUP = 10,
                TYPE_MESSAGE = 11,
                TYPE_BYTES = 12,
                TYPE_UINT32 = 13,
                TYPE_ENUM = 14,
                TYPE_SFIXED32 = 15,
                TYPE_SFIXED64 = 16,
                TYPE_SINT32 = 17,
                TYPE_SINT64 = 18
            }

            /** Label enum. */
            enum Label {
                LABEL_OPTIONAL = 1,
                LABEL_REPEATED = 3,
                LABEL_REQUIRED = 2
            }
        }

        /** Properties of an OneofDescriptorProto. */
        interface IOneofDescriptorProto {

            /** OneofDescriptorProto name */
            name?: (string|null);

            /** OneofDescriptorProto options */
            options?: (google.protobuf.IOneofOptions|null);
        }

        /** Represents an OneofDescriptorProto. */
        class OneofDescriptorProto implements IOneofDescriptorProto {

            /**
             * Constructs a new OneofDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IOneofDescriptorProto);

            /** OneofDescriptorProto name. */
            public name: string;

            /** OneofDescriptorProto options. */
            public options?: (google.protobuf.IOneofOptions|null);

            /**
             * Creates a new OneofDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns OneofDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IOneofDescriptorProto): google.protobuf.OneofDescriptorProto;

            /**
             * Encodes the specified OneofDescriptorProto message. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages.
             * @param message OneofDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IOneofDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified OneofDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages.
             * @param message OneofDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IOneofDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an OneofDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns OneofDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.OneofDescriptorProto;

            /**
             * Decodes an OneofDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns OneofDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.OneofDescriptorProto;

            /**
             * Verifies an OneofDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an OneofDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns OneofDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.OneofDescriptorProto;

            /**
             * Creates a plain object from an OneofDescriptorProto message. Also converts values to other types if specified.
             * @param message OneofDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.OneofDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this OneofDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for OneofDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an EnumDescriptorProto. */
        interface IEnumDescriptorProto {

            /** EnumDescriptorProto name */
            name?: (string|null);

            /** EnumDescriptorProto value */
            value?: (google.protobuf.IEnumValueDescriptorProto[]|null);

            /** EnumDescriptorProto options */
            options?: (google.protobuf.IEnumOptions|null);

            /** EnumDescriptorProto reservedRange */
            reservedRange?: (google.protobuf.EnumDescriptorProto.IEnumReservedRange[]|null);

            /** EnumDescriptorProto reservedName */
            reservedName?: (string[]|null);

            /** EnumDescriptorProto visibility */
            visibility?: (google.protobuf.SymbolVisibility|keyof typeof google.protobuf.SymbolVisibility|null);
        }

        /** Represents an EnumDescriptorProto. */
        class EnumDescriptorProto implements IEnumDescriptorProto {

            /**
             * Constructs a new EnumDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumDescriptorProto);

            /** EnumDescriptorProto name. */
            public name: string;

            /** EnumDescriptorProto value. */
            public value: google.protobuf.IEnumValueDescriptorProto[];

            /** EnumDescriptorProto options. */
            public options?: (google.protobuf.IEnumOptions|null);

            /** EnumDescriptorProto reservedRange. */
            public reservedRange: google.protobuf.EnumDescriptorProto.IEnumReservedRange[];

            /** EnumDescriptorProto reservedName. */
            public reservedName: string[];

            /** EnumDescriptorProto visibility. */
            public visibility: (google.protobuf.SymbolVisibility|keyof typeof google.protobuf.SymbolVisibility);

            /**
             * Creates a new EnumDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IEnumDescriptorProto): google.protobuf.EnumDescriptorProto;

            /**
             * Encodes the specified EnumDescriptorProto message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages.
             * @param message EnumDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEnumDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified EnumDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages.
             * @param message EnumDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEnumDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an EnumDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumDescriptorProto;

            /**
             * Decodes an EnumDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumDescriptorProto;

            /**
             * Verifies an EnumDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an EnumDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumDescriptorProto;

            /**
             * Creates a plain object from an EnumDescriptorProto message. Also converts values to other types if specified.
             * @param message EnumDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for EnumDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace EnumDescriptorProto {

            /** Properties of an EnumReservedRange. */
            interface IEnumReservedRange {

                /** EnumReservedRange start */
                start?: (number|null);

                /** EnumReservedRange end */
                end?: (number|null);
            }

            /** Represents an EnumReservedRange. */
            class EnumReservedRange implements IEnumReservedRange {

                /**
                 * Constructs a new EnumReservedRange.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.EnumDescriptorProto.IEnumReservedRange);

                /** EnumReservedRange start. */
                public start: number;

                /** EnumReservedRange end. */
                public end: number;

                /**
                 * Creates a new EnumReservedRange instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EnumReservedRange instance
                 */
                public static create(properties?: google.protobuf.EnumDescriptorProto.IEnumReservedRange): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Encodes the specified EnumReservedRange message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages.
                 * @param message EnumReservedRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.EnumDescriptorProto.IEnumReservedRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified EnumReservedRange message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages.
                 * @param message EnumReservedRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.EnumDescriptorProto.IEnumReservedRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an EnumReservedRange message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EnumReservedRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Decodes an EnumReservedRange message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EnumReservedRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Verifies an EnumReservedRange message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an EnumReservedRange message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EnumReservedRange
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Creates a plain object from an EnumReservedRange message. Also converts values to other types if specified.
                 * @param message EnumReservedRange
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.EnumDescriptorProto.EnumReservedRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EnumReservedRange to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for EnumReservedRange
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of an EnumValueDescriptorProto. */
        interface IEnumValueDescriptorProto {

            /** EnumValueDescriptorProto name */
            name?: (string|null);

            /** EnumValueDescriptorProto number */
            number?: (number|null);

            /** EnumValueDescriptorProto options */
            options?: (google.protobuf.IEnumValueOptions|null);
        }

        /** Represents an EnumValueDescriptorProto. */
        class EnumValueDescriptorProto implements IEnumValueDescriptorProto {

            /**
             * Constructs a new EnumValueDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumValueDescriptorProto);

            /** EnumValueDescriptorProto name. */
            public name: string;

            /** EnumValueDescriptorProto number. */
            public number: number;

            /** EnumValueDescriptorProto options. */
            public options?: (google.protobuf.IEnumValueOptions|null);

            /**
             * Creates a new EnumValueDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumValueDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IEnumValueDescriptorProto): google.protobuf.EnumValueDescriptorProto;

            /**
             * Encodes the specified EnumValueDescriptorProto message. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages.
             * @param message EnumValueDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEnumValueDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified EnumValueDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages.
             * @param message EnumValueDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEnumValueDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an EnumValueDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumValueDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumValueDescriptorProto;

            /**
             * Decodes an EnumValueDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumValueDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumValueDescriptorProto;

            /**
             * Verifies an EnumValueDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an EnumValueDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumValueDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumValueDescriptorProto;

            /**
             * Creates a plain object from an EnumValueDescriptorProto message. Also converts values to other types if specified.
             * @param message EnumValueDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumValueDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumValueDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for EnumValueDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a ServiceDescriptorProto. */
        interface IServiceDescriptorProto {

            /** ServiceDescriptorProto name */
            name?: (string|null);

            /** ServiceDescriptorProto method */
            method?: (google.protobuf.IMethodDescriptorProto[]|null);

            /** ServiceDescriptorProto options */
            options?: (google.protobuf.IServiceOptions|null);
        }

        /** Represents a ServiceDescriptorProto. */
        class ServiceDescriptorProto implements IServiceDescriptorProto {

            /**
             * Constructs a new ServiceDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IServiceDescriptorProto);

            /** ServiceDescriptorProto name. */
            public name: string;

            /** ServiceDescriptorProto method. */
            public method: google.protobuf.IMethodDescriptorProto[];

            /** ServiceDescriptorProto options. */
            public options?: (google.protobuf.IServiceOptions|null);

            /**
             * Creates a new ServiceDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ServiceDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IServiceDescriptorProto): google.protobuf.ServiceDescriptorProto;

            /**
             * Encodes the specified ServiceDescriptorProto message. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages.
             * @param message ServiceDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IServiceDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ServiceDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages.
             * @param message ServiceDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IServiceDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ServiceDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ServiceDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ServiceDescriptorProto;

            /**
             * Decodes a ServiceDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ServiceDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ServiceDescriptorProto;

            /**
             * Verifies a ServiceDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ServiceDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ServiceDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.ServiceDescriptorProto;

            /**
             * Creates a plain object from a ServiceDescriptorProto message. Also converts values to other types if specified.
             * @param message ServiceDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.ServiceDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ServiceDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ServiceDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a MethodDescriptorProto. */
        interface IMethodDescriptorProto {

            /** MethodDescriptorProto name */
            name?: (string|null);

            /** MethodDescriptorProto inputType */
            inputType?: (string|null);

            /** MethodDescriptorProto outputType */
            outputType?: (string|null);

            /** MethodDescriptorProto options */
            options?: (google.protobuf.IMethodOptions|null);

            /** MethodDescriptorProto clientStreaming */
            clientStreaming?: (boolean|null);

            /** MethodDescriptorProto serverStreaming */
            serverStreaming?: (boolean|null);
        }

        /** Represents a MethodDescriptorProto. */
        class MethodDescriptorProto implements IMethodDescriptorProto {

            /**
             * Constructs a new MethodDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IMethodDescriptorProto);

            /** MethodDescriptorProto name. */
            public name: string;

            /** MethodDescriptorProto inputType. */
            public inputType: string;

            /** MethodDescriptorProto outputType. */
            public outputType: string;

            /** MethodDescriptorProto options. */
            public options?: (google.protobuf.IMethodOptions|null);

            /** MethodDescriptorProto clientStreaming. */
            public clientStreaming: boolean;

            /** MethodDescriptorProto serverStreaming. */
            public serverStreaming: boolean;

            /**
             * Creates a new MethodDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MethodDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IMethodDescriptorProto): google.protobuf.MethodDescriptorProto;

            /**
             * Encodes the specified MethodDescriptorProto message. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages.
             * @param message MethodDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IMethodDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MethodDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages.
             * @param message MethodDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IMethodDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MethodDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MethodDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MethodDescriptorProto;

            /**
             * Decodes a MethodDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MethodDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MethodDescriptorProto;

            /**
             * Verifies a MethodDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MethodDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MethodDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.MethodDescriptorProto;

            /**
             * Creates a plain object from a MethodDescriptorProto message. Also converts values to other types if specified.
             * @param message MethodDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.MethodDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MethodDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for MethodDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a FileOptions. */
        interface IFileOptions {

            /** FileOptions javaPackage */
            javaPackage?: (string|null);

            /** FileOptions javaOuterClassname */
            javaOuterClassname?: (string|null);

            /** FileOptions javaMultipleFiles */
            javaMultipleFiles?: (boolean|null);

            /** FileOptions javaGenerateEqualsAndHash */
            javaGenerateEqualsAndHash?: (boolean|null);

            /** FileOptions javaStringCheckUtf8 */
            javaStringCheckUtf8?: (boolean|null);

            /** FileOptions optimizeFor */
            optimizeFor?: (google.protobuf.FileOptions.OptimizeMode|keyof typeof google.protobuf.FileOptions.OptimizeMode|null);

            /** FileOptions goPackage */
            goPackage?: (string|null);

            /** FileOptions ccGenericServices */
            ccGenericServices?: (boolean|null);

            /** FileOptions javaGenericServices */
            javaGenericServices?: (boolean|null);

            /** FileOptions pyGenericServices */
            pyGenericServices?: (boolean|null);

            /** FileOptions deprecated */
            deprecated?: (boolean|null);

            /** FileOptions ccEnableArenas */
            ccEnableArenas?: (boolean|null);

            /** FileOptions objcClassPrefix */
            objcClassPrefix?: (string|null);

            /** FileOptions csharpNamespace */
            csharpNamespace?: (string|null);

            /** FileOptions swiftPrefix */
            swiftPrefix?: (string|null);

            /** FileOptions phpClassPrefix */
            phpClassPrefix?: (string|null);

            /** FileOptions phpNamespace */
            phpNamespace?: (string|null);

            /** FileOptions phpMetadataNamespace */
            phpMetadataNamespace?: (string|null);

            /** FileOptions rubyPackage */
            rubyPackage?: (string|null);

            /** FileOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** FileOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** FileOptions .google.api.resourceDefinition */
            ".google.api.resourceDefinition"?: (google.api.IResourceDescriptor[]|null);
        }

        /** Represents a FileOptions. */
        class FileOptions implements IFileOptions {

            /**
             * Constructs a new FileOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFileOptions);

            /** FileOptions javaPackage. */
            public javaPackage: string;

            /** FileOptions javaOuterClassname. */
            public javaOuterClassname: string;

            /** FileOptions javaMultipleFiles. */
            public javaMultipleFiles: boolean;

            /** FileOptions javaGenerateEqualsAndHash. */
            public javaGenerateEqualsAndHash: boolean;

            /** FileOptions javaStringCheckUtf8. */
            public javaStringCheckUtf8: boolean;

            /** FileOptions optimizeFor. */
            public optimizeFor: (google.protobuf.FileOptions.OptimizeMode|keyof typeof google.protobuf.FileOptions.OptimizeMode);

            /** FileOptions goPackage. */
            public goPackage: string;

            /** FileOptions ccGenericServices. */
            public ccGenericServices: boolean;

            /** FileOptions javaGenericServices. */
            public javaGenericServices: boolean;

            /** FileOptions pyGenericServices. */
            public pyGenericServices: boolean;

            /** FileOptions deprecated. */
            public deprecated: boolean;

            /** FileOptions ccEnableArenas. */
            public ccEnableArenas: boolean;

            /** FileOptions objcClassPrefix. */
            public objcClassPrefix: string;

            /** FileOptions csharpNamespace. */
            public csharpNamespace: string;

            /** FileOptions swiftPrefix. */
            public swiftPrefix: string;

            /** FileOptions phpClassPrefix. */
            public phpClassPrefix: string;

            /** FileOptions phpNamespace. */
            public phpNamespace: string;

            /** FileOptions phpMetadataNamespace. */
            public phpMetadataNamespace: string;

            /** FileOptions rubyPackage. */
            public rubyPackage: string;

            /** FileOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** FileOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new FileOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FileOptions instance
             */
            public static create(properties?: google.protobuf.IFileOptions): google.protobuf.FileOptions;

            /**
             * Encodes the specified FileOptions message. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages.
             * @param message FileOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFileOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FileOptions message, length delimited. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages.
             * @param message FileOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFileOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FileOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FileOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileOptions;

            /**
             * Decodes a FileOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FileOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileOptions;

            /**
             * Verifies a FileOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FileOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FileOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FileOptions;

            /**
             * Creates a plain object from a FileOptions message. Also converts values to other types if specified.
             * @param message FileOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FileOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FileOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FileOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FileOptions {

            /** OptimizeMode enum. */
            enum OptimizeMode {
                SPEED = 1,
                CODE_SIZE = 2,
                LITE_RUNTIME = 3
            }
        }

        /** Properties of a MessageOptions. */
        interface IMessageOptions {

            /** MessageOptions messageSetWireFormat */
            messageSetWireFormat?: (boolean|null);

            /** MessageOptions noStandardDescriptorAccessor */
            noStandardDescriptorAccessor?: (boolean|null);

            /** MessageOptions deprecated */
            deprecated?: (boolean|null);

            /** MessageOptions mapEntry */
            mapEntry?: (boolean|null);

            /** MessageOptions deprecatedLegacyJsonFieldConflicts */
            deprecatedLegacyJsonFieldConflicts?: (boolean|null);

            /** MessageOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** MessageOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** MessageOptions .google.api.resource */
            ".google.api.resource"?: (google.api.IResourceDescriptor|null);
        }

        /** Represents a MessageOptions. */
        class MessageOptions implements IMessageOptions {

            /**
             * Constructs a new MessageOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IMessageOptions);

            /** MessageOptions messageSetWireFormat. */
            public messageSetWireFormat: boolean;

            /** MessageOptions noStandardDescriptorAccessor. */
            public noStandardDescriptorAccessor: boolean;

            /** MessageOptions deprecated. */
            public deprecated: boolean;

            /** MessageOptions mapEntry. */
            public mapEntry: boolean;

            /** MessageOptions deprecatedLegacyJsonFieldConflicts. */
            public deprecatedLegacyJsonFieldConflicts: boolean;

            /** MessageOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** MessageOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new MessageOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MessageOptions instance
             */
            public static create(properties?: google.protobuf.IMessageOptions): google.protobuf.MessageOptions;

            /**
             * Encodes the specified MessageOptions message. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages.
             * @param message MessageOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IMessageOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MessageOptions message, length delimited. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages.
             * @param message MessageOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IMessageOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MessageOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MessageOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MessageOptions;

            /**
             * Decodes a MessageOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MessageOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MessageOptions;

            /**
             * Verifies a MessageOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MessageOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MessageOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.MessageOptions;

            /**
             * Creates a plain object from a MessageOptions message. Also converts values to other types if specified.
             * @param message MessageOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.MessageOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MessageOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for MessageOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a FieldOptions. */
        interface IFieldOptions {

            /** FieldOptions ctype */
            ctype?: (google.protobuf.FieldOptions.CType|keyof typeof google.protobuf.FieldOptions.CType|null);

            /** FieldOptions packed */
            packed?: (boolean|null);

            /** FieldOptions jstype */
            jstype?: (google.protobuf.FieldOptions.JSType|keyof typeof google.protobuf.FieldOptions.JSType|null);

            /** FieldOptions lazy */
            lazy?: (boolean|null);

            /** FieldOptions unverifiedLazy */
            unverifiedLazy?: (boolean|null);

            /** FieldOptions deprecated */
            deprecated?: (boolean|null);

            /** FieldOptions weak */
            weak?: (boolean|null);

            /** FieldOptions debugRedact */
            debugRedact?: (boolean|null);

            /** FieldOptions retention */
            retention?: (google.protobuf.FieldOptions.OptionRetention|keyof typeof google.protobuf.FieldOptions.OptionRetention|null);

            /** FieldOptions targets */
            targets?: (google.protobuf.FieldOptions.OptionTargetType[]|null);

            /** FieldOptions editionDefaults */
            editionDefaults?: (google.protobuf.FieldOptions.IEditionDefault[]|null);

            /** FieldOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** FieldOptions featureSupport */
            featureSupport?: (google.protobuf.FieldOptions.IFeatureSupport|null);

            /** FieldOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** FieldOptions .google.api.fieldBehavior */
            ".google.api.fieldBehavior"?: (google.api.FieldBehavior[]|null);

            /** FieldOptions .google.api.resourceReference */
            ".google.api.resourceReference"?: (google.api.IResourceReference|null);
        }

        /** Represents a FieldOptions. */
        class FieldOptions implements IFieldOptions {

            /**
             * Constructs a new FieldOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFieldOptions);

            /** FieldOptions ctype. */
            public ctype: (google.protobuf.FieldOptions.CType|keyof typeof google.protobuf.FieldOptions.CType);

            /** FieldOptions packed. */
            public packed: boolean;

            /** FieldOptions jstype. */
            public jstype: (google.protobuf.FieldOptions.JSType|keyof typeof google.protobuf.FieldOptions.JSType);

            /** FieldOptions lazy. */
            public lazy: boolean;

            /** FieldOptions unverifiedLazy. */
            public unverifiedLazy: boolean;

            /** FieldOptions deprecated. */
            public deprecated: boolean;

            /** FieldOptions weak. */
            public weak: boolean;

            /** FieldOptions debugRedact. */
            public debugRedact: boolean;

            /** FieldOptions retention. */
            public retention: (google.protobuf.FieldOptions.OptionRetention|keyof typeof google.protobuf.FieldOptions.OptionRetention);

            /** FieldOptions targets. */
            public targets: google.protobuf.FieldOptions.OptionTargetType[];

            /** FieldOptions editionDefaults. */
            public editionDefaults: google.protobuf.FieldOptions.IEditionDefault[];

            /** FieldOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** FieldOptions featureSupport. */
            public featureSupport?: (google.protobuf.FieldOptions.IFeatureSupport|null);

            /** FieldOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new FieldOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FieldOptions instance
             */
            public static create(properties?: google.protobuf.IFieldOptions): google.protobuf.FieldOptions;

            /**
             * Encodes the specified FieldOptions message. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages.
             * @param message FieldOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFieldOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FieldOptions message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages.
             * @param message FieldOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFieldOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FieldOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FieldOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldOptions;

            /**
             * Decodes a FieldOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FieldOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldOptions;

            /**
             * Verifies a FieldOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FieldOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FieldOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FieldOptions;

            /**
             * Creates a plain object from a FieldOptions message. Also converts values to other types if specified.
             * @param message FieldOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FieldOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FieldOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FieldOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FieldOptions {

            /** CType enum. */
            enum CType {
                STRING = 0,
                CORD = 1,
                STRING_PIECE = 2
            }

            /** JSType enum. */
            enum JSType {
                JS_NORMAL = 0,
                JS_STRING = 1,
                JS_NUMBER = 2
            }

            /** OptionRetention enum. */
            enum OptionRetention {
                RETENTION_UNKNOWN = 0,
                RETENTION_RUNTIME = 1,
                RETENTION_SOURCE = 2
            }

            /** OptionTargetType enum. */
            enum OptionTargetType {
                TARGET_TYPE_UNKNOWN = 0,
                TARGET_TYPE_FILE = 1,
                TARGET_TYPE_EXTENSION_RANGE = 2,
                TARGET_TYPE_MESSAGE = 3,
                TARGET_TYPE_FIELD = 4,
                TARGET_TYPE_ONEOF = 5,
                TARGET_TYPE_ENUM = 6,
                TARGET_TYPE_ENUM_ENTRY = 7,
                TARGET_TYPE_SERVICE = 8,
                TARGET_TYPE_METHOD = 9
            }

            /** Properties of an EditionDefault. */
            interface IEditionDefault {

                /** EditionDefault edition */
                edition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);

                /** EditionDefault value */
                value?: (string|null);
            }

            /** Represents an EditionDefault. */
            class EditionDefault implements IEditionDefault {

                /**
                 * Constructs a new EditionDefault.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.FieldOptions.IEditionDefault);

                /** EditionDefault edition. */
                public edition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

                /** EditionDefault value. */
                public value: string;

                /**
                 * Creates a new EditionDefault instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EditionDefault instance
                 */
                public static create(properties?: google.protobuf.FieldOptions.IEditionDefault): google.protobuf.FieldOptions.EditionDefault;

                /**
                 * Encodes the specified EditionDefault message. Does not implicitly {@link google.protobuf.FieldOptions.EditionDefault.verify|verify} messages.
                 * @param message EditionDefault message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.FieldOptions.IEditionDefault, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified EditionDefault message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.EditionDefault.verify|verify} messages.
                 * @param message EditionDefault message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.FieldOptions.IEditionDefault, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an EditionDefault message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EditionDefault
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldOptions.EditionDefault;

                /**
                 * Decodes an EditionDefault message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EditionDefault
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldOptions.EditionDefault;

                /**
                 * Verifies an EditionDefault message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an EditionDefault message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EditionDefault
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.FieldOptions.EditionDefault;

                /**
                 * Creates a plain object from an EditionDefault message. Also converts values to other types if specified.
                 * @param message EditionDefault
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.FieldOptions.EditionDefault, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EditionDefault to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for EditionDefault
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a FeatureSupport. */
            interface IFeatureSupport {

                /** FeatureSupport editionIntroduced */
                editionIntroduced?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);

                /** FeatureSupport editionDeprecated */
                editionDeprecated?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);

                /** FeatureSupport deprecationWarning */
                deprecationWarning?: (string|null);

                /** FeatureSupport editionRemoved */
                editionRemoved?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);

                /** FeatureSupport removalError */
                removalError?: (string|null);
            }

            /** Represents a FeatureSupport. */
            class FeatureSupport implements IFeatureSupport {

                /**
                 * Constructs a new FeatureSupport.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.FieldOptions.IFeatureSupport);

                /** FeatureSupport editionIntroduced. */
                public editionIntroduced: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

                /** FeatureSupport editionDeprecated. */
                public editionDeprecated: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

                /** FeatureSupport deprecationWarning. */
                public deprecationWarning: string;

                /** FeatureSupport editionRemoved. */
                public editionRemoved: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

                /** FeatureSupport removalError. */
                public removalError: string;

                /**
                 * Creates a new FeatureSupport instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns FeatureSupport instance
                 */
                public static create(properties?: google.protobuf.FieldOptions.IFeatureSupport): google.protobuf.FieldOptions.FeatureSupport;

                /**
                 * Encodes the specified FeatureSupport message. Does not implicitly {@link google.protobuf.FieldOptions.FeatureSupport.verify|verify} messages.
                 * @param message FeatureSupport message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.FieldOptions.IFeatureSupport, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified FeatureSupport message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.FeatureSupport.verify|verify} messages.
                 * @param message FeatureSupport message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.FieldOptions.IFeatureSupport, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a FeatureSupport message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns FeatureSupport
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldOptions.FeatureSupport;

                /**
                 * Decodes a FeatureSupport message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns FeatureSupport
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldOptions.FeatureSupport;

                /**
                 * Verifies a FeatureSupport message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a FeatureSupport message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns FeatureSupport
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.FieldOptions.FeatureSupport;

                /**
                 * Creates a plain object from a FeatureSupport message. Also converts values to other types if specified.
                 * @param message FeatureSupport
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.FieldOptions.FeatureSupport, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this FeatureSupport to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for FeatureSupport
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of an OneofOptions. */
        interface IOneofOptions {

            /** OneofOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** OneofOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents an OneofOptions. */
        class OneofOptions implements IOneofOptions {

            /**
             * Constructs a new OneofOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IOneofOptions);

            /** OneofOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** OneofOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new OneofOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns OneofOptions instance
             */
            public static create(properties?: google.protobuf.IOneofOptions): google.protobuf.OneofOptions;

            /**
             * Encodes the specified OneofOptions message. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages.
             * @param message OneofOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IOneofOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified OneofOptions message, length delimited. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages.
             * @param message OneofOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IOneofOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an OneofOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns OneofOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.OneofOptions;

            /**
             * Decodes an OneofOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns OneofOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.OneofOptions;

            /**
             * Verifies an OneofOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an OneofOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns OneofOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.OneofOptions;

            /**
             * Creates a plain object from an OneofOptions message. Also converts values to other types if specified.
             * @param message OneofOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.OneofOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this OneofOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for OneofOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an EnumOptions. */
        interface IEnumOptions {

            /** EnumOptions allowAlias */
            allowAlias?: (boolean|null);

            /** EnumOptions deprecated */
            deprecated?: (boolean|null);

            /** EnumOptions deprecatedLegacyJsonFieldConflicts */
            deprecatedLegacyJsonFieldConflicts?: (boolean|null);

            /** EnumOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** EnumOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents an EnumOptions. */
        class EnumOptions implements IEnumOptions {

            /**
             * Constructs a new EnumOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumOptions);

            /** EnumOptions allowAlias. */
            public allowAlias: boolean;

            /** EnumOptions deprecated. */
            public deprecated: boolean;

            /** EnumOptions deprecatedLegacyJsonFieldConflicts. */
            public deprecatedLegacyJsonFieldConflicts: boolean;

            /** EnumOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** EnumOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new EnumOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumOptions instance
             */
            public static create(properties?: google.protobuf.IEnumOptions): google.protobuf.EnumOptions;

            /**
             * Encodes the specified EnumOptions message. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages.
             * @param message EnumOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEnumOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified EnumOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages.
             * @param message EnumOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEnumOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an EnumOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumOptions;

            /**
             * Decodes an EnumOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumOptions;

            /**
             * Verifies an EnumOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an EnumOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumOptions;

            /**
             * Creates a plain object from an EnumOptions message. Also converts values to other types if specified.
             * @param message EnumOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for EnumOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an EnumValueOptions. */
        interface IEnumValueOptions {

            /** EnumValueOptions deprecated */
            deprecated?: (boolean|null);

            /** EnumValueOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** EnumValueOptions debugRedact */
            debugRedact?: (boolean|null);

            /** EnumValueOptions featureSupport */
            featureSupport?: (google.protobuf.FieldOptions.IFeatureSupport|null);

            /** EnumValueOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents an EnumValueOptions. */
        class EnumValueOptions implements IEnumValueOptions {

            /**
             * Constructs a new EnumValueOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumValueOptions);

            /** EnumValueOptions deprecated. */
            public deprecated: boolean;

            /** EnumValueOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** EnumValueOptions debugRedact. */
            public debugRedact: boolean;

            /** EnumValueOptions featureSupport. */
            public featureSupport?: (google.protobuf.FieldOptions.IFeatureSupport|null);

            /** EnumValueOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new EnumValueOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumValueOptions instance
             */
            public static create(properties?: google.protobuf.IEnumValueOptions): google.protobuf.EnumValueOptions;

            /**
             * Encodes the specified EnumValueOptions message. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages.
             * @param message EnumValueOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEnumValueOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified EnumValueOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages.
             * @param message EnumValueOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEnumValueOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an EnumValueOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumValueOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumValueOptions;

            /**
             * Decodes an EnumValueOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumValueOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumValueOptions;

            /**
             * Verifies an EnumValueOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an EnumValueOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumValueOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumValueOptions;

            /**
             * Creates a plain object from an EnumValueOptions message. Also converts values to other types if specified.
             * @param message EnumValueOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumValueOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumValueOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for EnumValueOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a ServiceOptions. */
        interface IServiceOptions {

            /** ServiceOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** ServiceOptions deprecated */
            deprecated?: (boolean|null);

            /** ServiceOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** ServiceOptions .google.api.defaultHost */
            ".google.api.defaultHost"?: (string|null);

            /** ServiceOptions .google.api.oauthScopes */
            ".google.api.oauthScopes"?: (string|null);

            /** ServiceOptions .google.api.apiVersion */
            ".google.api.apiVersion"?: (string|null);
        }

        /** Represents a ServiceOptions. */
        class ServiceOptions implements IServiceOptions {

            /**
             * Constructs a new ServiceOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IServiceOptions);

            /** ServiceOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** ServiceOptions deprecated. */
            public deprecated: boolean;

            /** ServiceOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new ServiceOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ServiceOptions instance
             */
            public static create(properties?: google.protobuf.IServiceOptions): google.protobuf.ServiceOptions;

            /**
             * Encodes the specified ServiceOptions message. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages.
             * @param message ServiceOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IServiceOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ServiceOptions message, length delimited. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages.
             * @param message ServiceOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IServiceOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ServiceOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ServiceOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ServiceOptions;

            /**
             * Decodes a ServiceOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ServiceOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ServiceOptions;

            /**
             * Verifies a ServiceOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ServiceOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ServiceOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.ServiceOptions;

            /**
             * Creates a plain object from a ServiceOptions message. Also converts values to other types if specified.
             * @param message ServiceOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.ServiceOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ServiceOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ServiceOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a MethodOptions. */
        interface IMethodOptions {

            /** MethodOptions deprecated */
            deprecated?: (boolean|null);

            /** MethodOptions idempotencyLevel */
            idempotencyLevel?: (google.protobuf.MethodOptions.IdempotencyLevel|keyof typeof google.protobuf.MethodOptions.IdempotencyLevel|null);

            /** MethodOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** MethodOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** MethodOptions .google.api.http */
            ".google.api.http"?: (google.api.IHttpRule|null);

            /** MethodOptions .google.api.methodSignature */
            ".google.api.methodSignature"?: (string[]|null);

            /** MethodOptions .google.longrunning.operationInfo */
            ".google.longrunning.operationInfo"?: (google.longrunning.IOperationInfo|null);
        }

        /** Represents a MethodOptions. */
        class MethodOptions implements IMethodOptions {

            /**
             * Constructs a new MethodOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IMethodOptions);

            /** MethodOptions deprecated. */
            public deprecated: boolean;

            /** MethodOptions idempotencyLevel. */
            public idempotencyLevel: (google.protobuf.MethodOptions.IdempotencyLevel|keyof typeof google.protobuf.MethodOptions.IdempotencyLevel);

            /** MethodOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** MethodOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new MethodOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MethodOptions instance
             */
            public static create(properties?: google.protobuf.IMethodOptions): google.protobuf.MethodOptions;

            /**
             * Encodes the specified MethodOptions message. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages.
             * @param message MethodOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IMethodOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MethodOptions message, length delimited. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages.
             * @param message MethodOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IMethodOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MethodOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MethodOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MethodOptions;

            /**
             * Decodes a MethodOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MethodOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MethodOptions;

            /**
             * Verifies a MethodOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MethodOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MethodOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.MethodOptions;

            /**
             * Creates a plain object from a MethodOptions message. Also converts values to other types if specified.
             * @param message MethodOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.MethodOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MethodOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for MethodOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace MethodOptions {

            /** IdempotencyLevel enum. */
            enum IdempotencyLevel {
                IDEMPOTENCY_UNKNOWN = 0,
                NO_SIDE_EFFECTS = 1,
                IDEMPOTENT = 2
            }
        }

        /** Properties of an UninterpretedOption. */
        interface IUninterpretedOption {

            /** UninterpretedOption name */
            name?: (google.protobuf.UninterpretedOption.INamePart[]|null);

            /** UninterpretedOption identifierValue */
            identifierValue?: (string|null);

            /** UninterpretedOption positiveIntValue */
            positiveIntValue?: (number|Long|string|null);

            /** UninterpretedOption negativeIntValue */
            negativeIntValue?: (number|Long|string|null);

            /** UninterpretedOption doubleValue */
            doubleValue?: (number|null);

            /** UninterpretedOption stringValue */
            stringValue?: (Uint8Array|Buffer|string|null);

            /** UninterpretedOption aggregateValue */
            aggregateValue?: (string|null);
        }

        /** Represents an UninterpretedOption. */
        class UninterpretedOption implements IUninterpretedOption {

            /**
             * Constructs a new UninterpretedOption.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IUninterpretedOption);

            /** UninterpretedOption name. */
            public name: google.protobuf.UninterpretedOption.INamePart[];

            /** UninterpretedOption identifierValue. */
            public identifierValue: string;

            /** UninterpretedOption positiveIntValue. */
            public positiveIntValue: (number|Long|string);

            /** UninterpretedOption negativeIntValue. */
            public negativeIntValue: (number|Long|string);

            /** UninterpretedOption doubleValue. */
            public doubleValue: number;

            /** UninterpretedOption stringValue. */
            public stringValue: (Uint8Array|Buffer|string);

            /** UninterpretedOption aggregateValue. */
            public aggregateValue: string;

            /**
             * Creates a new UninterpretedOption instance using the specified properties.
             * @param [properties] Properties to set
             * @returns UninterpretedOption instance
             */
            public static create(properties?: google.protobuf.IUninterpretedOption): google.protobuf.UninterpretedOption;

            /**
             * Encodes the specified UninterpretedOption message. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages.
             * @param message UninterpretedOption message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IUninterpretedOption, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified UninterpretedOption message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages.
             * @param message UninterpretedOption message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IUninterpretedOption, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an UninterpretedOption message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns UninterpretedOption
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.UninterpretedOption;

            /**
             * Decodes an UninterpretedOption message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns UninterpretedOption
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.UninterpretedOption;

            /**
             * Verifies an UninterpretedOption message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an UninterpretedOption message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns UninterpretedOption
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.UninterpretedOption;

            /**
             * Creates a plain object from an UninterpretedOption message. Also converts values to other types if specified.
             * @param message UninterpretedOption
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.UninterpretedOption, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this UninterpretedOption to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for UninterpretedOption
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace UninterpretedOption {

            /** Properties of a NamePart. */
            interface INamePart {

                /** NamePart namePart */
                namePart: string;

                /** NamePart isExtension */
                isExtension: boolean;
            }

            /** Represents a NamePart. */
            class NamePart implements INamePart {

                /**
                 * Constructs a new NamePart.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.UninterpretedOption.INamePart);

                /** NamePart namePart. */
                public namePart: string;

                /** NamePart isExtension. */
                public isExtension: boolean;

                /**
                 * Creates a new NamePart instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NamePart instance
                 */
                public static create(properties?: google.protobuf.UninterpretedOption.INamePart): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Encodes the specified NamePart message. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages.
                 * @param message NamePart message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.UninterpretedOption.INamePart, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NamePart message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages.
                 * @param message NamePart message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.UninterpretedOption.INamePart, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NamePart message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NamePart
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Decodes a NamePart message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NamePart
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Verifies a NamePart message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a NamePart message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NamePart
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Creates a plain object from a NamePart message. Also converts values to other types if specified.
                 * @param message NamePart
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.UninterpretedOption.NamePart, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NamePart to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NamePart
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of a FeatureSet. */
        interface IFeatureSet {

            /** FeatureSet fieldPresence */
            fieldPresence?: (google.protobuf.FeatureSet.FieldPresence|keyof typeof google.protobuf.FeatureSet.FieldPresence|null);

            /** FeatureSet enumType */
            enumType?: (google.protobuf.FeatureSet.EnumType|keyof typeof google.protobuf.FeatureSet.EnumType|null);

            /** FeatureSet repeatedFieldEncoding */
            repeatedFieldEncoding?: (google.protobuf.FeatureSet.RepeatedFieldEncoding|keyof typeof google.protobuf.FeatureSet.RepeatedFieldEncoding|null);

            /** FeatureSet utf8Validation */
            utf8Validation?: (google.protobuf.FeatureSet.Utf8Validation|keyof typeof google.protobuf.FeatureSet.Utf8Validation|null);

            /** FeatureSet messageEncoding */
            messageEncoding?: (google.protobuf.FeatureSet.MessageEncoding|keyof typeof google.protobuf.FeatureSet.MessageEncoding|null);

            /** FeatureSet jsonFormat */
            jsonFormat?: (google.protobuf.FeatureSet.JsonFormat|keyof typeof google.protobuf.FeatureSet.JsonFormat|null);

            /** FeatureSet enforceNamingStyle */
            enforceNamingStyle?: (google.protobuf.FeatureSet.EnforceNamingStyle|keyof typeof google.protobuf.FeatureSet.EnforceNamingStyle|null);

            /** FeatureSet defaultSymbolVisibility */
            defaultSymbolVisibility?: (google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility|keyof typeof google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility|null);

            /** FeatureSet enforceProtoLimits */
            enforceProtoLimits?: (google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits|keyof typeof google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits|null);
        }

        /** Represents a FeatureSet. */
        class FeatureSet implements IFeatureSet {

            /**
             * Constructs a new FeatureSet.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFeatureSet);

            /** FeatureSet fieldPresence. */
            public fieldPresence: (google.protobuf.FeatureSet.FieldPresence|keyof typeof google.protobuf.FeatureSet.FieldPresence);

            /** FeatureSet enumType. */
            public enumType: (google.protobuf.FeatureSet.EnumType|keyof typeof google.protobuf.FeatureSet.EnumType);

            /** FeatureSet repeatedFieldEncoding. */
            public repeatedFieldEncoding: (google.protobuf.FeatureSet.RepeatedFieldEncoding|keyof typeof google.protobuf.FeatureSet.RepeatedFieldEncoding);

            /** FeatureSet utf8Validation. */
            public utf8Validation: (google.protobuf.FeatureSet.Utf8Validation|keyof typeof google.protobuf.FeatureSet.Utf8Validation);

            /** FeatureSet messageEncoding. */
            public messageEncoding: (google.protobuf.FeatureSet.MessageEncoding|keyof typeof google.protobuf.FeatureSet.MessageEncoding);

            /** FeatureSet jsonFormat. */
            public jsonFormat: (google.protobuf.FeatureSet.JsonFormat|keyof typeof google.protobuf.FeatureSet.JsonFormat);

            /** FeatureSet enforceNamingStyle. */
            public enforceNamingStyle: (google.protobuf.FeatureSet.EnforceNamingStyle|keyof typeof google.protobuf.FeatureSet.EnforceNamingStyle);

            /** FeatureSet defaultSymbolVisibility. */
            public defaultSymbolVisibility: (google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility|keyof typeof google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility);

            /** FeatureSet enforceProtoLimits. */
            public enforceProtoLimits: (google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits|keyof typeof google.protobuf.FeatureSet.ProtoLimitsFeature.EnforceProtoLimits);

            /**
             * Creates a new FeatureSet instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FeatureSet instance
             */
            public static create(properties?: google.protobuf.IFeatureSet): google.protobuf.FeatureSet;

            /**
             * Encodes the specified FeatureSet message. Does not implicitly {@link google.protobuf.FeatureSet.verify|verify} messages.
             * @param message FeatureSet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFeatureSet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FeatureSet message, length delimited. Does not implicitly {@link google.protobuf.FeatureSet.verify|verify} messages.
             * @param message FeatureSet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFeatureSet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FeatureSet message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FeatureSet
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FeatureSet;

            /**
             * Decodes a FeatureSet message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FeatureSet
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FeatureSet;

            /**
             * Verifies a FeatureSet message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FeatureSet message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FeatureSet
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FeatureSet;

            /**
             * Creates a plain object from a FeatureSet message. Also converts values to other types if specified.
             * @param message FeatureSet
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FeatureSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FeatureSet to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FeatureSet
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FeatureSet {

            /** FieldPresence enum. */
            enum FieldPresence {
                FIELD_PRESENCE_UNKNOWN = 0,
                EXPLICIT = 1,
                IMPLICIT = 2,
                LEGACY_REQUIRED = 3
            }

            /** EnumType enum. */
            enum EnumType {
                ENUM_TYPE_UNKNOWN = 0,
                OPEN = 1,
                CLOSED = 2
            }

            /** RepeatedFieldEncoding enum. */
            enum RepeatedFieldEncoding {
                REPEATED_FIELD_ENCODING_UNKNOWN = 0,
                PACKED = 1,
                EXPANDED = 2
            }

            /** Utf8Validation enum. */
            enum Utf8Validation {
                UTF8_VALIDATION_UNKNOWN = 0,
                VERIFY = 2,
                NONE = 3
            }

            /** MessageEncoding enum. */
            enum MessageEncoding {
                MESSAGE_ENCODING_UNKNOWN = 0,
                LENGTH_PREFIXED = 1,
                DELIMITED = 2
            }

            /** JsonFormat enum. */
            enum JsonFormat {
                JSON_FORMAT_UNKNOWN = 0,
                ALLOW = 1,
                LEGACY_BEST_EFFORT = 2
            }

            /** EnforceNamingStyle enum. */
            enum EnforceNamingStyle {
                ENFORCE_NAMING_STYLE_UNKNOWN = 0,
                STYLE2024 = 1,
                STYLE_LEGACY = 2,
                STYLE2026 = 3
            }

            /** Properties of a VisibilityFeature. */
            interface IVisibilityFeature {
            }

            /** Represents a VisibilityFeature. */
            class VisibilityFeature implements IVisibilityFeature {

                /**
                 * Constructs a new VisibilityFeature.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.FeatureSet.IVisibilityFeature);

                /**
                 * Creates a new VisibilityFeature instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns VisibilityFeature instance
                 */
                public static create(properties?: google.protobuf.FeatureSet.IVisibilityFeature): google.protobuf.FeatureSet.VisibilityFeature;

                /**
                 * Encodes the specified VisibilityFeature message. Does not implicitly {@link google.protobuf.FeatureSet.VisibilityFeature.verify|verify} messages.
                 * @param message VisibilityFeature message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.FeatureSet.IVisibilityFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified VisibilityFeature message, length delimited. Does not implicitly {@link google.protobuf.FeatureSet.VisibilityFeature.verify|verify} messages.
                 * @param message VisibilityFeature message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.FeatureSet.IVisibilityFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a VisibilityFeature message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns VisibilityFeature
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FeatureSet.VisibilityFeature;

                /**
                 * Decodes a VisibilityFeature message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns VisibilityFeature
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FeatureSet.VisibilityFeature;

                /**
                 * Verifies a VisibilityFeature message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a VisibilityFeature message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns VisibilityFeature
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.FeatureSet.VisibilityFeature;

                /**
                 * Creates a plain object from a VisibilityFeature message. Also converts values to other types if specified.
                 * @param message VisibilityFeature
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.FeatureSet.VisibilityFeature, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this VisibilityFeature to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for VisibilityFeature
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace VisibilityFeature {

                /** DefaultSymbolVisibility enum. */
                enum DefaultSymbolVisibility {
                    DEFAULT_SYMBOL_VISIBILITY_UNKNOWN = 0,
                    EXPORT_ALL = 1,
                    EXPORT_TOP_LEVEL = 2,
                    LOCAL_ALL = 3,
                    STRICT = 4
                }
            }

            /** Properties of a ProtoLimitsFeature. */
            interface IProtoLimitsFeature {
            }

            /** Represents a ProtoLimitsFeature. */
            class ProtoLimitsFeature implements IProtoLimitsFeature {

                /**
                 * Constructs a new ProtoLimitsFeature.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.FeatureSet.IProtoLimitsFeature);

                /**
                 * Creates a new ProtoLimitsFeature instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ProtoLimitsFeature instance
                 */
                public static create(properties?: google.protobuf.FeatureSet.IProtoLimitsFeature): google.protobuf.FeatureSet.ProtoLimitsFeature;

                /**
                 * Encodes the specified ProtoLimitsFeature message. Does not implicitly {@link google.protobuf.FeatureSet.ProtoLimitsFeature.verify|verify} messages.
                 * @param message ProtoLimitsFeature message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.FeatureSet.IProtoLimitsFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ProtoLimitsFeature message, length delimited. Does not implicitly {@link google.protobuf.FeatureSet.ProtoLimitsFeature.verify|verify} messages.
                 * @param message ProtoLimitsFeature message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.FeatureSet.IProtoLimitsFeature, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ProtoLimitsFeature message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ProtoLimitsFeature
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FeatureSet.ProtoLimitsFeature;

                /**
                 * Decodes a ProtoLimitsFeature message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ProtoLimitsFeature
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FeatureSet.ProtoLimitsFeature;

                /**
                 * Verifies a ProtoLimitsFeature message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ProtoLimitsFeature message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ProtoLimitsFeature
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.FeatureSet.ProtoLimitsFeature;

                /**
                 * Creates a plain object from a ProtoLimitsFeature message. Also converts values to other types if specified.
                 * @param message ProtoLimitsFeature
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.FeatureSet.ProtoLimitsFeature, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ProtoLimitsFeature to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ProtoLimitsFeature
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace ProtoLimitsFeature {

                /** EnforceProtoLimits enum. */
                enum EnforceProtoLimits {
                    PROTO_LIMITS_UNKNOWN = 0,
                    LEGACY_NO_EXPLICIT_LIMITS = 1,
                    PROTO_LIMITS2026 = 2
                }
            }
        }

        /** Properties of a FeatureSetDefaults. */
        interface IFeatureSetDefaults {

            /** FeatureSetDefaults defaults */
            defaults?: (google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault[]|null);

            /** FeatureSetDefaults minimumEdition */
            minimumEdition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);

            /** FeatureSetDefaults maximumEdition */
            maximumEdition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);
        }

        /** Represents a FeatureSetDefaults. */
        class FeatureSetDefaults implements IFeatureSetDefaults {

            /**
             * Constructs a new FeatureSetDefaults.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFeatureSetDefaults);

            /** FeatureSetDefaults defaults. */
            public defaults: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault[];

            /** FeatureSetDefaults minimumEdition. */
            public minimumEdition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

            /** FeatureSetDefaults maximumEdition. */
            public maximumEdition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

            /**
             * Creates a new FeatureSetDefaults instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FeatureSetDefaults instance
             */
            public static create(properties?: google.protobuf.IFeatureSetDefaults): google.protobuf.FeatureSetDefaults;

            /**
             * Encodes the specified FeatureSetDefaults message. Does not implicitly {@link google.protobuf.FeatureSetDefaults.verify|verify} messages.
             * @param message FeatureSetDefaults message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFeatureSetDefaults, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FeatureSetDefaults message, length delimited. Does not implicitly {@link google.protobuf.FeatureSetDefaults.verify|verify} messages.
             * @param message FeatureSetDefaults message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFeatureSetDefaults, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FeatureSetDefaults message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FeatureSetDefaults
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FeatureSetDefaults;

            /**
             * Decodes a FeatureSetDefaults message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FeatureSetDefaults
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FeatureSetDefaults;

            /**
             * Verifies a FeatureSetDefaults message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FeatureSetDefaults message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FeatureSetDefaults
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FeatureSetDefaults;

            /**
             * Creates a plain object from a FeatureSetDefaults message. Also converts values to other types if specified.
             * @param message FeatureSetDefaults
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FeatureSetDefaults, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FeatureSetDefaults to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FeatureSetDefaults
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FeatureSetDefaults {

            /** Properties of a FeatureSetEditionDefault. */
            interface IFeatureSetEditionDefault {

                /** FeatureSetEditionDefault edition */
                edition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);

                /** FeatureSetEditionDefault overridableFeatures */
                overridableFeatures?: (google.protobuf.IFeatureSet|null);

                /** FeatureSetEditionDefault fixedFeatures */
                fixedFeatures?: (google.protobuf.IFeatureSet|null);
            }

            /** Represents a FeatureSetEditionDefault. */
            class FeatureSetEditionDefault implements IFeatureSetEditionDefault {

                /**
                 * Constructs a new FeatureSetEditionDefault.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault);

                /** FeatureSetEditionDefault edition. */
                public edition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

                /** FeatureSetEditionDefault overridableFeatures. */
                public overridableFeatures?: (google.protobuf.IFeatureSet|null);

                /** FeatureSetEditionDefault fixedFeatures. */
                public fixedFeatures?: (google.protobuf.IFeatureSet|null);

                /**
                 * Creates a new FeatureSetEditionDefault instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns FeatureSetEditionDefault instance
                 */
                public static create(properties?: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault): google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;

                /**
                 * Encodes the specified FeatureSetEditionDefault message. Does not implicitly {@link google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.verify|verify} messages.
                 * @param message FeatureSetEditionDefault message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified FeatureSetEditionDefault message, length delimited. Does not implicitly {@link google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.verify|verify} messages.
                 * @param message FeatureSetEditionDefault message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a FeatureSetEditionDefault message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns FeatureSetEditionDefault
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;

                /**
                 * Decodes a FeatureSetEditionDefault message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns FeatureSetEditionDefault
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;

                /**
                 * Verifies a FeatureSetEditionDefault message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a FeatureSetEditionDefault message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns FeatureSetEditionDefault
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;

                /**
                 * Creates a plain object from a FeatureSetEditionDefault message. Also converts values to other types if specified.
                 * @param message FeatureSetEditionDefault
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this FeatureSetEditionDefault to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for FeatureSetEditionDefault
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of a SourceCodeInfo. */
        interface ISourceCodeInfo {

            /** SourceCodeInfo location */
            location?: (google.protobuf.SourceCodeInfo.ILocation[]|null);
        }

        /** Represents a SourceCodeInfo. */
        class SourceCodeInfo implements ISourceCodeInfo {

            /**
             * Constructs a new SourceCodeInfo.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.ISourceCodeInfo);

            /** SourceCodeInfo location. */
            public location: google.protobuf.SourceCodeInfo.ILocation[];

            /**
             * Creates a new SourceCodeInfo instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SourceCodeInfo instance
             */
            public static create(properties?: google.protobuf.ISourceCodeInfo): google.protobuf.SourceCodeInfo;

            /**
             * Encodes the specified SourceCodeInfo message. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages.
             * @param message SourceCodeInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.ISourceCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified SourceCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages.
             * @param message SourceCodeInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.ISourceCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a SourceCodeInfo message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SourceCodeInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.SourceCodeInfo;

            /**
             * Decodes a SourceCodeInfo message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SourceCodeInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.SourceCodeInfo;

            /**
             * Verifies a SourceCodeInfo message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a SourceCodeInfo message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SourceCodeInfo
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.SourceCodeInfo;

            /**
             * Creates a plain object from a SourceCodeInfo message. Also converts values to other types if specified.
             * @param message SourceCodeInfo
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.SourceCodeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SourceCodeInfo to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for SourceCodeInfo
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace SourceCodeInfo {

            /** Properties of a Location. */
            interface ILocation {

                /** Location path */
                path?: (number[]|null);

                /** Location span */
                span?: (number[]|null);

                /** Location leadingComments */
                leadingComments?: (string|null);

                /** Location trailingComments */
                trailingComments?: (string|null);

                /** Location leadingDetachedComments */
                leadingDetachedComments?: (string[]|null);
            }

            /** Represents a Location. */
            class Location implements ILocation {

                /**
                 * Constructs a new Location.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.SourceCodeInfo.ILocation);

                /** Location path. */
                public path: number[];

                /** Location span. */
                public span: number[];

                /** Location leadingComments. */
                public leadingComments: string;

                /** Location trailingComments. */
                public trailingComments: string;

                /** Location leadingDetachedComments. */
                public leadingDetachedComments: string[];

                /**
                 * Creates a new Location instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Location instance
                 */
                public static create(properties?: google.protobuf.SourceCodeInfo.ILocation): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Encodes the specified Location message. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages.
                 * @param message Location message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.SourceCodeInfo.ILocation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Location message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages.
                 * @param message Location message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.SourceCodeInfo.ILocation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a Location message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Location
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Decodes a Location message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Location
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Verifies a Location message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a Location message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Location
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Creates a plain object from a Location message. Also converts values to other types if specified.
                 * @param message Location
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.SourceCodeInfo.Location, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Location to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Location
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of a GeneratedCodeInfo. */
        interface IGeneratedCodeInfo {

            /** GeneratedCodeInfo annotation */
            annotation?: (google.protobuf.GeneratedCodeInfo.IAnnotation[]|null);
        }

        /** Represents a GeneratedCodeInfo. */
        class GeneratedCodeInfo implements IGeneratedCodeInfo {

            /**
             * Constructs a new GeneratedCodeInfo.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IGeneratedCodeInfo);

            /** GeneratedCodeInfo annotation. */
            public annotation: google.protobuf.GeneratedCodeInfo.IAnnotation[];

            /**
             * Creates a new GeneratedCodeInfo instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GeneratedCodeInfo instance
             */
            public static create(properties?: google.protobuf.IGeneratedCodeInfo): google.protobuf.GeneratedCodeInfo;

            /**
             * Encodes the specified GeneratedCodeInfo message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages.
             * @param message GeneratedCodeInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IGeneratedCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified GeneratedCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages.
             * @param message GeneratedCodeInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IGeneratedCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a GeneratedCodeInfo message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns GeneratedCodeInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.GeneratedCodeInfo;

            /**
             * Decodes a GeneratedCodeInfo message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns GeneratedCodeInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.GeneratedCodeInfo;

            /**
             * Verifies a GeneratedCodeInfo message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a GeneratedCodeInfo message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns GeneratedCodeInfo
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.GeneratedCodeInfo;

            /**
             * Creates a plain object from a GeneratedCodeInfo message. Also converts values to other types if specified.
             * @param message GeneratedCodeInfo
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.GeneratedCodeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this GeneratedCodeInfo to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for GeneratedCodeInfo
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace GeneratedCodeInfo {

            /** Properties of an Annotation. */
            interface IAnnotation {

                /** Annotation path */
                path?: (number[]|null);

                /** Annotation sourceFile */
                sourceFile?: (string|null);

                /** Annotation begin */
                begin?: (number|null);

                /** Annotation end */
                end?: (number|null);

                /** Annotation semantic */
                semantic?: (google.protobuf.GeneratedCodeInfo.Annotation.Semantic|keyof typeof google.protobuf.GeneratedCodeInfo.Annotation.Semantic|null);
            }

            /** Represents an Annotation. */
            class Annotation implements IAnnotation {

                /**
                 * Constructs a new Annotation.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.GeneratedCodeInfo.IAnnotation);

                /** Annotation path. */
                public path: number[];

                /** Annotation sourceFile. */
                public sourceFile: string;

                /** Annotation begin. */
                public begin: number;

                /** Annotation end. */
                public end: number;

                /** Annotation semantic. */
                public semantic: (google.protobuf.GeneratedCodeInfo.Annotation.Semantic|keyof typeof google.protobuf.GeneratedCodeInfo.Annotation.Semantic);

                /**
                 * Creates a new Annotation instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Annotation instance
                 */
                public static create(properties?: google.protobuf.GeneratedCodeInfo.IAnnotation): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Encodes the specified Annotation message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages.
                 * @param message Annotation message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.GeneratedCodeInfo.IAnnotation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Annotation message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages.
                 * @param message Annotation message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.GeneratedCodeInfo.IAnnotation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an Annotation message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Annotation
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Decodes an Annotation message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Annotation
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Verifies an Annotation message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an Annotation message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Annotation
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Creates a plain object from an Annotation message. Also converts values to other types if specified.
                 * @param message Annotation
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.GeneratedCodeInfo.Annotation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Annotation to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Annotation
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace Annotation {

                /** Semantic enum. */
                enum Semantic {
                    NONE = 0,
                    SET = 1,
                    ALIAS = 2
                }
            }
        }

        /** SymbolVisibility enum. */
        enum SymbolVisibility {
            VISIBILITY_UNSET = 0,
            VISIBILITY_LOCAL = 1,
            VISIBILITY_EXPORT = 2
        }

        /** Properties of a Duration. */
        interface IDuration {

            /** Duration seconds */
            seconds?: (number|Long|string|null);

            /** Duration nanos */
            nanos?: (number|null);
        }

        /** Represents a Duration. */
        class Duration implements IDuration {

            /**
             * Constructs a new Duration.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IDuration);

            /** Duration seconds. */
            public seconds: (number|Long|string);

            /** Duration nanos. */
            public nanos: number;

            /**
             * Creates a new Duration instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Duration instance
             */
            public static create(properties?: google.protobuf.IDuration): google.protobuf.Duration;

            /**
             * Encodes the specified Duration message. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages.
             * @param message Duration message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IDuration, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Duration message, length delimited. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages.
             * @param message Duration message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IDuration, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Duration message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Duration
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Duration;

            /**
             * Decodes a Duration message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Duration
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Duration;

            /**
             * Verifies a Duration message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Duration message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Duration
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Duration;

            /**
             * Creates a plain object from a Duration message. Also converts values to other types if specified.
             * @param message Duration
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Duration, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Duration to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Duration
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a Timestamp. */
        interface ITimestamp {

            /** Timestamp seconds */
            seconds?: (number|Long|string|null);

            /** Timestamp nanos */
            nanos?: (number|null);
        }

        /** Represents a Timestamp. */
        class Timestamp implements ITimestamp {

            /**
             * Constructs a new Timestamp.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.ITimestamp);

            /** Timestamp seconds. */
            public seconds: (number|Long|string);

            /** Timestamp nanos. */
            public nanos: number;

            /**
             * Creates a new Timestamp instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Timestamp instance
             */
            public static create(properties?: google.protobuf.ITimestamp): google.protobuf.Timestamp;

            /**
             * Encodes the specified Timestamp message. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.
             * @param message Timestamp message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.ITimestamp, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Timestamp message, length delimited. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.
             * @param message Timestamp message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.ITimestamp, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Timestamp message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Timestamp
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Timestamp;

            /**
             * Decodes a Timestamp message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Timestamp
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Timestamp;

            /**
             * Verifies a Timestamp message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Timestamp message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Timestamp
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Timestamp;

            /**
             * Creates a plain object from a Timestamp message. Also converts values to other types if specified.
             * @param message Timestamp
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Timestamp, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Timestamp to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Timestamp
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an Any. */
        interface IAny {

            /** Any type_url */
            type_url?: (string|null);

            /** Any value */
            value?: (Uint8Array|Buffer|string|null);
        }

        /** Represents an Any. */
        class Any implements IAny {

            /**
             * Constructs a new Any.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IAny);

            /** Any type_url. */
            public type_url: string;

            /** Any value. */
            public value: (Uint8Array|Buffer|string);

            /**
             * Creates a new Any instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Any instance
             */
            public static create(properties?: google.protobuf.IAny): google.protobuf.Any;

            /**
             * Encodes the specified Any message. Does not implicitly {@link google.protobuf.Any.verify|verify} messages.
             * @param message Any message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IAny, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Any message, length delimited. Does not implicitly {@link google.protobuf.Any.verify|verify} messages.
             * @param message Any message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IAny, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an Any message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Any
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Any;

            /**
             * Decodes an Any message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Any
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Any;

            /**
             * Verifies an Any message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an Any message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Any
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Any;

            /**
             * Creates a plain object from an Any message. Also converts values to other types if specified.
             * @param message Any
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Any, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Any to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Any
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an Empty. */
        interface IEmpty {
        }

        /** Represents an Empty. */
        class Empty implements IEmpty {

            /**
             * Constructs a new Empty.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEmpty);

            /**
             * Creates a new Empty instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Empty instance
             */
            public static create(properties?: google.protobuf.IEmpty): google.protobuf.Empty;

            /**
             * Encodes the specified Empty message. Does not implicitly {@link google.protobuf.Empty.verify|verify} messages.
             * @param message Empty message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEmpty, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Empty message, length delimited. Does not implicitly {@link google.protobuf.Empty.verify|verify} messages.
             * @param message Empty message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEmpty, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an Empty message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Empty
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Empty;

            /**
             * Decodes an Empty message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Empty
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Empty;

            /**
             * Verifies an Empty message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an Empty message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Empty
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Empty;

            /**
             * Creates a plain object from an Empty message. Also converts values to other types if specified.
             * @param message Empty
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Empty, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Empty to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Empty
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a FieldMask. */
        interface IFieldMask {

            /** FieldMask paths */
            paths?: (string[]|null);
        }

        /** Represents a FieldMask. */
        class FieldMask implements IFieldMask {

            /**
             * Constructs a new FieldMask.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFieldMask);

            /** FieldMask paths. */
            public paths: string[];

            /**
             * Creates a new FieldMask instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FieldMask instance
             */
            public static create(properties?: google.protobuf.IFieldMask): google.protobuf.FieldMask;

            /**
             * Encodes the specified FieldMask message. Does not implicitly {@link google.protobuf.FieldMask.verify|verify} messages.
             * @param message FieldMask message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFieldMask, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FieldMask message, length delimited. Does not implicitly {@link google.protobuf.FieldMask.verify|verify} messages.
             * @param message FieldMask message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFieldMask, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FieldMask message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FieldMask
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldMask;

            /**
             * Decodes a FieldMask message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FieldMask
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldMask;

            /**
             * Verifies a FieldMask message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FieldMask message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FieldMask
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FieldMask;

            /**
             * Creates a plain object from a FieldMask message. Also converts values to other types if specified.
             * @param message FieldMask
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FieldMask, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FieldMask to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FieldMask
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }

    /** Namespace longrunning. */
    namespace longrunning {

        /** Represents an Operations */
        class Operations extends $protobuf.rpc.Service {

            /**
             * Constructs a new Operations service.
             * @param rpcImpl RPC implementation
             * @param [requestDelimited=false] Whether requests are length-delimited
             * @param [responseDelimited=false] Whether responses are length-delimited
             */
            constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

            /**
             * Creates new Operations service using the specified rpc implementation.
             * @param rpcImpl RPC implementation
             * @param [requestDelimited=false] Whether requests are length-delimited
             * @param [responseDelimited=false] Whether responses are length-delimited
             * @returns RPC service. Useful where requests and/or responses are streamed.
             */
            public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): Operations;

            /**
             * Calls ListOperations.
             * @param request ListOperationsRequest message or plain object
             * @param callback Node-style callback called with the error, if any, and ListOperationsResponse
             */
            public listOperations(request: google.longrunning.IListOperationsRequest, callback: google.longrunning.Operations.ListOperationsCallback): void;

            /**
             * Calls ListOperations.
             * @param request ListOperationsRequest message or plain object
             * @returns Promise
             */
            public listOperations(request: google.longrunning.IListOperationsRequest): Promise<google.longrunning.ListOperationsResponse>;

            /**
             * Calls GetOperation.
             * @param request GetOperationRequest message or plain object
             * @param callback Node-style callback called with the error, if any, and Operation
             */
            public getOperation(request: google.longrunning.IGetOperationRequest, callback: google.longrunning.Operations.GetOperationCallback): void;

            /**
             * Calls GetOperation.
             * @param request GetOperationRequest message or plain object
             * @returns Promise
             */
            public getOperation(request: google.longrunning.IGetOperationRequest): Promise<google.longrunning.Operation>;

            /**
             * Calls DeleteOperation.
             * @param request DeleteOperationRequest message or plain object
             * @param callback Node-style callback called with the error, if any, and Empty
             */
            public deleteOperation(request: google.longrunning.IDeleteOperationRequest, callback: google.longrunning.Operations.DeleteOperationCallback): void;

            /**
             * Calls DeleteOperation.
             * @param request DeleteOperationRequest message or plain object
             * @returns Promise
             */
            public deleteOperation(request: google.longrunning.IDeleteOperationRequest): Promise<google.protobuf.Empty>;

            /**
             * Calls CancelOperation.
             * @param request CancelOperationRequest message or plain object
             * @param callback Node-style callback called with the error, if any, and Empty
             */
            public cancelOperation(request: google.longrunning.ICancelOperationRequest, callback: google.longrunning.Operations.CancelOperationCallback): void;

            /**
             * Calls CancelOperation.
             * @param request CancelOperationRequest message or plain object
             * @returns Promise
             */
            public cancelOperation(request: google.longrunning.ICancelOperationRequest): Promise<google.protobuf.Empty>;

            /**
             * Calls WaitOperation.
             * @param request WaitOperationRequest message or plain object
             * @param callback Node-style callback called with the error, if any, and Operation
             */
            public waitOperation(request: google.longrunning.IWaitOperationRequest, callback: google.longrunning.Operations.WaitOperationCallback): void;

            /**
             * Calls WaitOperation.
             * @param request WaitOperationRequest message or plain object
             * @returns Promise
             */
            public waitOperation(request: google.longrunning.IWaitOperationRequest): Promise<google.longrunning.Operation>;
        }

        namespace Operations {

            /**
             * Callback as used by {@link google.longrunning.Operations|listOperations}.
             * @param error Error, if any
             * @param [response] ListOperationsResponse
             */
            type ListOperationsCallback = (error: (Error|null), response?: google.longrunning.ListOperationsResponse) => void;

            /**
             * Callback as used by {@link google.longrunning.Operations|getOperation}.
             * @param error Error, if any
             * @param [response] Operation
             */
            type GetOperationCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

            /**
             * Callback as used by {@link google.longrunning.Operations|deleteOperation}.
             * @param error Error, if any
             * @param [response] Empty
             */
            type DeleteOperationCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

            /**
             * Callback as used by {@link google.longrunning.Operations|cancelOperation}.
             * @param error Error, if any
             * @param [response] Empty
             */
            type CancelOperationCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

            /**
             * Callback as used by {@link google.longrunning.Operations|waitOperation}.
             * @param error Error, if any
             * @param [response] Operation
             */
            type WaitOperationCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;
        }

        /** Properties of an Operation. */
        interface IOperation {

            /** Operation name */
            name?: (string|null);

            /** Operation metadata */
            metadata?: (google.protobuf.IAny|null);

            /** Operation done */
            done?: (boolean|null);

            /** Operation error */
            error?: (google.rpc.IStatus|null);

            /** Operation response */
            response?: (google.protobuf.IAny|null);
        }

        /** Represents an Operation. */
        class Operation implements IOperation {

            /**
             * Constructs a new Operation.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.longrunning.IOperation);

            /** Operation name. */
            public name: string;

            /** Operation metadata. */
            public metadata?: (google.protobuf.IAny|null);

            /** Operation done. */
            public done: boolean;

            /** Operation error. */
            public error?: (google.rpc.IStatus|null);

            /** Operation response. */
            public response?: (google.protobuf.IAny|null);

            /** Operation result. */
            public result?: ("error"|"response");

            /**
             * Creates a new Operation instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Operation instance
             */
            public static create(properties?: google.longrunning.IOperation): google.longrunning.Operation;

            /**
             * Encodes the specified Operation message. Does not implicitly {@link google.longrunning.Operation.verify|verify} messages.
             * @param message Operation message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.longrunning.IOperation, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Operation message, length delimited. Does not implicitly {@link google.longrunning.Operation.verify|verify} messages.
             * @param message Operation message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.longrunning.IOperation, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an Operation message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Operation
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.longrunning.Operation;

            /**
             * Decodes an Operation message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Operation
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.longrunning.Operation;

            /**
             * Verifies an Operation message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an Operation message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Operation
             */
            public static fromObject(object: { [k: string]: any }): google.longrunning.Operation;

            /**
             * Creates a plain object from an Operation message. Also converts values to other types if specified.
             * @param message Operation
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.longrunning.Operation, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Operation to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Operation
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a GetOperationRequest. */
        interface IGetOperationRequest {

            /** GetOperationRequest name */
            name?: (string|null);
        }

        /** Represents a GetOperationRequest. */
        class GetOperationRequest implements IGetOperationRequest {

            /**
             * Constructs a new GetOperationRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.longrunning.IGetOperationRequest);

            /** GetOperationRequest name. */
            public name: string;

            /**
             * Creates a new GetOperationRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GetOperationRequest instance
             */
            public static create(properties?: google.longrunning.IGetOperationRequest): google.longrunning.GetOperationRequest;

            /**
             * Encodes the specified GetOperationRequest message. Does not implicitly {@link google.longrunning.GetOperationRequest.verify|verify} messages.
             * @param message GetOperationRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.longrunning.IGetOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified GetOperationRequest message, length delimited. Does not implicitly {@link google.longrunning.GetOperationRequest.verify|verify} messages.
             * @param message GetOperationRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.longrunning.IGetOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a GetOperationRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns GetOperationRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.longrunning.GetOperationRequest;

            /**
             * Decodes a GetOperationRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns GetOperationRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.longrunning.GetOperationRequest;

            /**
             * Verifies a GetOperationRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a GetOperationRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns GetOperationRequest
             */
            public static fromObject(object: { [k: string]: any }): google.longrunning.GetOperationRequest;

            /**
             * Creates a plain object from a GetOperationRequest message. Also converts values to other types if specified.
             * @param message GetOperationRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.longrunning.GetOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this GetOperationRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for GetOperationRequest
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a ListOperationsRequest. */
        interface IListOperationsRequest {

            /** ListOperationsRequest name */
            name?: (string|null);

            /** ListOperationsRequest filter */
            filter?: (string|null);

            /** ListOperationsRequest pageSize */
            pageSize?: (number|null);

            /** ListOperationsRequest pageToken */
            pageToken?: (string|null);

            /** ListOperationsRequest returnPartialSuccess */
            returnPartialSuccess?: (boolean|null);
        }

        /** Represents a ListOperationsRequest. */
        class ListOperationsRequest implements IListOperationsRequest {

            /**
             * Constructs a new ListOperationsRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.longrunning.IListOperationsRequest);

            /** ListOperationsRequest name. */
            public name: string;

            /** ListOperationsRequest filter. */
            public filter: string;

            /** ListOperationsRequest pageSize. */
            public pageSize: number;

            /** ListOperationsRequest pageToken. */
            public pageToken: string;

            /** ListOperationsRequest returnPartialSuccess. */
            public returnPartialSuccess: boolean;

            /**
             * Creates a new ListOperationsRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListOperationsRequest instance
             */
            public static create(properties?: google.longrunning.IListOperationsRequest): google.longrunning.ListOperationsRequest;

            /**
             * Encodes the specified ListOperationsRequest message. Does not implicitly {@link google.longrunning.ListOperationsRequest.verify|verify} messages.
             * @param message ListOperationsRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.longrunning.IListOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ListOperationsRequest message, length delimited. Does not implicitly {@link google.longrunning.ListOperationsRequest.verify|verify} messages.
             * @param message ListOperationsRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.longrunning.IListOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ListOperationsRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ListOperationsRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.longrunning.ListOperationsRequest;

            /**
             * Decodes a ListOperationsRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ListOperationsRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.longrunning.ListOperationsRequest;

            /**
             * Verifies a ListOperationsRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ListOperationsRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ListOperationsRequest
             */
            public static fromObject(object: { [k: string]: any }): google.longrunning.ListOperationsRequest;

            /**
             * Creates a plain object from a ListOperationsRequest message. Also converts values to other types if specified.
             * @param message ListOperationsRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.longrunning.ListOperationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ListOperationsRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ListOperationsRequest
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a ListOperationsResponse. */
        interface IListOperationsResponse {

            /** ListOperationsResponse operations */
            operations?: (google.longrunning.IOperation[]|null);

            /** ListOperationsResponse nextPageToken */
            nextPageToken?: (string|null);

            /** ListOperationsResponse unreachable */
            unreachable?: (string[]|null);
        }

        /** Represents a ListOperationsResponse. */
        class ListOperationsResponse implements IListOperationsResponse {

            /**
             * Constructs a new ListOperationsResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.longrunning.IListOperationsResponse);

            /** ListOperationsResponse operations. */
            public operations: google.longrunning.IOperation[];

            /** ListOperationsResponse nextPageToken. */
            public nextPageToken: string;

            /** ListOperationsResponse unreachable. */
            public unreachable: string[];

            /**
             * Creates a new ListOperationsResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListOperationsResponse instance
             */
            public static create(properties?: google.longrunning.IListOperationsResponse): google.longrunning.ListOperationsResponse;

            /**
             * Encodes the specified ListOperationsResponse message. Does not implicitly {@link google.longrunning.ListOperationsResponse.verify|verify} messages.
             * @param message ListOperationsResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.longrunning.IListOperationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ListOperationsResponse message, length delimited. Does not implicitly {@link google.longrunning.ListOperationsResponse.verify|verify} messages.
             * @param message ListOperationsResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.longrunning.IListOperationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ListOperationsResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ListOperationsResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.longrunning.ListOperationsResponse;

            /**
             * Decodes a ListOperationsResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ListOperationsResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.longrunning.ListOperationsResponse;

            /**
             * Verifies a ListOperationsResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ListOperationsResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ListOperationsResponse
             */
            public static fromObject(object: { [k: string]: any }): google.longrunning.ListOperationsResponse;

            /**
             * Creates a plain object from a ListOperationsResponse message. Also converts values to other types if specified.
             * @param message ListOperationsResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.longrunning.ListOperationsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ListOperationsResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ListOperationsResponse
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a CancelOperationRequest. */
        interface ICancelOperationRequest {

            /** CancelOperationRequest name */
            name?: (string|null);
        }

        /** Represents a CancelOperationRequest. */
        class CancelOperationRequest implements ICancelOperationRequest {

            /**
             * Constructs a new CancelOperationRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.longrunning.ICancelOperationRequest);

            /** CancelOperationRequest name. */
            public name: string;

            /**
             * Creates a new CancelOperationRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CancelOperationRequest instance
             */
            public static create(properties?: google.longrunning.ICancelOperationRequest): google.longrunning.CancelOperationRequest;

            /**
             * Encodes the specified CancelOperationRequest message. Does not implicitly {@link google.longrunning.CancelOperationRequest.verify|verify} messages.
             * @param message CancelOperationRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.longrunning.ICancelOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CancelOperationRequest message, length delimited. Does not implicitly {@link google.longrunning.CancelOperationRequest.verify|verify} messages.
             * @param message CancelOperationRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.longrunning.ICancelOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CancelOperationRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CancelOperationRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.longrunning.CancelOperationRequest;

            /**
             * Decodes a CancelOperationRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CancelOperationRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.longrunning.CancelOperationRequest;

            /**
             * Verifies a CancelOperationRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CancelOperationRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CancelOperationRequest
             */
            public static fromObject(object: { [k: string]: any }): google.longrunning.CancelOperationRequest;

            /**
             * Creates a plain object from a CancelOperationRequest message. Also converts values to other types if specified.
             * @param message CancelOperationRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.longrunning.CancelOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CancelOperationRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for CancelOperationRequest
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a DeleteOperationRequest. */
        interface IDeleteOperationRequest {

            /** DeleteOperationRequest name */
            name?: (string|null);
        }

        /** Represents a DeleteOperationRequest. */
        class DeleteOperationRequest implements IDeleteOperationRequest {

            /**
             * Constructs a new DeleteOperationRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.longrunning.IDeleteOperationRequest);

            /** DeleteOperationRequest name. */
            public name: string;

            /**
             * Creates a new DeleteOperationRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DeleteOperationRequest instance
             */
            public static create(properties?: google.longrunning.IDeleteOperationRequest): google.longrunning.DeleteOperationRequest;

            /**
             * Encodes the specified DeleteOperationRequest message. Does not implicitly {@link google.longrunning.DeleteOperationRequest.verify|verify} messages.
             * @param message DeleteOperationRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.longrunning.IDeleteOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DeleteOperationRequest message, length delimited. Does not implicitly {@link google.longrunning.DeleteOperationRequest.verify|verify} messages.
             * @param message DeleteOperationRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.longrunning.IDeleteOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DeleteOperationRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DeleteOperationRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.longrunning.DeleteOperationRequest;

            /**
             * Decodes a DeleteOperationRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DeleteOperationRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.longrunning.DeleteOperationRequest;

            /**
             * Verifies a DeleteOperationRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DeleteOperationRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DeleteOperationRequest
             */
            public static fromObject(object: { [k: string]: any }): google.longrunning.DeleteOperationRequest;

            /**
             * Creates a plain object from a DeleteOperationRequest message. Also converts values to other types if specified.
             * @param message DeleteOperationRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.longrunning.DeleteOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DeleteOperationRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for DeleteOperationRequest
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a WaitOperationRequest. */
        interface IWaitOperationRequest {

            /** WaitOperationRequest name */
            name?: (string|null);

            /** WaitOperationRequest timeout */
            timeout?: (google.protobuf.IDuration|null);
        }

        /** Represents a WaitOperationRequest. */
        class WaitOperationRequest implements IWaitOperationRequest {

            /**
             * Constructs a new WaitOperationRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.longrunning.IWaitOperationRequest);

            /** WaitOperationRequest name. */
            public name: string;

            /** WaitOperationRequest timeout. */
            public timeout?: (google.protobuf.IDuration|null);

            /**
             * Creates a new WaitOperationRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns WaitOperationRequest instance
             */
            public static create(properties?: google.longrunning.IWaitOperationRequest): google.longrunning.WaitOperationRequest;

            /**
             * Encodes the specified WaitOperationRequest message. Does not implicitly {@link google.longrunning.WaitOperationRequest.verify|verify} messages.
             * @param message WaitOperationRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.longrunning.IWaitOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified WaitOperationRequest message, length delimited. Does not implicitly {@link google.longrunning.WaitOperationRequest.verify|verify} messages.
             * @param message WaitOperationRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.longrunning.IWaitOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a WaitOperationRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns WaitOperationRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.longrunning.WaitOperationRequest;

            /**
             * Decodes a WaitOperationRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns WaitOperationRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.longrunning.WaitOperationRequest;

            /**
             * Verifies a WaitOperationRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a WaitOperationRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns WaitOperationRequest
             */
            public static fromObject(object: { [k: string]: any }): google.longrunning.WaitOperationRequest;

            /**
             * Creates a plain object from a WaitOperationRequest message. Also converts values to other types if specified.
             * @param message WaitOperationRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.longrunning.WaitOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this WaitOperationRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for WaitOperationRequest
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an OperationInfo. */
        interface IOperationInfo {

            /** OperationInfo responseType */
            responseType?: (string|null);

            /** OperationInfo metadataType */
            metadataType?: (string|null);
        }

        /** Represents an OperationInfo. */
        class OperationInfo implements IOperationInfo {

            /**
             * Constructs a new OperationInfo.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.longrunning.IOperationInfo);

            /** OperationInfo responseType. */
            public responseType: string;

            /** OperationInfo metadataType. */
            public metadataType: string;

            /**
             * Creates a new OperationInfo instance using the specified properties.
             * @param [properties] Properties to set
             * @returns OperationInfo instance
             */
            public static create(properties?: google.longrunning.IOperationInfo): google.longrunning.OperationInfo;

            /**
             * Encodes the specified OperationInfo message. Does not implicitly {@link google.longrunning.OperationInfo.verify|verify} messages.
             * @param message OperationInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.longrunning.IOperationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified OperationInfo message, length delimited. Does not implicitly {@link google.longrunning.OperationInfo.verify|verify} messages.
             * @param message OperationInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.longrunning.IOperationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an OperationInfo message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns OperationInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.longrunning.OperationInfo;

            /**
             * Decodes an OperationInfo message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns OperationInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.longrunning.OperationInfo;

            /**
             * Verifies an OperationInfo message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an OperationInfo message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns OperationInfo
             */
            public static fromObject(object: { [k: string]: any }): google.longrunning.OperationInfo;

            /**
             * Creates a plain object from an OperationInfo message. Also converts values to other types if specified.
             * @param message OperationInfo
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.longrunning.OperationInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this OperationInfo to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for OperationInfo
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }

    /** Namespace rpc. */
    namespace rpc {

        /** Properties of a Status. */
        interface IStatus {

            /** Status code */
            code?: (number|null);

            /** Status message */
            message?: (string|null);

            /** Status details */
            details?: (google.protobuf.IAny[]|null);
        }

        /** Represents a Status. */
        class Status implements IStatus {

            /**
             * Constructs a new Status.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.rpc.IStatus);

            /** Status code. */
            public code: number;

            /** Status message. */
            public message: string;

            /** Status details. */
            public details: google.protobuf.IAny[];

            /**
             * Creates a new Status instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Status instance
             */
            public static create(properties?: google.rpc.IStatus): google.rpc.Status;

            /**
             * Encodes the specified Status message. Does not implicitly {@link google.rpc.Status.verify|verify} messages.
             * @param message Status message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.rpc.IStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Status message, length delimited. Does not implicitly {@link google.rpc.Status.verify|verify} messages.
             * @param message Status message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.rpc.IStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Status message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Status
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.rpc.Status;

            /**
             * Decodes a Status message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Status
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.rpc.Status;

            /**
             * Verifies a Status message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Status message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Status
             */
            public static fromObject(object: { [k: string]: any }): google.rpc.Status;

            /**
             * Creates a plain object from a Status message. Also converts values to other types if specified.
             * @param message Status
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.rpc.Status, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Status to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Status
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }
}