diff --git a/protos/google/bigtable/v2/bigtable.proto b/protos/google/bigtable/v2/bigtable.proto index 955a05611..c85e0cfc8 100644 --- a/protos/google/bigtable/v2/bigtable.proto +++ b/protos/google/bigtable/v2/bigtable.proto @@ -23,6 +23,8 @@ import "google/api/resource.proto"; import "google/api/routing.proto"; import "google/bigtable/v2/data.proto"; import "google/bigtable/v2/request_stats.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; import "google/protobuf/wrappers.proto"; import "google/rpc/status.proto"; @@ -68,9 +70,7 @@ service Bigtable { field: "table_name" path_template: "{table_name=projects/*/instances/*/tables/*}" } - routing_parameters { - field: "app_profile_id" - } + routing_parameters { field: "app_profile_id" } }; option (google.api.method_signature) = "table_name"; option (google.api.method_signature) = "table_name,app_profile_id"; @@ -80,7 +80,8 @@ service Bigtable { // delimit contiguous sections of the table of approximately equal size, // which can be used to break up the data for distributed tasks like // mapreduces. - rpc SampleRowKeys(SampleRowKeysRequest) returns (stream SampleRowKeysResponse) { + rpc SampleRowKeys(SampleRowKeysRequest) + returns (stream SampleRowKeysResponse) { option (google.api.http) = { get: "/v2/{table_name=projects/*/instances/*/tables/*}:sampleRowKeys" }; @@ -89,9 +90,7 @@ service Bigtable { field: "table_name" path_template: "{table_name=projects/*/instances/*/tables/*}" } - routing_parameters { - field: "app_profile_id" - } + routing_parameters { field: "app_profile_id" } }; option (google.api.method_signature) = "table_name"; option (google.api.method_signature) = "table_name,app_profile_id"; @@ -109,12 +108,11 @@ service Bigtable { field: "table_name" path_template: "{table_name=projects/*/instances/*/tables/*}" } - routing_parameters { - field: "app_profile_id" - } + routing_parameters { field: "app_profile_id" } }; option (google.api.method_signature) = "table_name,row_key,mutations"; - option (google.api.method_signature) = "table_name,row_key,mutations,app_profile_id"; + option (google.api.method_signature) = + "table_name,row_key,mutations,app_profile_id"; } // Mutates multiple rows in a batch. Each individual row is mutated @@ -130,16 +128,15 @@ service Bigtable { field: "table_name" path_template: "{table_name=projects/*/instances/*/tables/*}" } - routing_parameters { - field: "app_profile_id" - } + routing_parameters { field: "app_profile_id" } }; option (google.api.method_signature) = "table_name,entries"; option (google.api.method_signature) = "table_name,entries,app_profile_id"; } // Mutates a row atomically based on the output of a predicate Reader filter. - rpc CheckAndMutateRow(CheckAndMutateRowRequest) returns (CheckAndMutateRowResponse) { + rpc CheckAndMutateRow(CheckAndMutateRowRequest) + returns (CheckAndMutateRowResponse) { option (google.api.http) = { post: "/v2/{table_name=projects/*/instances/*/tables/*}:checkAndMutateRow" body: "*" @@ -149,12 +146,12 @@ service Bigtable { field: "table_name" path_template: "{table_name=projects/*/instances/*/tables/*}" } - routing_parameters { - field: "app_profile_id" - } + routing_parameters { field: "app_profile_id" } }; - option (google.api.method_signature) = "table_name,row_key,predicate_filter,true_mutations,false_mutations"; - option (google.api.method_signature) = "table_name,row_key,predicate_filter,true_mutations,false_mutations,app_profile_id"; + option (google.api.method_signature) = + "table_name,row_key,predicate_filter,true_mutations,false_mutations"; + option (google.api.method_signature) = + "table_name,row_key,predicate_filter,true_mutations,false_mutations,app_profile_id"; } // Warm up associated instance metadata for this connection. @@ -169,9 +166,7 @@ service Bigtable { field: "name" path_template: "{name=projects/*/instances/*}" } - routing_parameters { - field: "app_profile_id" - } + routing_parameters { field: "app_profile_id" } }; option (google.api.method_signature) = "name"; option (google.api.method_signature) = "name,app_profile_id"; @@ -182,7 +177,8 @@ service Bigtable { // entry based on pre-defined read/modify/write rules. The new value for the // timestamp is the greater of the existing timestamp or the current server // time. The method returns the new contents of all modified cells. - rpc ReadModifyWriteRow(ReadModifyWriteRowRequest) returns (ReadModifyWriteRowResponse) { + rpc ReadModifyWriteRow(ReadModifyWriteRowRequest) + returns (ReadModifyWriteRowResponse) { option (google.api.http) = { post: "/v2/{table_name=projects/*/instances/*/tables/*}:readModifyWriteRow" body: "*" @@ -192,12 +188,40 @@ service Bigtable { field: "table_name" path_template: "{table_name=projects/*/instances/*/tables/*}" } - routing_parameters { - field: "app_profile_id" - } + routing_parameters { field: "app_profile_id" } }; option (google.api.method_signature) = "table_name,row_key,rules"; - option (google.api.method_signature) = "table_name,row_key,rules,app_profile_id"; + option (google.api.method_signature) = + "table_name,row_key,rules,app_profile_id"; + } + + // NOTE: This API is intended to be used by Apache Beam BigtableIO. + // Returns the current list of partitions that make up the table's + // change stream. The union of partitions will cover the entire keyspace. + // Partitions can be read with `ReadChangeStream`. + rpc GenerateInitialChangeStreamPartitions( + GenerateInitialChangeStreamPartitionsRequest) + returns (stream GenerateInitialChangeStreamPartitionsResponse) { + option (google.api.http) = { + post: "/v2/{table_name=projects/*/instances/*/tables/*}:generateInitialChangeStreamPartitions" + body: "*" + }; + option (google.api.method_signature) = "table_name"; + option (google.api.method_signature) = "table_name,app_profile_id"; + } + + // NOTE: This API is intended to be used by Apache Beam BigtableIO. + // Reads changes from a table's change stream. Changes will + // reflect both user-initiated mutations and mutations that are caused by + // garbage collection. + rpc ReadChangeStream(ReadChangeStreamRequest) + returns (stream ReadChangeStreamResponse) { + option (google.api.http) = { + post: "/v2/{table_name=projects/*/instances/*/tables/*}:readChangeStream" + body: "*" + }; + option (google.api.method_signature) = "table_name"; + option (google.api.method_signature) = "table_name,app_profile_id"; } } @@ -388,8 +412,8 @@ message SampleRowKeysResponse { // Request message for Bigtable.MutateRow. message MutateRowRequest { - // Required. The unique name of the table to which the mutation should be applied. - // Values are of the form + // Required. The unique name of the table to which the mutation should be + // applied. Values are of the form // `projects//instances//tables/`. string table_name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -405,16 +429,14 @@ message MutateRowRequest { // Required. The key of the row to which the mutation should be applied. bytes row_key = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. Changes to be atomically applied to the specified row. Entries are applied - // in order, meaning that earlier mutations can be masked by later ones. - // Must contain at least one entry and at most 100000. + // Required. Changes to be atomically applied to the specified row. Entries + // are applied in order, meaning that earlier mutations can be masked by later + // ones. Must contain at least one entry and at most 100000. repeated Mutation mutations = 3 [(google.api.field_behavior) = REQUIRED]; } // Response message for Bigtable.MutateRow. -message MutateRowResponse { - -} +message MutateRowResponse {} // Request message for BigtableService.MutateRows. message MutateRowsRequest { @@ -423,14 +445,14 @@ message MutateRowsRequest { // The key of the row to which the `mutations` should be applied. bytes row_key = 1; - // Required. Changes to be atomically applied to the specified row. Mutations are - // applied in order, meaning that earlier mutations can be masked by - // later ones. - // You must specify at least one mutation. + // Required. Changes to be atomically applied to the specified row. + // Mutations are applied in order, meaning that earlier mutations can be + // masked by later ones. You must specify at least one mutation. repeated Mutation mutations = 2 [(google.api.field_behavior) = REQUIRED]; } - // Required. The unique name of the table to which the mutations should be applied. + // Required. The unique name of the table to which the mutations should be + // applied. string table_name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -471,9 +493,8 @@ message MutateRowsResponse { // Request message for Bigtable.CheckAndMutateRow. message CheckAndMutateRowRequest { - // Required. The unique name of the table to which the conditional mutation should be - // applied. - // Values are of the form + // Required. The unique name of the table to which the conditional mutation + // should be applied. Values are of the form // `projects//instances//tables/
`. string table_name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -486,7 +507,8 @@ message CheckAndMutateRowRequest { // "default" application profile will be used. string app_profile_id = 7; - // Required. The key of the row to which the conditional mutation should be applied. + // Required. The key of the row to which the conditional mutation should be + // applied. bytes row_key = 2 [(google.api.field_behavior) = REQUIRED]; // The filter to be applied to the contents of the specified row. Depending @@ -519,8 +541,9 @@ message CheckAndMutateRowResponse { // Request message for client connection keep-alive and warming. message PingAndWarmRequest { - // Required. The unique name of the instance to check permissions for as well as - // respond. Values are of the form `projects//instances/`. + // Required. The unique name of the instance to check permissions for as well + // as respond. Values are of the form + // `projects//instances/`. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { @@ -538,9 +561,8 @@ message PingAndWarmResponse {} // Request message for Bigtable.ReadModifyWriteRow. message ReadModifyWriteRowRequest { - // Required. The unique name of the table to which the read/modify/write rules should be - // applied. - // Values are of the form + // Required. The unique name of the table to which the read/modify/write rules + // should be applied. Values are of the form // `projects//instances//tables/
`. string table_name = 1 [ (google.api.field_behavior) = REQUIRED, @@ -553,13 +575,15 @@ message ReadModifyWriteRowRequest { // "default" application profile will be used. string app_profile_id = 4; - // Required. The key of the row to which the read/modify/write rules should be applied. + // Required. The key of the row to which the read/modify/write rules should be + // applied. bytes row_key = 2 [(google.api.field_behavior) = REQUIRED]; - // Required. Rules specifying how the specified row's contents are to be transformed - // into writes. Entries are applied in order, meaning that earlier rules will - // affect the results of later ones. - repeated ReadModifyWriteRule rules = 3 [(google.api.field_behavior) = REQUIRED]; + // Required. Rules specifying how the specified row's contents are to be + // transformed into writes. Entries are applied in order, meaning that earlier + // rules will affect the results of later ones. + repeated ReadModifyWriteRule rules = 3 + [(google.api.field_behavior) = REQUIRED]; } // Response message for Bigtable.ReadModifyWriteRow. @@ -567,3 +591,225 @@ message ReadModifyWriteRowResponse { // A Row containing the new contents of all cells modified by the request. Row row = 1; } + +// NOTE: This API is intended to be used by Apache Beam BigtableIO. +// Request message for Bigtable.GenerateInitialChangeStreamPartitions. +message GenerateInitialChangeStreamPartitionsRequest { + // Required. The unique name of the table from which to get change stream + // partitions. Values are of the form + // `projects//instances//tables/
`. + // Change streaming must be enabled on the table. + string table_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigtableadmin.googleapis.com/Table" + } + ]; + + // This value specifies routing for replication. If not specified, the + // "default" application profile will be used. + // Single cluster routing must be configured on the profile. + string app_profile_id = 2; +} + +// NOTE: This API is intended to be used by Apache Beam BigtableIO. +// Response message for Bigtable.GenerateInitialChangeStreamPartitions. +message GenerateInitialChangeStreamPartitionsResponse { + // A partition of the change stream. + StreamPartition partition = 1; +} + +// NOTE: This API is intended to be used by Apache Beam BigtableIO. +// Request message for Bigtable.ReadChangeStream. +message ReadChangeStreamRequest { + // Required. The unique name of the table from which to read a change stream. + // Values are of the form + // `projects//instances//tables/
`. + // Change streaming must be enabled on the table. + string table_name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "bigtableadmin.googleapis.com/Table" + } + ]; + + // This value specifies routing for replication. If not specified, the + // "default" application profile will be used. + // Single cluster routing must be configured on the profile. + string app_profile_id = 2; + + // The partition to read changes from. + StreamPartition partition = 3; + + // Options for describing where we want to start reading from the stream. + oneof start_from { + // Start reading the stream at the specified timestamp. This timestamp must + // be within the change stream retention period, less than or equal to the + // current time, and after change stream creation, whichever is greater. + // This value is inclusive and will be truncated to microsecond granularity. + google.protobuf.Timestamp start_time = 4; + + // Tokens that describe how to resume reading a stream where reading + // previously left off. If specified, changes will be read starting at the + // the position. Tokens are delivered on the stream as part of `Heartbeat` + // and `CloseStream` messages. + // + // If a single token is provided, the token’s partition must exactly match + // the request’s partition. If multiple tokens are provided, as in the case + // of a partition merge, the union of the token partitions must exactly + // cover the request’s partition. Otherwise, INVALID_ARGUMENT will be + // returned. + StreamContinuationTokens continuation_tokens = 6; + } + + // If specified, OK will be returned when the stream advances beyond + // this time. Otherwise, changes will be continuously delivered on the stream. + // This value is inclusive and will be truncated to microsecond granularity. + google.protobuf.Timestamp end_time = 5; + + // If specified, the duration between `Heartbeat` messages on the stream. + // Otherwise, defaults to 5 seconds. + google.protobuf.Duration heartbeat_duration = 7; +} + +// NOTE: This API is intended to be used by Apache Beam BigtableIO. +// Response message for Bigtable.ReadChangeStream. +message ReadChangeStreamResponse { + // A partial or complete mutation. + message MutationChunk { + // Information about the chunking of this mutation. + // Only `SetCell` mutations can be chunked, and all chunks for a `SetCell` + // will be delivered contiguously with no other mutation types interleaved. + message ChunkInfo { + // The total value size of all the chunks that make up the `SetCell`. + int32 chunked_value_size = 1; + + // The byte offset of this chunk into the total value size of the + // mutation. + int32 chunked_value_offset = 2; + + // When true, this is the last chunk of a chunked `SetCell`. + bool last_chunk = 3; + } + + // If set, then the mutation is a `SetCell` with a chunked value across + // multiple messages. + ChunkInfo chunk_info = 1; + + // If this is a continuation of a chunked message (`chunked_value_offset` > + // 0), ignore all fields except the `SetCell`'s value and merge it with + // the previous message by concatenating the value fields. + Mutation mutation = 2; + } + + // A message corresponding to one or more mutations to the partition + // being streamed. A single logical `DataChange` message may also be split + // across a sequence of multiple individual messages. Messages other than + // the first in a sequence will only have the `type` and `chunks` fields + // populated, with the final message in the sequence also containing `done` + // set to true. + message DataChange { + // The type of mutation. + enum Type { + // The type is unspecified. + TYPE_UNSPECIFIED = 0; + + // A user-initiated mutation. + USER = 1; + + // A system-initiated mutation as part of garbage collection. + // https://cloud.google.com/bigtable/docs/garbage-collection + GARBAGE_COLLECTION = 2; + + // This is a continuation of a multi-message change. + CONTINUATION = 3; + } + + // The type of the mutation. + Type type = 1; + + // The cluster where the mutation was applied. + // Not set when `type` is `GARBAGE_COLLECTION`. + string source_cluster_id = 2; + + // The row key for all mutations that are part of this `DataChange`. + // If the `DataChange` is chunked across multiple messages, then this field + // will only be set for the first message. + bytes row_key = 3; + + // The timestamp at which the mutation was applied on the Bigtable server. + google.protobuf.Timestamp commit_timestamp = 4; + + // A value that lets stream consumers reconstruct Bigtable's + // conflict resolution semantics. + // https://cloud.google.com/bigtable/docs/writes#conflict-resolution + // In the event that the same row key, column family, column qualifier, + // timestamp are modified on different clusters at the same + // `commit_timestamp`, the mutation with the larger `tiebreaker` will be the + // one chosen for the eventually consistent state of the system. + int32 tiebreaker = 5; + + // The mutations associated with this change to the partition. + // May contain complete mutations or chunks of a multi-message chunked + // `DataChange` record. + repeated MutationChunk chunks = 6; + + // When true, indicates that the entire `DataChange` has been read + // and the client can safely process the message. + bool done = 8; + + // An encoded position for this stream's partition to restart reading from. + // This token is for the StreamPartition from the request. + string token = 9; + + // An estimate of the commit timestamp that is usually lower than or equal + // to any timestamp for a record that will be delivered in the future on the + // stream. It is possible that, under particular circumstances that a future + // record has a timestamp is is lower than a previously seen timestamp. For + // an example usage see + // https://beam.apache.org/documentation/basics/#watermarks + google.protobuf.Timestamp estimated_low_watermark = 10; + } + + // A periodic message with information that can be used to checkpoint + // the state of a stream. + message Heartbeat { + // A token that can be provided to a subsequent `ReadChangeStream` call + // to pick up reading at the current stream position. + StreamContinuationToken continuation_token = 1; + + // An estimate of the commit timestamp that is usually lower than or equal + // to any timestamp for a record that will be delivered in the future on the + // stream. It is possible that, under particular circumstances that a future + // record has a timestamp is is lower than a previously seen timestamp. For + // an example usage see + // https://beam.apache.org/documentation/basics/#watermarks + google.protobuf.Timestamp estimated_low_watermark = 2; + } + + // A message indicating that the client should stop reading from the stream. + // If status is OK and `continuation_tokens` is empty, the stream has finished + // (for example if there was an `end_time` specified). + // If `continuation_tokens` is present, then a change in partitioning requires + // the client to open a new stream for each token to resume reading. + message CloseStream { + // The status of the stream. + google.rpc.Status status = 1; + + // If non-empty, contains the information needed to start reading the new + // partition(s) that contain segments of this partition's row range. + repeated StreamContinuationToken continuation_tokens = 2; + } + + // The data or control message on the stream. + oneof stream_record { + // A mutation to the partition. + DataChange data_change = 1; + + // A periodic heartbeat message. + Heartbeat heartbeat = 2; + + // An indication that the stream should be closed. + CloseStream close_stream = 3; + } +} diff --git a/protos/google/bigtable/v2/data.proto b/protos/google/bigtable/v2/data.proto index 9e5a05c2e..1e7d463c7 100644 --- a/protos/google/bigtable/v2/data.proto +++ b/protos/google/bigtable/v2/data.proto @@ -486,9 +486,7 @@ message Mutation { } // A Mutation which deletes all cells from the containing row. - message DeleteFromRow { - - } + message DeleteFromRow {} // Which of the possible Mutation types to apply. oneof mutation { @@ -533,3 +531,30 @@ message ReadModifyWriteRule { int64 increment_amount = 4; } } + +// NOTE: This API is intended to be used by Apache Beam BigtableIO. +// A partition of a change stream. +message StreamPartition { + // The row range covered by this partition and is specified by + // [`start_key_closed`, `end_key_open`). + RowRange row_range = 1; +} + +// NOTE: This API is intended to be used by Apache Beam BigtableIO. +// The information required to continue reading the data from multiple +// `StreamPartitions` from where a previous read left off. +message StreamContinuationTokens { + // List of continuation tokens. + repeated StreamContinuationToken tokens = 1; +} + +// NOTE: This API is intended to be used by Apache Beam BigtableIO. +// The information required to continue reading the data from a +// `StreamPartition` from where a previous read left off. +message StreamContinuationToken { + // The partition that this token applies to. + StreamPartition partition = 1; + + // An encoded position in the stream to restart reading from. + string token = 2; +} diff --git a/protos/protos.d.ts b/protos/protos.d.ts index f23e46cd1..1b0fe2e01 100644 --- a/protos/protos.d.ts +++ b/protos/protos.d.ts @@ -10426,6 +10426,34 @@ export namespace google { * @returns Promise */ public readModifyWriteRow(request: google.bigtable.v2.IReadModifyWriteRowRequest): Promise; + + /** + * Calls GenerateInitialChangeStreamPartitions. + * @param request GenerateInitialChangeStreamPartitionsRequest message or plain object + * @param callback Node-style callback called with the error, if any, and GenerateInitialChangeStreamPartitionsResponse + */ + public generateInitialChangeStreamPartitions(request: google.bigtable.v2.IGenerateInitialChangeStreamPartitionsRequest, callback: google.bigtable.v2.Bigtable.GenerateInitialChangeStreamPartitionsCallback): void; + + /** + * Calls GenerateInitialChangeStreamPartitions. + * @param request GenerateInitialChangeStreamPartitionsRequest message or plain object + * @returns Promise + */ + public generateInitialChangeStreamPartitions(request: google.bigtable.v2.IGenerateInitialChangeStreamPartitionsRequest): Promise; + + /** + * Calls ReadChangeStream. + * @param request ReadChangeStreamRequest message or plain object + * @param callback Node-style callback called with the error, if any, and ReadChangeStreamResponse + */ + public readChangeStream(request: google.bigtable.v2.IReadChangeStreamRequest, callback: google.bigtable.v2.Bigtable.ReadChangeStreamCallback): void; + + /** + * Calls ReadChangeStream. + * @param request ReadChangeStreamRequest message or plain object + * @returns Promise + */ + public readChangeStream(request: google.bigtable.v2.IReadChangeStreamRequest): Promise; } namespace Bigtable { @@ -10478,6 +10506,20 @@ export namespace google { * @param [response] ReadModifyWriteRowResponse */ type ReadModifyWriteRowCallback = (error: (Error|null), response?: google.bigtable.v2.ReadModifyWriteRowResponse) => void; + + /** + * Callback as used by {@link google.bigtable.v2.Bigtable|generateInitialChangeStreamPartitions}. + * @param error Error, if any + * @param [response] GenerateInitialChangeStreamPartitionsResponse + */ + type GenerateInitialChangeStreamPartitionsCallback = (error: (Error|null), response?: google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse) => void; + + /** + * Callback as used by {@link google.bigtable.v2.Bigtable|readChangeStream}. + * @param error Error, if any + * @param [response] ReadChangeStreamResponse + */ + type ReadChangeStreamCallback = (error: (Error|null), response?: google.bigtable.v2.ReadChangeStreamResponse) => void; } /** Properties of a ReadRowsRequest. */ @@ -12337,466 +12379,1494 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a Row. */ - interface IRow { + /** Properties of a GenerateInitialChangeStreamPartitionsRequest. */ + interface IGenerateInitialChangeStreamPartitionsRequest { - /** Row key */ - key?: (Uint8Array|string|null); + /** GenerateInitialChangeStreamPartitionsRequest tableName */ + tableName?: (string|null); - /** Row families */ - families?: (google.bigtable.v2.IFamily[]|null); + /** GenerateInitialChangeStreamPartitionsRequest appProfileId */ + appProfileId?: (string|null); } - /** Represents a Row. */ - class Row implements IRow { + /** Represents a GenerateInitialChangeStreamPartitionsRequest. */ + class GenerateInitialChangeStreamPartitionsRequest implements IGenerateInitialChangeStreamPartitionsRequest { /** - * Constructs a new Row. + * Constructs a new GenerateInitialChangeStreamPartitionsRequest. * @param [properties] Properties to set */ - constructor(properties?: google.bigtable.v2.IRow); + constructor(properties?: google.bigtable.v2.IGenerateInitialChangeStreamPartitionsRequest); - /** Row key. */ - public key: (Uint8Array|string); + /** GenerateInitialChangeStreamPartitionsRequest tableName. */ + public tableName: string; - /** Row families. */ - public families: google.bigtable.v2.IFamily[]; + /** GenerateInitialChangeStreamPartitionsRequest appProfileId. */ + public appProfileId: string; /** - * Creates a new Row instance using the specified properties. + * Creates a new GenerateInitialChangeStreamPartitionsRequest instance using the specified properties. * @param [properties] Properties to set - * @returns Row instance + * @returns GenerateInitialChangeStreamPartitionsRequest instance */ - public static create(properties?: google.bigtable.v2.IRow): google.bigtable.v2.Row; + public static create(properties?: google.bigtable.v2.IGenerateInitialChangeStreamPartitionsRequest): google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest; /** - * Encodes the specified Row message. Does not implicitly {@link google.bigtable.v2.Row.verify|verify} messages. - * @param message Row message or plain object to encode + * Encodes the specified GenerateInitialChangeStreamPartitionsRequest message. Does not implicitly {@link google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest.verify|verify} messages. + * @param message GenerateInitialChangeStreamPartitionsRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.bigtable.v2.IRow, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.bigtable.v2.IGenerateInitialChangeStreamPartitionsRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Row message, length delimited. Does not implicitly {@link google.bigtable.v2.Row.verify|verify} messages. - * @param message Row message or plain object to encode + * Encodes the specified GenerateInitialChangeStreamPartitionsRequest message, length delimited. Does not implicitly {@link google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest.verify|verify} messages. + * @param message GenerateInitialChangeStreamPartitionsRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.bigtable.v2.IRow, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.bigtable.v2.IGenerateInitialChangeStreamPartitionsRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Row message from the specified reader or buffer. + * Decodes a GenerateInitialChangeStreamPartitionsRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Row + * @returns GenerateInitialChangeStreamPartitionsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.Row; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest; /** - * Decodes a Row message from the specified reader or buffer, length delimited. + * Decodes a GenerateInitialChangeStreamPartitionsRequest message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Row + * @returns GenerateInitialChangeStreamPartitionsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.Row; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest; /** - * Verifies a Row message. + * Verifies a GenerateInitialChangeStreamPartitionsRequest message. * @param message Plain 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 Row message from a plain object. Also converts values to their respective internal types. + * Creates a GenerateInitialChangeStreamPartitionsRequest message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Row + * @returns GenerateInitialChangeStreamPartitionsRequest */ - public static fromObject(object: { [k: string]: any }): google.bigtable.v2.Row; + public static fromObject(object: { [k: string]: any }): google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest; /** - * Creates a plain object from a Row message. Also converts values to other types if specified. - * @param message Row + * Creates a plain object from a GenerateInitialChangeStreamPartitionsRequest message. Also converts values to other types if specified. + * @param message GenerateInitialChangeStreamPartitionsRequest * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.bigtable.v2.Row, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Row to JSON. + * Converts this GenerateInitialChangeStreamPartitionsRequest to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for Row + * Gets the default type url for GenerateInitialChangeStreamPartitionsRequest * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a Family. */ - interface IFamily { - - /** Family name */ - name?: (string|null); + /** Properties of a GenerateInitialChangeStreamPartitionsResponse. */ + interface IGenerateInitialChangeStreamPartitionsResponse { - /** Family columns */ - columns?: (google.bigtable.v2.IColumn[]|null); + /** GenerateInitialChangeStreamPartitionsResponse partition */ + partition?: (google.bigtable.v2.IStreamPartition|null); } - /** Represents a Family. */ - class Family implements IFamily { + /** Represents a GenerateInitialChangeStreamPartitionsResponse. */ + class GenerateInitialChangeStreamPartitionsResponse implements IGenerateInitialChangeStreamPartitionsResponse { /** - * Constructs a new Family. + * Constructs a new GenerateInitialChangeStreamPartitionsResponse. * @param [properties] Properties to set */ - constructor(properties?: google.bigtable.v2.IFamily); - - /** Family name. */ - public name: string; + constructor(properties?: google.bigtable.v2.IGenerateInitialChangeStreamPartitionsResponse); - /** Family columns. */ - public columns: google.bigtable.v2.IColumn[]; + /** GenerateInitialChangeStreamPartitionsResponse partition. */ + public partition?: (google.bigtable.v2.IStreamPartition|null); /** - * Creates a new Family instance using the specified properties. + * Creates a new GenerateInitialChangeStreamPartitionsResponse instance using the specified properties. * @param [properties] Properties to set - * @returns Family instance + * @returns GenerateInitialChangeStreamPartitionsResponse instance */ - public static create(properties?: google.bigtable.v2.IFamily): google.bigtable.v2.Family; + public static create(properties?: google.bigtable.v2.IGenerateInitialChangeStreamPartitionsResponse): google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse; /** - * Encodes the specified Family message. Does not implicitly {@link google.bigtable.v2.Family.verify|verify} messages. - * @param message Family message or plain object to encode + * Encodes the specified GenerateInitialChangeStreamPartitionsResponse message. Does not implicitly {@link google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse.verify|verify} messages. + * @param message GenerateInitialChangeStreamPartitionsResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.bigtable.v2.IFamily, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.bigtable.v2.IGenerateInitialChangeStreamPartitionsResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Family message, length delimited. Does not implicitly {@link google.bigtable.v2.Family.verify|verify} messages. - * @param message Family message or plain object to encode + * Encodes the specified GenerateInitialChangeStreamPartitionsResponse message, length delimited. Does not implicitly {@link google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse.verify|verify} messages. + * @param message GenerateInitialChangeStreamPartitionsResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.bigtable.v2.IFamily, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.bigtable.v2.IGenerateInitialChangeStreamPartitionsResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Family message from the specified reader or buffer. + * Decodes a GenerateInitialChangeStreamPartitionsResponse message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Family + * @returns GenerateInitialChangeStreamPartitionsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.Family; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse; /** - * Decodes a Family message from the specified reader or buffer, length delimited. + * Decodes a GenerateInitialChangeStreamPartitionsResponse message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Family + * @returns GenerateInitialChangeStreamPartitionsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.Family; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse; /** - * Verifies a Family message. + * Verifies a GenerateInitialChangeStreamPartitionsResponse message. * @param message Plain 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 Family message from a plain object. Also converts values to their respective internal types. + * Creates a GenerateInitialChangeStreamPartitionsResponse message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Family + * @returns GenerateInitialChangeStreamPartitionsResponse */ - public static fromObject(object: { [k: string]: any }): google.bigtable.v2.Family; + public static fromObject(object: { [k: string]: any }): google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse; /** - * Creates a plain object from a Family message. Also converts values to other types if specified. - * @param message Family + * Creates a plain object from a GenerateInitialChangeStreamPartitionsResponse message. Also converts values to other types if specified. + * @param message GenerateInitialChangeStreamPartitionsResponse * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.bigtable.v2.Family, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Family to JSON. + * Converts this GenerateInitialChangeStreamPartitionsResponse to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for Family + * Gets the default type url for GenerateInitialChangeStreamPartitionsResponse * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a Column. */ - interface IColumn { + /** Properties of a ReadChangeStreamRequest. */ + interface IReadChangeStreamRequest { - /** Column qualifier */ - qualifier?: (Uint8Array|string|null); + /** ReadChangeStreamRequest tableName */ + tableName?: (string|null); - /** Column cells */ - cells?: (google.bigtable.v2.ICell[]|null); + /** ReadChangeStreamRequest appProfileId */ + appProfileId?: (string|null); + + /** ReadChangeStreamRequest partition */ + partition?: (google.bigtable.v2.IStreamPartition|null); + + /** ReadChangeStreamRequest startTime */ + startTime?: (google.protobuf.ITimestamp|null); + + /** ReadChangeStreamRequest continuationTokens */ + continuationTokens?: (google.bigtable.v2.IStreamContinuationTokens|null); + + /** ReadChangeStreamRequest endTime */ + endTime?: (google.protobuf.ITimestamp|null); + + /** ReadChangeStreamRequest heartbeatDuration */ + heartbeatDuration?: (google.protobuf.IDuration|null); } - /** Represents a Column. */ - class Column implements IColumn { + /** Represents a ReadChangeStreamRequest. */ + class ReadChangeStreamRequest implements IReadChangeStreamRequest { /** - * Constructs a new Column. + * Constructs a new ReadChangeStreamRequest. * @param [properties] Properties to set */ - constructor(properties?: google.bigtable.v2.IColumn); + constructor(properties?: google.bigtable.v2.IReadChangeStreamRequest); - /** Column qualifier. */ - public qualifier: (Uint8Array|string); + /** ReadChangeStreamRequest tableName. */ + public tableName: string; - /** Column cells. */ - public cells: google.bigtable.v2.ICell[]; + /** ReadChangeStreamRequest appProfileId. */ + public appProfileId: string; + + /** ReadChangeStreamRequest partition. */ + public partition?: (google.bigtable.v2.IStreamPartition|null); + + /** ReadChangeStreamRequest startTime. */ + public startTime?: (google.protobuf.ITimestamp|null); + + /** ReadChangeStreamRequest continuationTokens. */ + public continuationTokens?: (google.bigtable.v2.IStreamContinuationTokens|null); + + /** ReadChangeStreamRequest endTime. */ + public endTime?: (google.protobuf.ITimestamp|null); + + /** ReadChangeStreamRequest heartbeatDuration. */ + public heartbeatDuration?: (google.protobuf.IDuration|null); + + /** ReadChangeStreamRequest startFrom. */ + public startFrom?: ("startTime"|"continuationTokens"); /** - * Creates a new Column instance using the specified properties. + * Creates a new ReadChangeStreamRequest instance using the specified properties. * @param [properties] Properties to set - * @returns Column instance + * @returns ReadChangeStreamRequest instance */ - public static create(properties?: google.bigtable.v2.IColumn): google.bigtable.v2.Column; + public static create(properties?: google.bigtable.v2.IReadChangeStreamRequest): google.bigtable.v2.ReadChangeStreamRequest; /** - * Encodes the specified Column message. Does not implicitly {@link google.bigtable.v2.Column.verify|verify} messages. - * @param message Column message or plain object to encode + * Encodes the specified ReadChangeStreamRequest message. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamRequest.verify|verify} messages. + * @param message ReadChangeStreamRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.bigtable.v2.IColumn, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.bigtable.v2.IReadChangeStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Column message, length delimited. Does not implicitly {@link google.bigtable.v2.Column.verify|verify} messages. - * @param message Column message or plain object to encode + * Encodes the specified ReadChangeStreamRequest message, length delimited. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamRequest.verify|verify} messages. + * @param message ReadChangeStreamRequest message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.bigtable.v2.IColumn, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.bigtable.v2.IReadChangeStreamRequest, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Column message from the specified reader or buffer. + * Decodes a ReadChangeStreamRequest message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Column + * @returns ReadChangeStreamRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.Column; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.ReadChangeStreamRequest; /** - * Decodes a Column message from the specified reader or buffer, length delimited. + * Decodes a ReadChangeStreamRequest message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Column + * @returns ReadChangeStreamRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.Column; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.ReadChangeStreamRequest; /** - * Verifies a Column message. + * Verifies a ReadChangeStreamRequest message. * @param message Plain 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 Column message from a plain object. Also converts values to their respective internal types. + * Creates a ReadChangeStreamRequest message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Column + * @returns ReadChangeStreamRequest */ - public static fromObject(object: { [k: string]: any }): google.bigtable.v2.Column; + public static fromObject(object: { [k: string]: any }): google.bigtable.v2.ReadChangeStreamRequest; /** - * Creates a plain object from a Column message. Also converts values to other types if specified. - * @param message Column + * Creates a plain object from a ReadChangeStreamRequest message. Also converts values to other types if specified. + * @param message ReadChangeStreamRequest * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.bigtable.v2.Column, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.bigtable.v2.ReadChangeStreamRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Column to JSON. + * Converts this ReadChangeStreamRequest to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for Column + * Gets the default type url for ReadChangeStreamRequest * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a Cell. */ - interface ICell { + /** Properties of a ReadChangeStreamResponse. */ + interface IReadChangeStreamResponse { - /** Cell timestampMicros */ - timestampMicros?: (number|Long|string|null); + /** ReadChangeStreamResponse dataChange */ + dataChange?: (google.bigtable.v2.ReadChangeStreamResponse.IDataChange|null); - /** Cell value */ - value?: (Uint8Array|string|null); + /** ReadChangeStreamResponse heartbeat */ + heartbeat?: (google.bigtable.v2.ReadChangeStreamResponse.IHeartbeat|null); - /** Cell labels */ - labels?: (string[]|null); + /** ReadChangeStreamResponse closeStream */ + closeStream?: (google.bigtable.v2.ReadChangeStreamResponse.ICloseStream|null); } - /** Represents a Cell. */ - class Cell implements ICell { + /** Represents a ReadChangeStreamResponse. */ + class ReadChangeStreamResponse implements IReadChangeStreamResponse { /** - * Constructs a new Cell. + * Constructs a new ReadChangeStreamResponse. * @param [properties] Properties to set */ - constructor(properties?: google.bigtable.v2.ICell); + constructor(properties?: google.bigtable.v2.IReadChangeStreamResponse); - /** Cell timestampMicros. */ - public timestampMicros: (number|Long|string); + /** ReadChangeStreamResponse dataChange. */ + public dataChange?: (google.bigtable.v2.ReadChangeStreamResponse.IDataChange|null); - /** Cell value. */ - public value: (Uint8Array|string); + /** ReadChangeStreamResponse heartbeat. */ + public heartbeat?: (google.bigtable.v2.ReadChangeStreamResponse.IHeartbeat|null); - /** Cell labels. */ - public labels: string[]; + /** ReadChangeStreamResponse closeStream. */ + public closeStream?: (google.bigtable.v2.ReadChangeStreamResponse.ICloseStream|null); + + /** ReadChangeStreamResponse streamRecord. */ + public streamRecord?: ("dataChange"|"heartbeat"|"closeStream"); /** - * Creates a new Cell instance using the specified properties. + * Creates a new ReadChangeStreamResponse instance using the specified properties. * @param [properties] Properties to set - * @returns Cell instance + * @returns ReadChangeStreamResponse instance */ - public static create(properties?: google.bigtable.v2.ICell): google.bigtable.v2.Cell; + public static create(properties?: google.bigtable.v2.IReadChangeStreamResponse): google.bigtable.v2.ReadChangeStreamResponse; /** - * Encodes the specified Cell message. Does not implicitly {@link google.bigtable.v2.Cell.verify|verify} messages. - * @param message Cell message or plain object to encode + * Encodes the specified ReadChangeStreamResponse message. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.verify|verify} messages. + * @param message ReadChangeStreamResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encode(message: google.bigtable.v2.ICell, writer?: $protobuf.Writer): $protobuf.Writer; + public static encode(message: google.bigtable.v2.IReadChangeStreamResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Encodes the specified Cell message, length delimited. Does not implicitly {@link google.bigtable.v2.Cell.verify|verify} messages. - * @param message Cell message or plain object to encode + * Encodes the specified ReadChangeStreamResponse message, length delimited. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.verify|verify} messages. + * @param message ReadChangeStreamResponse message or plain object to encode * @param [writer] Writer to encode to * @returns Writer */ - public static encodeDelimited(message: google.bigtable.v2.ICell, writer?: $protobuf.Writer): $protobuf.Writer; + public static encodeDelimited(message: google.bigtable.v2.IReadChangeStreamResponse, writer?: $protobuf.Writer): $protobuf.Writer; /** - * Decodes a Cell message from the specified reader or buffer. + * Decodes a ReadChangeStreamResponse message from the specified reader or buffer. * @param reader Reader or buffer to decode from * @param [length] Message length if known beforehand - * @returns Cell + * @returns ReadChangeStreamResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.Cell; + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.ReadChangeStreamResponse; /** - * Decodes a Cell message from the specified reader or buffer, length delimited. + * Decodes a ReadChangeStreamResponse message from the specified reader or buffer, length delimited. * @param reader Reader or buffer to decode from - * @returns Cell + * @returns ReadChangeStreamResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.Cell; + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.ReadChangeStreamResponse; /** - * Verifies a Cell message. + * Verifies a ReadChangeStreamResponse message. * @param message Plain 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 Cell message from a plain object. Also converts values to their respective internal types. + * Creates a ReadChangeStreamResponse message from a plain object. Also converts values to their respective internal types. * @param object Plain object - * @returns Cell + * @returns ReadChangeStreamResponse */ - public static fromObject(object: { [k: string]: any }): google.bigtable.v2.Cell; + public static fromObject(object: { [k: string]: any }): google.bigtable.v2.ReadChangeStreamResponse; /** - * Creates a plain object from a Cell message. Also converts values to other types if specified. - * @param message Cell + * Creates a plain object from a ReadChangeStreamResponse message. Also converts values to other types if specified. + * @param message ReadChangeStreamResponse * @param [options] Conversion options * @returns Plain object */ - public static toObject(message: google.bigtable.v2.Cell, options?: $protobuf.IConversionOptions): { [k: string]: any }; + public static toObject(message: google.bigtable.v2.ReadChangeStreamResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; /** - * Converts this Cell to JSON. + * Converts this ReadChangeStreamResponse to JSON. * @returns JSON object */ public toJSON(): { [k: string]: any }; /** - * Gets the default type url for Cell + * Gets the default type url for ReadChangeStreamResponse * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } - /** Properties of a RowRange. */ - interface IRowRange { + namespace ReadChangeStreamResponse { - /** RowRange startKeyClosed */ - startKeyClosed?: (Uint8Array|string|null); + /** Properties of a MutationChunk. */ + interface IMutationChunk { - /** RowRange startKeyOpen */ - startKeyOpen?: (Uint8Array|string|null); + /** MutationChunk chunkInfo */ + chunkInfo?: (google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.IChunkInfo|null); - /** RowRange endKeyOpen */ - endKeyOpen?: (Uint8Array|string|null); + /** MutationChunk mutation */ + mutation?: (google.bigtable.v2.IMutation|null); + } - /** RowRange endKeyClosed */ - endKeyClosed?: (Uint8Array|string|null); - } + /** Represents a MutationChunk. */ + class MutationChunk implements IMutationChunk { - /** Represents a RowRange. */ - class RowRange implements IRowRange { + /** + * Constructs a new MutationChunk. + * @param [properties] Properties to set + */ + constructor(properties?: google.bigtable.v2.ReadChangeStreamResponse.IMutationChunk); - /** - * Constructs a new RowRange. - * @param [properties] Properties to set - */ - constructor(properties?: google.bigtable.v2.IRowRange); + /** MutationChunk chunkInfo. */ + public chunkInfo?: (google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.IChunkInfo|null); - /** RowRange startKeyClosed. */ - public startKeyClosed?: (Uint8Array|string|null); + /** MutationChunk mutation. */ + public mutation?: (google.bigtable.v2.IMutation|null); - /** RowRange startKeyOpen. */ - public startKeyOpen?: (Uint8Array|string|null); + /** + * Creates a new MutationChunk instance using the specified properties. + * @param [properties] Properties to set + * @returns MutationChunk instance + */ + public static create(properties?: google.bigtable.v2.ReadChangeStreamResponse.IMutationChunk): google.bigtable.v2.ReadChangeStreamResponse.MutationChunk; - /** RowRange endKeyOpen. */ - public endKeyOpen?: (Uint8Array|string|null); + /** + * Encodes the specified MutationChunk message. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.verify|verify} messages. + * @param message MutationChunk message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.bigtable.v2.ReadChangeStreamResponse.IMutationChunk, writer?: $protobuf.Writer): $protobuf.Writer; - /** RowRange endKeyClosed. */ - public endKeyClosed?: (Uint8Array|string|null); + /** + * Encodes the specified MutationChunk message, length delimited. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.verify|verify} messages. + * @param message MutationChunk message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.bigtable.v2.ReadChangeStreamResponse.IMutationChunk, writer?: $protobuf.Writer): $protobuf.Writer; - /** RowRange startKey. */ - public startKey?: ("startKeyClosed"|"startKeyOpen"); + /** + * Decodes a MutationChunk message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns MutationChunk + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.ReadChangeStreamResponse.MutationChunk; - /** RowRange endKey. */ - public endKey?: ("endKeyOpen"|"endKeyClosed"); + /** + * Decodes a MutationChunk message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns MutationChunk + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.ReadChangeStreamResponse.MutationChunk; + + /** + * Verifies a MutationChunk message. + * @param message Plain 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 MutationChunk message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns MutationChunk + */ + public static fromObject(object: { [k: string]: any }): google.bigtable.v2.ReadChangeStreamResponse.MutationChunk; + + /** + * Creates a plain object from a MutationChunk message. Also converts values to other types if specified. + * @param message MutationChunk + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.bigtable.v2.ReadChangeStreamResponse.MutationChunk, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this MutationChunk to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for MutationChunk + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace MutationChunk { + + /** Properties of a ChunkInfo. */ + interface IChunkInfo { + + /** ChunkInfo chunkedValueSize */ + chunkedValueSize?: (number|null); + + /** ChunkInfo chunkedValueOffset */ + chunkedValueOffset?: (number|null); + + /** ChunkInfo lastChunk */ + lastChunk?: (boolean|null); + } + + /** Represents a ChunkInfo. */ + class ChunkInfo implements IChunkInfo { + + /** + * Constructs a new ChunkInfo. + * @param [properties] Properties to set + */ + constructor(properties?: google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.IChunkInfo); + + /** ChunkInfo chunkedValueSize. */ + public chunkedValueSize: number; + + /** ChunkInfo chunkedValueOffset. */ + public chunkedValueOffset: number; + + /** ChunkInfo lastChunk. */ + public lastChunk: boolean; + + /** + * Creates a new ChunkInfo instance using the specified properties. + * @param [properties] Properties to set + * @returns ChunkInfo instance + */ + public static create(properties?: google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.IChunkInfo): google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo; + + /** + * Encodes the specified ChunkInfo message. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo.verify|verify} messages. + * @param message ChunkInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.IChunkInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ChunkInfo message, length delimited. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo.verify|verify} messages. + * @param message ChunkInfo message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.IChunkInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ChunkInfo message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ChunkInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo; + + /** + * Decodes a ChunkInfo message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ChunkInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo; + + /** + * Verifies a ChunkInfo message. + * @param message Plain 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 ChunkInfo message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ChunkInfo + */ + public static fromObject(object: { [k: string]: any }): google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo; + + /** + * Creates a plain object from a ChunkInfo message. Also converts values to other types if specified. + * @param message ChunkInfo + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ChunkInfo to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ChunkInfo + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + } + + /** Properties of a DataChange. */ + interface IDataChange { + + /** DataChange type */ + type?: (google.bigtable.v2.ReadChangeStreamResponse.DataChange.Type|keyof typeof google.bigtable.v2.ReadChangeStreamResponse.DataChange.Type|null); + + /** DataChange sourceClusterId */ + sourceClusterId?: (string|null); + + /** DataChange rowKey */ + rowKey?: (Uint8Array|string|null); + + /** DataChange commitTimestamp */ + commitTimestamp?: (google.protobuf.ITimestamp|null); + + /** DataChange tiebreaker */ + tiebreaker?: (number|null); + + /** DataChange chunks */ + chunks?: (google.bigtable.v2.ReadChangeStreamResponse.IMutationChunk[]|null); + + /** DataChange done */ + done?: (boolean|null); + + /** DataChange token */ + token?: (string|null); + + /** DataChange estimatedLowWatermark */ + estimatedLowWatermark?: (google.protobuf.ITimestamp|null); + } + + /** Represents a DataChange. */ + class DataChange implements IDataChange { + + /** + * Constructs a new DataChange. + * @param [properties] Properties to set + */ + constructor(properties?: google.bigtable.v2.ReadChangeStreamResponse.IDataChange); + + /** DataChange type. */ + public type: (google.bigtable.v2.ReadChangeStreamResponse.DataChange.Type|keyof typeof google.bigtable.v2.ReadChangeStreamResponse.DataChange.Type); + + /** DataChange sourceClusterId. */ + public sourceClusterId: string; + + /** DataChange rowKey. */ + public rowKey: (Uint8Array|string); + + /** DataChange commitTimestamp. */ + public commitTimestamp?: (google.protobuf.ITimestamp|null); + + /** DataChange tiebreaker. */ + public tiebreaker: number; + + /** DataChange chunks. */ + public chunks: google.bigtable.v2.ReadChangeStreamResponse.IMutationChunk[]; + + /** DataChange done. */ + public done: boolean; + + /** DataChange token. */ + public token: string; + + /** DataChange estimatedLowWatermark. */ + public estimatedLowWatermark?: (google.protobuf.ITimestamp|null); + + /** + * Creates a new DataChange instance using the specified properties. + * @param [properties] Properties to set + * @returns DataChange instance + */ + public static create(properties?: google.bigtable.v2.ReadChangeStreamResponse.IDataChange): google.bigtable.v2.ReadChangeStreamResponse.DataChange; + + /** + * Encodes the specified DataChange message. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.DataChange.verify|verify} messages. + * @param message DataChange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.bigtable.v2.ReadChangeStreamResponse.IDataChange, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DataChange message, length delimited. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.DataChange.verify|verify} messages. + * @param message DataChange message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.bigtable.v2.ReadChangeStreamResponse.IDataChange, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DataChange message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DataChange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.ReadChangeStreamResponse.DataChange; + + /** + * Decodes a DataChange message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DataChange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.ReadChangeStreamResponse.DataChange; + + /** + * Verifies a DataChange message. + * @param message Plain 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 DataChange message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DataChange + */ + public static fromObject(object: { [k: string]: any }): google.bigtable.v2.ReadChangeStreamResponse.DataChange; + + /** + * Creates a plain object from a DataChange message. Also converts values to other types if specified. + * @param message DataChange + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.bigtable.v2.ReadChangeStreamResponse.DataChange, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DataChange to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for DataChange + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace DataChange { + + /** Type enum. */ + enum Type { + TYPE_UNSPECIFIED = 0, + USER = 1, + GARBAGE_COLLECTION = 2, + CONTINUATION = 3 + } + } + + /** Properties of a Heartbeat. */ + interface IHeartbeat { + + /** Heartbeat continuationToken */ + continuationToken?: (google.bigtable.v2.IStreamContinuationToken|null); + + /** Heartbeat estimatedLowWatermark */ + estimatedLowWatermark?: (google.protobuf.ITimestamp|null); + } + + /** Represents a Heartbeat. */ + class Heartbeat implements IHeartbeat { + + /** + * Constructs a new Heartbeat. + * @param [properties] Properties to set + */ + constructor(properties?: google.bigtable.v2.ReadChangeStreamResponse.IHeartbeat); + + /** Heartbeat continuationToken. */ + public continuationToken?: (google.bigtable.v2.IStreamContinuationToken|null); + + /** Heartbeat estimatedLowWatermark. */ + public estimatedLowWatermark?: (google.protobuf.ITimestamp|null); + + /** + * Creates a new Heartbeat instance using the specified properties. + * @param [properties] Properties to set + * @returns Heartbeat instance + */ + public static create(properties?: google.bigtable.v2.ReadChangeStreamResponse.IHeartbeat): google.bigtable.v2.ReadChangeStreamResponse.Heartbeat; + + /** + * Encodes the specified Heartbeat message. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.Heartbeat.verify|verify} messages. + * @param message Heartbeat message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.bigtable.v2.ReadChangeStreamResponse.IHeartbeat, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Heartbeat message, length delimited. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.Heartbeat.verify|verify} messages. + * @param message Heartbeat message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.bigtable.v2.ReadChangeStreamResponse.IHeartbeat, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Heartbeat message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Heartbeat + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.ReadChangeStreamResponse.Heartbeat; + + /** + * Decodes a Heartbeat message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Heartbeat + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.ReadChangeStreamResponse.Heartbeat; + + /** + * Verifies a Heartbeat message. + * @param message Plain 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 Heartbeat message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Heartbeat + */ + public static fromObject(object: { [k: string]: any }): google.bigtable.v2.ReadChangeStreamResponse.Heartbeat; + + /** + * Creates a plain object from a Heartbeat message. Also converts values to other types if specified. + * @param message Heartbeat + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.bigtable.v2.ReadChangeStreamResponse.Heartbeat, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Heartbeat to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Heartbeat + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a CloseStream. */ + interface ICloseStream { + + /** CloseStream status */ + status?: (google.rpc.IStatus|null); + + /** CloseStream continuationTokens */ + continuationTokens?: (google.bigtable.v2.IStreamContinuationToken[]|null); + } + + /** Represents a CloseStream. */ + class CloseStream implements ICloseStream { + + /** + * Constructs a new CloseStream. + * @param [properties] Properties to set + */ + constructor(properties?: google.bigtable.v2.ReadChangeStreamResponse.ICloseStream); + + /** CloseStream status. */ + public status?: (google.rpc.IStatus|null); + + /** CloseStream continuationTokens. */ + public continuationTokens: google.bigtable.v2.IStreamContinuationToken[]; + + /** + * Creates a new CloseStream instance using the specified properties. + * @param [properties] Properties to set + * @returns CloseStream instance + */ + public static create(properties?: google.bigtable.v2.ReadChangeStreamResponse.ICloseStream): google.bigtable.v2.ReadChangeStreamResponse.CloseStream; + + /** + * Encodes the specified CloseStream message. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.CloseStream.verify|verify} messages. + * @param message CloseStream message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.bigtable.v2.ReadChangeStreamResponse.ICloseStream, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CloseStream message, length delimited. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.CloseStream.verify|verify} messages. + * @param message CloseStream message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.bigtable.v2.ReadChangeStreamResponse.ICloseStream, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CloseStream message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CloseStream + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.ReadChangeStreamResponse.CloseStream; + + /** + * Decodes a CloseStream message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CloseStream + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.ReadChangeStreamResponse.CloseStream; + + /** + * Verifies a CloseStream message. + * @param message Plain 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 CloseStream message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CloseStream + */ + public static fromObject(object: { [k: string]: any }): google.bigtable.v2.ReadChangeStreamResponse.CloseStream; + + /** + * Creates a plain object from a CloseStream message. Also converts values to other types if specified. + * @param message CloseStream + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.bigtable.v2.ReadChangeStreamResponse.CloseStream, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CloseStream to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CloseStream + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + } + + /** Properties of a Row. */ + interface IRow { + + /** Row key */ + key?: (Uint8Array|string|null); + + /** Row families */ + families?: (google.bigtable.v2.IFamily[]|null); + } + + /** Represents a Row. */ + class Row implements IRow { + + /** + * Constructs a new Row. + * @param [properties] Properties to set + */ + constructor(properties?: google.bigtable.v2.IRow); + + /** Row key. */ + public key: (Uint8Array|string); + + /** Row families. */ + public families: google.bigtable.v2.IFamily[]; + + /** + * Creates a new Row instance using the specified properties. + * @param [properties] Properties to set + * @returns Row instance + */ + public static create(properties?: google.bigtable.v2.IRow): google.bigtable.v2.Row; + + /** + * Encodes the specified Row message. Does not implicitly {@link google.bigtable.v2.Row.verify|verify} messages. + * @param message Row message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.bigtable.v2.IRow, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Row message, length delimited. Does not implicitly {@link google.bigtable.v2.Row.verify|verify} messages. + * @param message Row message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.bigtable.v2.IRow, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Row message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Row + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.Row; + + /** + * Decodes a Row message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Row + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.Row; + + /** + * Verifies a Row message. + * @param message Plain 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 Row message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Row + */ + public static fromObject(object: { [k: string]: any }): google.bigtable.v2.Row; + + /** + * Creates a plain object from a Row message. Also converts values to other types if specified. + * @param message Row + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.bigtable.v2.Row, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Row to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Row + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a Family. */ + interface IFamily { + + /** Family name */ + name?: (string|null); + + /** Family columns */ + columns?: (google.bigtable.v2.IColumn[]|null); + } + + /** Represents a Family. */ + class Family implements IFamily { + + /** + * Constructs a new Family. + * @param [properties] Properties to set + */ + constructor(properties?: google.bigtable.v2.IFamily); + + /** Family name. */ + public name: string; + + /** Family columns. */ + public columns: google.bigtable.v2.IColumn[]; + + /** + * Creates a new Family instance using the specified properties. + * @param [properties] Properties to set + * @returns Family instance + */ + public static create(properties?: google.bigtable.v2.IFamily): google.bigtable.v2.Family; + + /** + * Encodes the specified Family message. Does not implicitly {@link google.bigtable.v2.Family.verify|verify} messages. + * @param message Family message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.bigtable.v2.IFamily, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Family message, length delimited. Does not implicitly {@link google.bigtable.v2.Family.verify|verify} messages. + * @param message Family message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.bigtable.v2.IFamily, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Family message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Family + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.Family; + + /** + * Decodes a Family message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Family + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.Family; + + /** + * Verifies a Family message. + * @param message Plain 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 Family message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Family + */ + public static fromObject(object: { [k: string]: any }): google.bigtable.v2.Family; + + /** + * Creates a plain object from a Family message. Also converts values to other types if specified. + * @param message Family + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.bigtable.v2.Family, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Family to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Family + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a Column. */ + interface IColumn { + + /** Column qualifier */ + qualifier?: (Uint8Array|string|null); + + /** Column cells */ + cells?: (google.bigtable.v2.ICell[]|null); + } + + /** Represents a Column. */ + class Column implements IColumn { + + /** + * Constructs a new Column. + * @param [properties] Properties to set + */ + constructor(properties?: google.bigtable.v2.IColumn); + + /** Column qualifier. */ + public qualifier: (Uint8Array|string); + + /** Column cells. */ + public cells: google.bigtable.v2.ICell[]; + + /** + * Creates a new Column instance using the specified properties. + * @param [properties] Properties to set + * @returns Column instance + */ + public static create(properties?: google.bigtable.v2.IColumn): google.bigtable.v2.Column; + + /** + * Encodes the specified Column message. Does not implicitly {@link google.bigtable.v2.Column.verify|verify} messages. + * @param message Column message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.bigtable.v2.IColumn, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Column message, length delimited. Does not implicitly {@link google.bigtable.v2.Column.verify|verify} messages. + * @param message Column message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.bigtable.v2.IColumn, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Column message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Column + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.Column; + + /** + * Decodes a Column message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Column + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.Column; + + /** + * Verifies a Column message. + * @param message Plain 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 Column message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Column + */ + public static fromObject(object: { [k: string]: any }): google.bigtable.v2.Column; + + /** + * Creates a plain object from a Column message. Also converts values to other types if specified. + * @param message Column + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.bigtable.v2.Column, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Column to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Column + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a Cell. */ + interface ICell { + + /** Cell timestampMicros */ + timestampMicros?: (number|Long|string|null); + + /** Cell value */ + value?: (Uint8Array|string|null); + + /** Cell labels */ + labels?: (string[]|null); + } + + /** Represents a Cell. */ + class Cell implements ICell { + + /** + * Constructs a new Cell. + * @param [properties] Properties to set + */ + constructor(properties?: google.bigtable.v2.ICell); + + /** Cell timestampMicros. */ + public timestampMicros: (number|Long|string); + + /** Cell value. */ + public value: (Uint8Array|string); + + /** Cell labels. */ + public labels: string[]; + + /** + * Creates a new Cell instance using the specified properties. + * @param [properties] Properties to set + * @returns Cell instance + */ + public static create(properties?: google.bigtable.v2.ICell): google.bigtable.v2.Cell; + + /** + * Encodes the specified Cell message. Does not implicitly {@link google.bigtable.v2.Cell.verify|verify} messages. + * @param message Cell message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.bigtable.v2.ICell, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Cell message, length delimited. Does not implicitly {@link google.bigtable.v2.Cell.verify|verify} messages. + * @param message Cell message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.bigtable.v2.ICell, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Cell message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Cell + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.Cell; + + /** + * Decodes a Cell message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Cell + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.Cell; + + /** + * Verifies a Cell message. + * @param message Plain 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 Cell message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Cell + */ + public static fromObject(object: { [k: string]: any }): google.bigtable.v2.Cell; + + /** + * Creates a plain object from a Cell message. Also converts values to other types if specified. + * @param message Cell + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.bigtable.v2.Cell, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Cell to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Cell + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a RowRange. */ + interface IRowRange { + + /** RowRange startKeyClosed */ + startKeyClosed?: (Uint8Array|string|null); + + /** RowRange startKeyOpen */ + startKeyOpen?: (Uint8Array|string|null); + + /** RowRange endKeyOpen */ + endKeyOpen?: (Uint8Array|string|null); + + /** RowRange endKeyClosed */ + endKeyClosed?: (Uint8Array|string|null); + } + + /** Represents a RowRange. */ + class RowRange implements IRowRange { + + /** + * Constructs a new RowRange. + * @param [properties] Properties to set + */ + constructor(properties?: google.bigtable.v2.IRowRange); + + /** RowRange startKeyClosed. */ + public startKeyClosed?: (Uint8Array|string|null); + + /** RowRange startKeyOpen. */ + public startKeyOpen?: (Uint8Array|string|null); + + /** RowRange endKeyOpen. */ + public endKeyOpen?: (Uint8Array|string|null); + + /** RowRange endKeyClosed. */ + public endKeyClosed?: (Uint8Array|string|null); + + /** RowRange startKey. */ + public startKey?: ("startKeyClosed"|"startKeyOpen"); + + /** RowRange endKey. */ + public endKey?: ("endKeyOpen"|"endKeyClosed"); /** * Creates a new RowRange instance using the specified properties. @@ -14495,6 +15565,303 @@ export namespace google { public static getTypeUrl(typeUrlPrefix?: string): string; } + /** Properties of a StreamPartition. */ + interface IStreamPartition { + + /** StreamPartition rowRange */ + rowRange?: (google.bigtable.v2.IRowRange|null); + } + + /** Represents a StreamPartition. */ + class StreamPartition implements IStreamPartition { + + /** + * Constructs a new StreamPartition. + * @param [properties] Properties to set + */ + constructor(properties?: google.bigtable.v2.IStreamPartition); + + /** StreamPartition rowRange. */ + public rowRange?: (google.bigtable.v2.IRowRange|null); + + /** + * Creates a new StreamPartition instance using the specified properties. + * @param [properties] Properties to set + * @returns StreamPartition instance + */ + public static create(properties?: google.bigtable.v2.IStreamPartition): google.bigtable.v2.StreamPartition; + + /** + * Encodes the specified StreamPartition message. Does not implicitly {@link google.bigtable.v2.StreamPartition.verify|verify} messages. + * @param message StreamPartition message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.bigtable.v2.IStreamPartition, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified StreamPartition message, length delimited. Does not implicitly {@link google.bigtable.v2.StreamPartition.verify|verify} messages. + * @param message StreamPartition message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.bigtable.v2.IStreamPartition, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a StreamPartition message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns StreamPartition + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.StreamPartition; + + /** + * Decodes a StreamPartition message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns StreamPartition + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.StreamPartition; + + /** + * Verifies a StreamPartition message. + * @param message Plain 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 StreamPartition message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns StreamPartition + */ + public static fromObject(object: { [k: string]: any }): google.bigtable.v2.StreamPartition; + + /** + * Creates a plain object from a StreamPartition message. Also converts values to other types if specified. + * @param message StreamPartition + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.bigtable.v2.StreamPartition, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this StreamPartition to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for StreamPartition + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a StreamContinuationTokens. */ + interface IStreamContinuationTokens { + + /** StreamContinuationTokens tokens */ + tokens?: (google.bigtable.v2.IStreamContinuationToken[]|null); + } + + /** Represents a StreamContinuationTokens. */ + class StreamContinuationTokens implements IStreamContinuationTokens { + + /** + * Constructs a new StreamContinuationTokens. + * @param [properties] Properties to set + */ + constructor(properties?: google.bigtable.v2.IStreamContinuationTokens); + + /** StreamContinuationTokens tokens. */ + public tokens: google.bigtable.v2.IStreamContinuationToken[]; + + /** + * Creates a new StreamContinuationTokens instance using the specified properties. + * @param [properties] Properties to set + * @returns StreamContinuationTokens instance + */ + public static create(properties?: google.bigtable.v2.IStreamContinuationTokens): google.bigtable.v2.StreamContinuationTokens; + + /** + * Encodes the specified StreamContinuationTokens message. Does not implicitly {@link google.bigtable.v2.StreamContinuationTokens.verify|verify} messages. + * @param message StreamContinuationTokens message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.bigtable.v2.IStreamContinuationTokens, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified StreamContinuationTokens message, length delimited. Does not implicitly {@link google.bigtable.v2.StreamContinuationTokens.verify|verify} messages. + * @param message StreamContinuationTokens message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.bigtable.v2.IStreamContinuationTokens, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a StreamContinuationTokens message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns StreamContinuationTokens + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.StreamContinuationTokens; + + /** + * Decodes a StreamContinuationTokens message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns StreamContinuationTokens + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.StreamContinuationTokens; + + /** + * Verifies a StreamContinuationTokens message. + * @param message Plain 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 StreamContinuationTokens message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns StreamContinuationTokens + */ + public static fromObject(object: { [k: string]: any }): google.bigtable.v2.StreamContinuationTokens; + + /** + * Creates a plain object from a StreamContinuationTokens message. Also converts values to other types if specified. + * @param message StreamContinuationTokens + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.bigtable.v2.StreamContinuationTokens, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this StreamContinuationTokens to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for StreamContinuationTokens + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a StreamContinuationToken. */ + interface IStreamContinuationToken { + + /** StreamContinuationToken partition */ + partition?: (google.bigtable.v2.IStreamPartition|null); + + /** StreamContinuationToken token */ + token?: (string|null); + } + + /** Represents a StreamContinuationToken. */ + class StreamContinuationToken implements IStreamContinuationToken { + + /** + * Constructs a new StreamContinuationToken. + * @param [properties] Properties to set + */ + constructor(properties?: google.bigtable.v2.IStreamContinuationToken); + + /** StreamContinuationToken partition. */ + public partition?: (google.bigtable.v2.IStreamPartition|null); + + /** StreamContinuationToken token. */ + public token: string; + + /** + * Creates a new StreamContinuationToken instance using the specified properties. + * @param [properties] Properties to set + * @returns StreamContinuationToken instance + */ + public static create(properties?: google.bigtable.v2.IStreamContinuationToken): google.bigtable.v2.StreamContinuationToken; + + /** + * Encodes the specified StreamContinuationToken message. Does not implicitly {@link google.bigtable.v2.StreamContinuationToken.verify|verify} messages. + * @param message StreamContinuationToken message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.bigtable.v2.IStreamContinuationToken, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified StreamContinuationToken message, length delimited. Does not implicitly {@link google.bigtable.v2.StreamContinuationToken.verify|verify} messages. + * @param message StreamContinuationToken message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.bigtable.v2.IStreamContinuationToken, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a StreamContinuationToken message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns StreamContinuationToken + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.bigtable.v2.StreamContinuationToken; + + /** + * Decodes a StreamContinuationToken message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns StreamContinuationToken + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.bigtable.v2.StreamContinuationToken; + + /** + * Verifies a StreamContinuationToken message. + * @param message Plain 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 StreamContinuationToken message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns StreamContinuationToken + */ + public static fromObject(object: { [k: string]: any }): google.bigtable.v2.StreamContinuationToken; + + /** + * Creates a plain object from a StreamContinuationToken message. Also converts values to other types if specified. + * @param message StreamContinuationToken + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.bigtable.v2.StreamContinuationToken, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this StreamContinuationToken to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for StreamContinuationToken + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + /** Properties of a ReadIterationStats. */ interface IReadIterationStats { diff --git a/protos/protos.js b/protos/protos.js index e44d92fd8..4882e79b2 100644 --- a/protos/protos.js +++ b/protos/protos.js @@ -24390,6 +24390,72 @@ * @variation 2 */ + /** + * Callback as used by {@link google.bigtable.v2.Bigtable|generateInitialChangeStreamPartitions}. + * @memberof google.bigtable.v2.Bigtable + * @typedef GenerateInitialChangeStreamPartitionsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse} [response] GenerateInitialChangeStreamPartitionsResponse + */ + + /** + * Calls GenerateInitialChangeStreamPartitions. + * @function generateInitialChangeStreamPartitions + * @memberof google.bigtable.v2.Bigtable + * @instance + * @param {google.bigtable.v2.IGenerateInitialChangeStreamPartitionsRequest} request GenerateInitialChangeStreamPartitionsRequest message or plain object + * @param {google.bigtable.v2.Bigtable.GenerateInitialChangeStreamPartitionsCallback} callback Node-style callback called with the error, if any, and GenerateInitialChangeStreamPartitionsResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Bigtable.prototype.generateInitialChangeStreamPartitions = function generateInitialChangeStreamPartitions(request, callback) { + return this.rpcCall(generateInitialChangeStreamPartitions, $root.google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest, $root.google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse, request, callback); + }, "name", { value: "GenerateInitialChangeStreamPartitions" }); + + /** + * Calls GenerateInitialChangeStreamPartitions. + * @function generateInitialChangeStreamPartitions + * @memberof google.bigtable.v2.Bigtable + * @instance + * @param {google.bigtable.v2.IGenerateInitialChangeStreamPartitionsRequest} request GenerateInitialChangeStreamPartitionsRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.bigtable.v2.Bigtable|readChangeStream}. + * @memberof google.bigtable.v2.Bigtable + * @typedef ReadChangeStreamCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.bigtable.v2.ReadChangeStreamResponse} [response] ReadChangeStreamResponse + */ + + /** + * Calls ReadChangeStream. + * @function readChangeStream + * @memberof google.bigtable.v2.Bigtable + * @instance + * @param {google.bigtable.v2.IReadChangeStreamRequest} request ReadChangeStreamRequest message or plain object + * @param {google.bigtable.v2.Bigtable.ReadChangeStreamCallback} callback Node-style callback called with the error, if any, and ReadChangeStreamResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Bigtable.prototype.readChangeStream = function readChangeStream(request, callback) { + return this.rpcCall(readChangeStream, $root.google.bigtable.v2.ReadChangeStreamRequest, $root.google.bigtable.v2.ReadChangeStreamResponse, request, callback); + }, "name", { value: "ReadChangeStream" }); + + /** + * Calls ReadChangeStream. + * @function readChangeStream + * @memberof google.bigtable.v2.Bigtable + * @instance + * @param {google.bigtable.v2.IReadChangeStreamRequest} request ReadChangeStreamRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + return Bigtable; })(); @@ -28983,26 +29049,25 @@ return ReadModifyWriteRowResponse; })(); - v2.Row = (function() { + v2.GenerateInitialChangeStreamPartitionsRequest = (function() { /** - * Properties of a Row. + * Properties of a GenerateInitialChangeStreamPartitionsRequest. * @memberof google.bigtable.v2 - * @interface IRow - * @property {Uint8Array|null} [key] Row key - * @property {Array.|null} [families] Row families + * @interface IGenerateInitialChangeStreamPartitionsRequest + * @property {string|null} [tableName] GenerateInitialChangeStreamPartitionsRequest tableName + * @property {string|null} [appProfileId] GenerateInitialChangeStreamPartitionsRequest appProfileId */ /** - * Constructs a new Row. + * Constructs a new GenerateInitialChangeStreamPartitionsRequest. * @memberof google.bigtable.v2 - * @classdesc Represents a Row. - * @implements IRow + * @classdesc Represents a GenerateInitialChangeStreamPartitionsRequest. + * @implements IGenerateInitialChangeStreamPartitionsRequest * @constructor - * @param {google.bigtable.v2.IRow=} [properties] Properties to set + * @param {google.bigtable.v2.IGenerateInitialChangeStreamPartitionsRequest=} [properties] Properties to set */ - function Row(properties) { - this.families = []; + function GenerateInitialChangeStreamPartitionsRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -29010,92 +29075,89 @@ } /** - * Row key. - * @member {Uint8Array} key - * @memberof google.bigtable.v2.Row + * GenerateInitialChangeStreamPartitionsRequest tableName. + * @member {string} tableName + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest * @instance */ - Row.prototype.key = $util.newBuffer([]); + GenerateInitialChangeStreamPartitionsRequest.prototype.tableName = ""; /** - * Row families. - * @member {Array.} families - * @memberof google.bigtable.v2.Row + * GenerateInitialChangeStreamPartitionsRequest appProfileId. + * @member {string} appProfileId + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest * @instance */ - Row.prototype.families = $util.emptyArray; + GenerateInitialChangeStreamPartitionsRequest.prototype.appProfileId = ""; /** - * Creates a new Row instance using the specified properties. + * Creates a new GenerateInitialChangeStreamPartitionsRequest instance using the specified properties. * @function create - * @memberof google.bigtable.v2.Row + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest * @static - * @param {google.bigtable.v2.IRow=} [properties] Properties to set - * @returns {google.bigtable.v2.Row} Row instance + * @param {google.bigtable.v2.IGenerateInitialChangeStreamPartitionsRequest=} [properties] Properties to set + * @returns {google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest} GenerateInitialChangeStreamPartitionsRequest instance */ - Row.create = function create(properties) { - return new Row(properties); + GenerateInitialChangeStreamPartitionsRequest.create = function create(properties) { + return new GenerateInitialChangeStreamPartitionsRequest(properties); }; /** - * Encodes the specified Row message. Does not implicitly {@link google.bigtable.v2.Row.verify|verify} messages. + * Encodes the specified GenerateInitialChangeStreamPartitionsRequest message. Does not implicitly {@link google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest.verify|verify} messages. * @function encode - * @memberof google.bigtable.v2.Row + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest * @static - * @param {google.bigtable.v2.IRow} message Row message or plain object to encode + * @param {google.bigtable.v2.IGenerateInitialChangeStreamPartitionsRequest} message GenerateInitialChangeStreamPartitionsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Row.encode = function encode(message, writer) { + GenerateInitialChangeStreamPartitionsRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.key != null && Object.hasOwnProperty.call(message, "key")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.key); - if (message.families != null && message.families.length) - for (var i = 0; i < message.families.length; ++i) - $root.google.bigtable.v2.Family.encode(message.families[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.tableName != null && Object.hasOwnProperty.call(message, "tableName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.tableName); + if (message.appProfileId != null && Object.hasOwnProperty.call(message, "appProfileId")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.appProfileId); return writer; }; /** - * Encodes the specified Row message, length delimited. Does not implicitly {@link google.bigtable.v2.Row.verify|verify} messages. + * Encodes the specified GenerateInitialChangeStreamPartitionsRequest message, length delimited. Does not implicitly {@link google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.bigtable.v2.Row + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest * @static - * @param {google.bigtable.v2.IRow} message Row message or plain object to encode + * @param {google.bigtable.v2.IGenerateInitialChangeStreamPartitionsRequest} message GenerateInitialChangeStreamPartitionsRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Row.encodeDelimited = function encodeDelimited(message, writer) { + GenerateInitialChangeStreamPartitionsRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Row message from the specified reader or buffer. + * Decodes a GenerateInitialChangeStreamPartitionsRequest message from the specified reader or buffer. * @function decode - * @memberof google.bigtable.v2.Row + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.Row} Row + * @returns {google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest} GenerateInitialChangeStreamPartitionsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Row.decode = function decode(reader, length) { + GenerateInitialChangeStreamPartitionsRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Row(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.key = reader.bytes(); + message.tableName = reader.string(); break; } case 2: { - if (!(message.families && message.families.length)) - message.families = []; - message.families.push($root.google.bigtable.v2.Family.decode(reader, reader.uint32())); + message.appProfileId = reader.string(); break; } default: @@ -29107,159 +29169,131 @@ }; /** - * Decodes a Row message from the specified reader or buffer, length delimited. + * Decodes a GenerateInitialChangeStreamPartitionsRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.bigtable.v2.Row + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.Row} Row + * @returns {google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest} GenerateInitialChangeStreamPartitionsRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Row.decodeDelimited = function decodeDelimited(reader) { + GenerateInitialChangeStreamPartitionsRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Row message. + * Verifies a GenerateInitialChangeStreamPartitionsRequest message. * @function verify - * @memberof google.bigtable.v2.Row + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Row.verify = function verify(message) { + GenerateInitialChangeStreamPartitionsRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.key != null && message.hasOwnProperty("key")) - if (!(message.key && typeof message.key.length === "number" || $util.isString(message.key))) - return "key: buffer expected"; - if (message.families != null && message.hasOwnProperty("families")) { - if (!Array.isArray(message.families)) - return "families: array expected"; - for (var i = 0; i < message.families.length; ++i) { - var error = $root.google.bigtable.v2.Family.verify(message.families[i]); - if (error) - return "families." + error; - } - } + if (message.tableName != null && message.hasOwnProperty("tableName")) + if (!$util.isString(message.tableName)) + return "tableName: string expected"; + if (message.appProfileId != null && message.hasOwnProperty("appProfileId")) + if (!$util.isString(message.appProfileId)) + return "appProfileId: string expected"; return null; }; /** - * Creates a Row message from a plain object. Also converts values to their respective internal types. + * Creates a GenerateInitialChangeStreamPartitionsRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.bigtable.v2.Row + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest * @static * @param {Object.} object Plain object - * @returns {google.bigtable.v2.Row} Row + * @returns {google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest} GenerateInitialChangeStreamPartitionsRequest */ - Row.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.Row) + GenerateInitialChangeStreamPartitionsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest) return object; - var message = new $root.google.bigtable.v2.Row(); - if (object.key != null) - if (typeof object.key === "string") - $util.base64.decode(object.key, message.key = $util.newBuffer($util.base64.length(object.key)), 0); - else if (object.key.length >= 0) - message.key = object.key; - if (object.families) { - if (!Array.isArray(object.families)) - throw TypeError(".google.bigtable.v2.Row.families: array expected"); - message.families = []; - for (var i = 0; i < object.families.length; ++i) { - if (typeof object.families[i] !== "object") - throw TypeError(".google.bigtable.v2.Row.families: object expected"); - message.families[i] = $root.google.bigtable.v2.Family.fromObject(object.families[i]); - } - } + var message = new $root.google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest(); + if (object.tableName != null) + message.tableName = String(object.tableName); + if (object.appProfileId != null) + message.appProfileId = String(object.appProfileId); return message; }; /** - * Creates a plain object from a Row message. Also converts values to other types if specified. + * Creates a plain object from a GenerateInitialChangeStreamPartitionsRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.bigtable.v2.Row + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest * @static - * @param {google.bigtable.v2.Row} message Row + * @param {google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest} message GenerateInitialChangeStreamPartitionsRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Row.toObject = function toObject(message, options) { + GenerateInitialChangeStreamPartitionsRequest.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.families = []; - if (options.defaults) - if (options.bytes === String) - object.key = ""; - else { - object.key = []; - if (options.bytes !== Array) - object.key = $util.newBuffer(object.key); - } - if (message.key != null && message.hasOwnProperty("key")) - object.key = options.bytes === String ? $util.base64.encode(message.key, 0, message.key.length) : options.bytes === Array ? Array.prototype.slice.call(message.key) : message.key; - if (message.families && message.families.length) { - object.families = []; - for (var j = 0; j < message.families.length; ++j) - object.families[j] = $root.google.bigtable.v2.Family.toObject(message.families[j], options); + if (options.defaults) { + object.tableName = ""; + object.appProfileId = ""; } + if (message.tableName != null && message.hasOwnProperty("tableName")) + object.tableName = message.tableName; + if (message.appProfileId != null && message.hasOwnProperty("appProfileId")) + object.appProfileId = message.appProfileId; return object; }; /** - * Converts this Row to JSON. + * Converts this GenerateInitialChangeStreamPartitionsRequest to JSON. * @function toJSON - * @memberof google.bigtable.v2.Row + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest * @instance * @returns {Object.} JSON object */ - Row.prototype.toJSON = function toJSON() { + GenerateInitialChangeStreamPartitionsRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for Row + * Gets the default type url for GenerateInitialChangeStreamPartitionsRequest * @function getTypeUrl - * @memberof google.bigtable.v2.Row + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - Row.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + GenerateInitialChangeStreamPartitionsRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.bigtable.v2.Row"; + return typeUrlPrefix + "/google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest"; }; - return Row; + return GenerateInitialChangeStreamPartitionsRequest; })(); - v2.Family = (function() { + v2.GenerateInitialChangeStreamPartitionsResponse = (function() { /** - * Properties of a Family. + * Properties of a GenerateInitialChangeStreamPartitionsResponse. * @memberof google.bigtable.v2 - * @interface IFamily - * @property {string|null} [name] Family name - * @property {Array.|null} [columns] Family columns + * @interface IGenerateInitialChangeStreamPartitionsResponse + * @property {google.bigtable.v2.IStreamPartition|null} [partition] GenerateInitialChangeStreamPartitionsResponse partition */ /** - * Constructs a new Family. + * Constructs a new GenerateInitialChangeStreamPartitionsResponse. * @memberof google.bigtable.v2 - * @classdesc Represents a Family. - * @implements IFamily + * @classdesc Represents a GenerateInitialChangeStreamPartitionsResponse. + * @implements IGenerateInitialChangeStreamPartitionsResponse * @constructor - * @param {google.bigtable.v2.IFamily=} [properties] Properties to set + * @param {google.bigtable.v2.IGenerateInitialChangeStreamPartitionsResponse=} [properties] Properties to set */ - function Family(properties) { - this.columns = []; + function GenerateInitialChangeStreamPartitionsResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -29267,92 +29301,75 @@ } /** - * Family name. - * @member {string} name - * @memberof google.bigtable.v2.Family - * @instance - */ - Family.prototype.name = ""; - - /** - * Family columns. - * @member {Array.} columns - * @memberof google.bigtable.v2.Family + * GenerateInitialChangeStreamPartitionsResponse partition. + * @member {google.bigtable.v2.IStreamPartition|null|undefined} partition + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse * @instance */ - Family.prototype.columns = $util.emptyArray; + GenerateInitialChangeStreamPartitionsResponse.prototype.partition = null; /** - * Creates a new Family instance using the specified properties. + * Creates a new GenerateInitialChangeStreamPartitionsResponse instance using the specified properties. * @function create - * @memberof google.bigtable.v2.Family + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse * @static - * @param {google.bigtable.v2.IFamily=} [properties] Properties to set - * @returns {google.bigtable.v2.Family} Family instance + * @param {google.bigtable.v2.IGenerateInitialChangeStreamPartitionsResponse=} [properties] Properties to set + * @returns {google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse} GenerateInitialChangeStreamPartitionsResponse instance */ - Family.create = function create(properties) { - return new Family(properties); + GenerateInitialChangeStreamPartitionsResponse.create = function create(properties) { + return new GenerateInitialChangeStreamPartitionsResponse(properties); }; /** - * Encodes the specified Family message. Does not implicitly {@link google.bigtable.v2.Family.verify|verify} messages. + * Encodes the specified GenerateInitialChangeStreamPartitionsResponse message. Does not implicitly {@link google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse.verify|verify} messages. * @function encode - * @memberof google.bigtable.v2.Family + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse * @static - * @param {google.bigtable.v2.IFamily} message Family message or plain object to encode + * @param {google.bigtable.v2.IGenerateInitialChangeStreamPartitionsResponse} message GenerateInitialChangeStreamPartitionsResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Family.encode = function encode(message, writer) { + GenerateInitialChangeStreamPartitionsResponse.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.name != null && Object.hasOwnProperty.call(message, "name")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); - if (message.columns != null && message.columns.length) - for (var i = 0; i < message.columns.length; ++i) - $root.google.bigtable.v2.Column.encode(message.columns[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.partition != null && Object.hasOwnProperty.call(message, "partition")) + $root.google.bigtable.v2.StreamPartition.encode(message.partition, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); return writer; }; /** - * Encodes the specified Family message, length delimited. Does not implicitly {@link google.bigtable.v2.Family.verify|verify} messages. + * Encodes the specified GenerateInitialChangeStreamPartitionsResponse message, length delimited. Does not implicitly {@link google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse.verify|verify} messages. * @function encodeDelimited - * @memberof google.bigtable.v2.Family + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse * @static - * @param {google.bigtable.v2.IFamily} message Family message or plain object to encode + * @param {google.bigtable.v2.IGenerateInitialChangeStreamPartitionsResponse} message GenerateInitialChangeStreamPartitionsResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Family.encodeDelimited = function encodeDelimited(message, writer) { + GenerateInitialChangeStreamPartitionsResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Family message from the specified reader or buffer. + * Decodes a GenerateInitialChangeStreamPartitionsResponse message from the specified reader or buffer. * @function decode - * @memberof google.bigtable.v2.Family + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.Family} Family + * @returns {google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse} GenerateInitialChangeStreamPartitionsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Family.decode = function decode(reader, length) { + GenerateInitialChangeStreamPartitionsResponse.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Family(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.name = reader.string(); - break; - } - case 2: { - if (!(message.columns && message.columns.length)) - message.columns = []; - message.columns.push($root.google.bigtable.v2.Column.decode(reader, reader.uint32())); + message.partition = $root.google.bigtable.v2.StreamPartition.decode(reader, reader.uint32()); break; } default: @@ -29364,150 +29381,133 @@ }; /** - * Decodes a Family message from the specified reader or buffer, length delimited. + * Decodes a GenerateInitialChangeStreamPartitionsResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.bigtable.v2.Family + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.Family} Family + * @returns {google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse} GenerateInitialChangeStreamPartitionsResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Family.decodeDelimited = function decodeDelimited(reader) { + GenerateInitialChangeStreamPartitionsResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Family message. + * Verifies a GenerateInitialChangeStreamPartitionsResponse message. * @function verify - * @memberof google.bigtable.v2.Family + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Family.verify = function verify(message) { + GenerateInitialChangeStreamPartitionsResponse.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.name != null && message.hasOwnProperty("name")) - if (!$util.isString(message.name)) - return "name: string expected"; - if (message.columns != null && message.hasOwnProperty("columns")) { - if (!Array.isArray(message.columns)) - return "columns: array expected"; - for (var i = 0; i < message.columns.length; ++i) { - var error = $root.google.bigtable.v2.Column.verify(message.columns[i]); - if (error) - return "columns." + error; - } + if (message.partition != null && message.hasOwnProperty("partition")) { + var error = $root.google.bigtable.v2.StreamPartition.verify(message.partition); + if (error) + return "partition." + error; } return null; }; /** - * Creates a Family message from a plain object. Also converts values to their respective internal types. + * Creates a GenerateInitialChangeStreamPartitionsResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.bigtable.v2.Family + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse * @static * @param {Object.} object Plain object - * @returns {google.bigtable.v2.Family} Family + * @returns {google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse} GenerateInitialChangeStreamPartitionsResponse */ - Family.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.Family) + GenerateInitialChangeStreamPartitionsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse) return object; - var message = new $root.google.bigtable.v2.Family(); - if (object.name != null) - message.name = String(object.name); - if (object.columns) { - if (!Array.isArray(object.columns)) - throw TypeError(".google.bigtable.v2.Family.columns: array expected"); - message.columns = []; - for (var i = 0; i < object.columns.length; ++i) { - if (typeof object.columns[i] !== "object") - throw TypeError(".google.bigtable.v2.Family.columns: object expected"); - message.columns[i] = $root.google.bigtable.v2.Column.fromObject(object.columns[i]); - } + var message = new $root.google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse(); + if (object.partition != null) { + if (typeof object.partition !== "object") + throw TypeError(".google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse.partition: object expected"); + message.partition = $root.google.bigtable.v2.StreamPartition.fromObject(object.partition); } return message; }; /** - * Creates a plain object from a Family message. Also converts values to other types if specified. + * Creates a plain object from a GenerateInitialChangeStreamPartitionsResponse message. Also converts values to other types if specified. * @function toObject - * @memberof google.bigtable.v2.Family + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse * @static - * @param {google.bigtable.v2.Family} message Family + * @param {google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse} message GenerateInitialChangeStreamPartitionsResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Family.toObject = function toObject(message, options) { + GenerateInitialChangeStreamPartitionsResponse.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.columns = []; if (options.defaults) - object.name = ""; - if (message.name != null && message.hasOwnProperty("name")) - object.name = message.name; - if (message.columns && message.columns.length) { - object.columns = []; - for (var j = 0; j < message.columns.length; ++j) - object.columns[j] = $root.google.bigtable.v2.Column.toObject(message.columns[j], options); - } + object.partition = null; + if (message.partition != null && message.hasOwnProperty("partition")) + object.partition = $root.google.bigtable.v2.StreamPartition.toObject(message.partition, options); return object; }; /** - * Converts this Family to JSON. + * Converts this GenerateInitialChangeStreamPartitionsResponse to JSON. * @function toJSON - * @memberof google.bigtable.v2.Family + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse * @instance * @returns {Object.} JSON object */ - Family.prototype.toJSON = function toJSON() { + GenerateInitialChangeStreamPartitionsResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for Family + * Gets the default type url for GenerateInitialChangeStreamPartitionsResponse * @function getTypeUrl - * @memberof google.bigtable.v2.Family + * @memberof google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - Family.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + GenerateInitialChangeStreamPartitionsResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.bigtable.v2.Family"; + return typeUrlPrefix + "/google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse"; }; - return Family; + return GenerateInitialChangeStreamPartitionsResponse; })(); - v2.Column = (function() { + v2.ReadChangeStreamRequest = (function() { /** - * Properties of a Column. + * Properties of a ReadChangeStreamRequest. * @memberof google.bigtable.v2 - * @interface IColumn - * @property {Uint8Array|null} [qualifier] Column qualifier - * @property {Array.|null} [cells] Column cells + * @interface IReadChangeStreamRequest + * @property {string|null} [tableName] ReadChangeStreamRequest tableName + * @property {string|null} [appProfileId] ReadChangeStreamRequest appProfileId + * @property {google.bigtable.v2.IStreamPartition|null} [partition] ReadChangeStreamRequest partition + * @property {google.protobuf.ITimestamp|null} [startTime] ReadChangeStreamRequest startTime + * @property {google.bigtable.v2.IStreamContinuationTokens|null} [continuationTokens] ReadChangeStreamRequest continuationTokens + * @property {google.protobuf.ITimestamp|null} [endTime] ReadChangeStreamRequest endTime + * @property {google.protobuf.IDuration|null} [heartbeatDuration] ReadChangeStreamRequest heartbeatDuration */ /** - * Constructs a new Column. + * Constructs a new ReadChangeStreamRequest. * @memberof google.bigtable.v2 - * @classdesc Represents a Column. - * @implements IColumn + * @classdesc Represents a ReadChangeStreamRequest. + * @implements IReadChangeStreamRequest * @constructor - * @param {google.bigtable.v2.IColumn=} [properties] Properties to set + * @param {google.bigtable.v2.IReadChangeStreamRequest=} [properties] Properties to set */ - function Column(properties) { - this.cells = []; + function ReadChangeStreamRequest(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -29515,92 +29515,173 @@ } /** - * Column qualifier. - * @member {Uint8Array} qualifier - * @memberof google.bigtable.v2.Column + * ReadChangeStreamRequest tableName. + * @member {string} tableName + * @memberof google.bigtable.v2.ReadChangeStreamRequest * @instance */ - Column.prototype.qualifier = $util.newBuffer([]); + ReadChangeStreamRequest.prototype.tableName = ""; /** - * Column cells. - * @member {Array.} cells - * @memberof google.bigtable.v2.Column + * ReadChangeStreamRequest appProfileId. + * @member {string} appProfileId + * @memberof google.bigtable.v2.ReadChangeStreamRequest * @instance */ - Column.prototype.cells = $util.emptyArray; + ReadChangeStreamRequest.prototype.appProfileId = ""; /** - * Creates a new Column instance using the specified properties. + * ReadChangeStreamRequest partition. + * @member {google.bigtable.v2.IStreamPartition|null|undefined} partition + * @memberof google.bigtable.v2.ReadChangeStreamRequest + * @instance + */ + ReadChangeStreamRequest.prototype.partition = null; + + /** + * ReadChangeStreamRequest startTime. + * @member {google.protobuf.ITimestamp|null|undefined} startTime + * @memberof google.bigtable.v2.ReadChangeStreamRequest + * @instance + */ + ReadChangeStreamRequest.prototype.startTime = null; + + /** + * ReadChangeStreamRequest continuationTokens. + * @member {google.bigtable.v2.IStreamContinuationTokens|null|undefined} continuationTokens + * @memberof google.bigtable.v2.ReadChangeStreamRequest + * @instance + */ + ReadChangeStreamRequest.prototype.continuationTokens = null; + + /** + * ReadChangeStreamRequest endTime. + * @member {google.protobuf.ITimestamp|null|undefined} endTime + * @memberof google.bigtable.v2.ReadChangeStreamRequest + * @instance + */ + ReadChangeStreamRequest.prototype.endTime = null; + + /** + * ReadChangeStreamRequest heartbeatDuration. + * @member {google.protobuf.IDuration|null|undefined} heartbeatDuration + * @memberof google.bigtable.v2.ReadChangeStreamRequest + * @instance + */ + ReadChangeStreamRequest.prototype.heartbeatDuration = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * ReadChangeStreamRequest startFrom. + * @member {"startTime"|"continuationTokens"|undefined} startFrom + * @memberof google.bigtable.v2.ReadChangeStreamRequest + * @instance + */ + Object.defineProperty(ReadChangeStreamRequest.prototype, "startFrom", { + get: $util.oneOfGetter($oneOfFields = ["startTime", "continuationTokens"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ReadChangeStreamRequest instance using the specified properties. * @function create - * @memberof google.bigtable.v2.Column + * @memberof google.bigtable.v2.ReadChangeStreamRequest * @static - * @param {google.bigtable.v2.IColumn=} [properties] Properties to set - * @returns {google.bigtable.v2.Column} Column instance + * @param {google.bigtable.v2.IReadChangeStreamRequest=} [properties] Properties to set + * @returns {google.bigtable.v2.ReadChangeStreamRequest} ReadChangeStreamRequest instance */ - Column.create = function create(properties) { - return new Column(properties); + ReadChangeStreamRequest.create = function create(properties) { + return new ReadChangeStreamRequest(properties); }; /** - * Encodes the specified Column message. Does not implicitly {@link google.bigtable.v2.Column.verify|verify} messages. + * Encodes the specified ReadChangeStreamRequest message. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamRequest.verify|verify} messages. * @function encode - * @memberof google.bigtable.v2.Column + * @memberof google.bigtable.v2.ReadChangeStreamRequest * @static - * @param {google.bigtable.v2.IColumn} message Column message or plain object to encode + * @param {google.bigtable.v2.IReadChangeStreamRequest} message ReadChangeStreamRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Column.encode = function encode(message, writer) { + ReadChangeStreamRequest.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.qualifier != null && Object.hasOwnProperty.call(message, "qualifier")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.qualifier); - if (message.cells != null && message.cells.length) - for (var i = 0; i < message.cells.length; ++i) - $root.google.bigtable.v2.Cell.encode(message.cells[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.tableName != null && Object.hasOwnProperty.call(message, "tableName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.tableName); + if (message.appProfileId != null && Object.hasOwnProperty.call(message, "appProfileId")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.appProfileId); + if (message.partition != null && Object.hasOwnProperty.call(message, "partition")) + $root.google.bigtable.v2.StreamPartition.encode(message.partition, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.startTime != null && Object.hasOwnProperty.call(message, "startTime")) + $root.google.protobuf.Timestamp.encode(message.startTime, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.endTime != null && Object.hasOwnProperty.call(message, "endTime")) + $root.google.protobuf.Timestamp.encode(message.endTime, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.continuationTokens != null && Object.hasOwnProperty.call(message, "continuationTokens")) + $root.google.bigtable.v2.StreamContinuationTokens.encode(message.continuationTokens, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.heartbeatDuration != null && Object.hasOwnProperty.call(message, "heartbeatDuration")) + $root.google.protobuf.Duration.encode(message.heartbeatDuration, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); return writer; }; /** - * Encodes the specified Column message, length delimited. Does not implicitly {@link google.bigtable.v2.Column.verify|verify} messages. + * Encodes the specified ReadChangeStreamRequest message, length delimited. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamRequest.verify|verify} messages. * @function encodeDelimited - * @memberof google.bigtable.v2.Column + * @memberof google.bigtable.v2.ReadChangeStreamRequest * @static - * @param {google.bigtable.v2.IColumn} message Column message or plain object to encode + * @param {google.bigtable.v2.IReadChangeStreamRequest} message ReadChangeStreamRequest message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Column.encodeDelimited = function encodeDelimited(message, writer) { + ReadChangeStreamRequest.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Column message from the specified reader or buffer. + * Decodes a ReadChangeStreamRequest message from the specified reader or buffer. * @function decode - * @memberof google.bigtable.v2.Column + * @memberof google.bigtable.v2.ReadChangeStreamRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.Column} Column + * @returns {google.bigtable.v2.ReadChangeStreamRequest} ReadChangeStreamRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Column.decode = function decode(reader, length) { + ReadChangeStreamRequest.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Column(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.ReadChangeStreamRequest(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.qualifier = reader.bytes(); + message.tableName = reader.string(); break; } case 2: { - if (!(message.cells && message.cells.length)) - message.cells = []; - message.cells.push($root.google.bigtable.v2.Cell.decode(reader, reader.uint32())); + message.appProfileId = reader.string(); + break; + } + case 3: { + message.partition = $root.google.bigtable.v2.StreamPartition.decode(reader, reader.uint32()); + break; + } + case 4: { + message.startTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 6: { + message.continuationTokens = $root.google.bigtable.v2.StreamContinuationTokens.decode(reader, reader.uint32()); + break; + } + case 5: { + message.endTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 7: { + message.heartbeatDuration = $root.google.protobuf.Duration.decode(reader, reader.uint32()); break; } default: @@ -29612,160 +29693,211 @@ }; /** - * Decodes a Column message from the specified reader or buffer, length delimited. + * Decodes a ReadChangeStreamRequest message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.bigtable.v2.Column + * @memberof google.bigtable.v2.ReadChangeStreamRequest * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.Column} Column + * @returns {google.bigtable.v2.ReadChangeStreamRequest} ReadChangeStreamRequest * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Column.decodeDelimited = function decodeDelimited(reader) { + ReadChangeStreamRequest.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Column message. + * Verifies a ReadChangeStreamRequest message. * @function verify - * @memberof google.bigtable.v2.Column + * @memberof google.bigtable.v2.ReadChangeStreamRequest * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Column.verify = function verify(message) { + ReadChangeStreamRequest.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.qualifier != null && message.hasOwnProperty("qualifier")) - if (!(message.qualifier && typeof message.qualifier.length === "number" || $util.isString(message.qualifier))) - return "qualifier: buffer expected"; - if (message.cells != null && message.hasOwnProperty("cells")) { - if (!Array.isArray(message.cells)) - return "cells: array expected"; - for (var i = 0; i < message.cells.length; ++i) { - var error = $root.google.bigtable.v2.Cell.verify(message.cells[i]); + var properties = {}; + if (message.tableName != null && message.hasOwnProperty("tableName")) + if (!$util.isString(message.tableName)) + return "tableName: string expected"; + if (message.appProfileId != null && message.hasOwnProperty("appProfileId")) + if (!$util.isString(message.appProfileId)) + return "appProfileId: string expected"; + if (message.partition != null && message.hasOwnProperty("partition")) { + var error = $root.google.bigtable.v2.StreamPartition.verify(message.partition); + if (error) + return "partition." + error; + } + if (message.startTime != null && message.hasOwnProperty("startTime")) { + properties.startFrom = 1; + { + var error = $root.google.protobuf.Timestamp.verify(message.startTime); if (error) - return "cells." + error; + return "startTime." + error; + } + } + if (message.continuationTokens != null && message.hasOwnProperty("continuationTokens")) { + if (properties.startFrom === 1) + return "startFrom: multiple values"; + properties.startFrom = 1; + { + var error = $root.google.bigtable.v2.StreamContinuationTokens.verify(message.continuationTokens); + if (error) + return "continuationTokens." + error; } } + if (message.endTime != null && message.hasOwnProperty("endTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.endTime); + if (error) + return "endTime." + error; + } + if (message.heartbeatDuration != null && message.hasOwnProperty("heartbeatDuration")) { + var error = $root.google.protobuf.Duration.verify(message.heartbeatDuration); + if (error) + return "heartbeatDuration." + error; + } return null; }; /** - * Creates a Column message from a plain object. Also converts values to their respective internal types. + * Creates a ReadChangeStreamRequest message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.bigtable.v2.Column + * @memberof google.bigtable.v2.ReadChangeStreamRequest * @static * @param {Object.} object Plain object - * @returns {google.bigtable.v2.Column} Column + * @returns {google.bigtable.v2.ReadChangeStreamRequest} ReadChangeStreamRequest */ - Column.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.Column) + ReadChangeStreamRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.ReadChangeStreamRequest) return object; - var message = new $root.google.bigtable.v2.Column(); - if (object.qualifier != null) - if (typeof object.qualifier === "string") - $util.base64.decode(object.qualifier, message.qualifier = $util.newBuffer($util.base64.length(object.qualifier)), 0); - else if (object.qualifier.length >= 0) - message.qualifier = object.qualifier; - if (object.cells) { - if (!Array.isArray(object.cells)) - throw TypeError(".google.bigtable.v2.Column.cells: array expected"); - message.cells = []; - for (var i = 0; i < object.cells.length; ++i) { - if (typeof object.cells[i] !== "object") - throw TypeError(".google.bigtable.v2.Column.cells: object expected"); - message.cells[i] = $root.google.bigtable.v2.Cell.fromObject(object.cells[i]); - } + var message = new $root.google.bigtable.v2.ReadChangeStreamRequest(); + if (object.tableName != null) + message.tableName = String(object.tableName); + if (object.appProfileId != null) + message.appProfileId = String(object.appProfileId); + if (object.partition != null) { + if (typeof object.partition !== "object") + throw TypeError(".google.bigtable.v2.ReadChangeStreamRequest.partition: object expected"); + message.partition = $root.google.bigtable.v2.StreamPartition.fromObject(object.partition); + } + if (object.startTime != null) { + if (typeof object.startTime !== "object") + throw TypeError(".google.bigtable.v2.ReadChangeStreamRequest.startTime: object expected"); + message.startTime = $root.google.protobuf.Timestamp.fromObject(object.startTime); + } + if (object.continuationTokens != null) { + if (typeof object.continuationTokens !== "object") + throw TypeError(".google.bigtable.v2.ReadChangeStreamRequest.continuationTokens: object expected"); + message.continuationTokens = $root.google.bigtable.v2.StreamContinuationTokens.fromObject(object.continuationTokens); + } + if (object.endTime != null) { + if (typeof object.endTime !== "object") + throw TypeError(".google.bigtable.v2.ReadChangeStreamRequest.endTime: object expected"); + message.endTime = $root.google.protobuf.Timestamp.fromObject(object.endTime); + } + if (object.heartbeatDuration != null) { + if (typeof object.heartbeatDuration !== "object") + throw TypeError(".google.bigtable.v2.ReadChangeStreamRequest.heartbeatDuration: object expected"); + message.heartbeatDuration = $root.google.protobuf.Duration.fromObject(object.heartbeatDuration); } return message; }; /** - * Creates a plain object from a Column message. Also converts values to other types if specified. + * Creates a plain object from a ReadChangeStreamRequest message. Also converts values to other types if specified. * @function toObject - * @memberof google.bigtable.v2.Column + * @memberof google.bigtable.v2.ReadChangeStreamRequest * @static - * @param {google.bigtable.v2.Column} message Column + * @param {google.bigtable.v2.ReadChangeStreamRequest} message ReadChangeStreamRequest * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Column.toObject = function toObject(message, options) { + ReadChangeStreamRequest.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.cells = []; - if (options.defaults) - if (options.bytes === String) - object.qualifier = ""; - else { - object.qualifier = []; - if (options.bytes !== Array) - object.qualifier = $util.newBuffer(object.qualifier); - } - if (message.qualifier != null && message.hasOwnProperty("qualifier")) - object.qualifier = options.bytes === String ? $util.base64.encode(message.qualifier, 0, message.qualifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.qualifier) : message.qualifier; - if (message.cells && message.cells.length) { - object.cells = []; - for (var j = 0; j < message.cells.length; ++j) - object.cells[j] = $root.google.bigtable.v2.Cell.toObject(message.cells[j], options); + if (options.defaults) { + object.tableName = ""; + object.appProfileId = ""; + object.partition = null; + object.endTime = null; + object.heartbeatDuration = null; + } + if (message.tableName != null && message.hasOwnProperty("tableName")) + object.tableName = message.tableName; + if (message.appProfileId != null && message.hasOwnProperty("appProfileId")) + object.appProfileId = message.appProfileId; + if (message.partition != null && message.hasOwnProperty("partition")) + object.partition = $root.google.bigtable.v2.StreamPartition.toObject(message.partition, options); + if (message.startTime != null && message.hasOwnProperty("startTime")) { + object.startTime = $root.google.protobuf.Timestamp.toObject(message.startTime, options); + if (options.oneofs) + object.startFrom = "startTime"; + } + if (message.endTime != null && message.hasOwnProperty("endTime")) + object.endTime = $root.google.protobuf.Timestamp.toObject(message.endTime, options); + if (message.continuationTokens != null && message.hasOwnProperty("continuationTokens")) { + object.continuationTokens = $root.google.bigtable.v2.StreamContinuationTokens.toObject(message.continuationTokens, options); + if (options.oneofs) + object.startFrom = "continuationTokens"; } + if (message.heartbeatDuration != null && message.hasOwnProperty("heartbeatDuration")) + object.heartbeatDuration = $root.google.protobuf.Duration.toObject(message.heartbeatDuration, options); return object; }; /** - * Converts this Column to JSON. + * Converts this ReadChangeStreamRequest to JSON. * @function toJSON - * @memberof google.bigtable.v2.Column + * @memberof google.bigtable.v2.ReadChangeStreamRequest * @instance * @returns {Object.} JSON object */ - Column.prototype.toJSON = function toJSON() { + ReadChangeStreamRequest.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for Column + * Gets the default type url for ReadChangeStreamRequest * @function getTypeUrl - * @memberof google.bigtable.v2.Column + * @memberof google.bigtable.v2.ReadChangeStreamRequest * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - Column.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + ReadChangeStreamRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.bigtable.v2.Column"; + return typeUrlPrefix + "/google.bigtable.v2.ReadChangeStreamRequest"; }; - return Column; + return ReadChangeStreamRequest; })(); - v2.Cell = (function() { + v2.ReadChangeStreamResponse = (function() { /** - * Properties of a Cell. + * Properties of a ReadChangeStreamResponse. * @memberof google.bigtable.v2 - * @interface ICell - * @property {number|Long|null} [timestampMicros] Cell timestampMicros - * @property {Uint8Array|null} [value] Cell value - * @property {Array.|null} [labels] Cell labels + * @interface IReadChangeStreamResponse + * @property {google.bigtable.v2.ReadChangeStreamResponse.IDataChange|null} [dataChange] ReadChangeStreamResponse dataChange + * @property {google.bigtable.v2.ReadChangeStreamResponse.IHeartbeat|null} [heartbeat] ReadChangeStreamResponse heartbeat + * @property {google.bigtable.v2.ReadChangeStreamResponse.ICloseStream|null} [closeStream] ReadChangeStreamResponse closeStream */ /** - * Constructs a new Cell. + * Constructs a new ReadChangeStreamResponse. * @memberof google.bigtable.v2 - * @classdesc Represents a Cell. - * @implements ICell + * @classdesc Represents a ReadChangeStreamResponse. + * @implements IReadChangeStreamResponse * @constructor - * @param {google.bigtable.v2.ICell=} [properties] Properties to set + * @param {google.bigtable.v2.IReadChangeStreamResponse=} [properties] Properties to set */ - function Cell(properties) { - this.labels = []; + function ReadChangeStreamResponse(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -29773,106 +29905,117 @@ } /** - * Cell timestampMicros. - * @member {number|Long} timestampMicros - * @memberof google.bigtable.v2.Cell + * ReadChangeStreamResponse dataChange. + * @member {google.bigtable.v2.ReadChangeStreamResponse.IDataChange|null|undefined} dataChange + * @memberof google.bigtable.v2.ReadChangeStreamResponse * @instance */ - Cell.prototype.timestampMicros = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + ReadChangeStreamResponse.prototype.dataChange = null; /** - * Cell value. - * @member {Uint8Array} value - * @memberof google.bigtable.v2.Cell + * ReadChangeStreamResponse heartbeat. + * @member {google.bigtable.v2.ReadChangeStreamResponse.IHeartbeat|null|undefined} heartbeat + * @memberof google.bigtable.v2.ReadChangeStreamResponse * @instance */ - Cell.prototype.value = $util.newBuffer([]); + ReadChangeStreamResponse.prototype.heartbeat = null; /** - * Cell labels. - * @member {Array.} labels - * @memberof google.bigtable.v2.Cell + * ReadChangeStreamResponse closeStream. + * @member {google.bigtable.v2.ReadChangeStreamResponse.ICloseStream|null|undefined} closeStream + * @memberof google.bigtable.v2.ReadChangeStreamResponse * @instance */ - Cell.prototype.labels = $util.emptyArray; + ReadChangeStreamResponse.prototype.closeStream = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; /** - * Creates a new Cell instance using the specified properties. + * ReadChangeStreamResponse streamRecord. + * @member {"dataChange"|"heartbeat"|"closeStream"|undefined} streamRecord + * @memberof google.bigtable.v2.ReadChangeStreamResponse + * @instance + */ + Object.defineProperty(ReadChangeStreamResponse.prototype, "streamRecord", { + get: $util.oneOfGetter($oneOfFields = ["dataChange", "heartbeat", "closeStream"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ReadChangeStreamResponse instance using the specified properties. * @function create - * @memberof google.bigtable.v2.Cell + * @memberof google.bigtable.v2.ReadChangeStreamResponse * @static - * @param {google.bigtable.v2.ICell=} [properties] Properties to set - * @returns {google.bigtable.v2.Cell} Cell instance + * @param {google.bigtable.v2.IReadChangeStreamResponse=} [properties] Properties to set + * @returns {google.bigtable.v2.ReadChangeStreamResponse} ReadChangeStreamResponse instance */ - Cell.create = function create(properties) { - return new Cell(properties); + ReadChangeStreamResponse.create = function create(properties) { + return new ReadChangeStreamResponse(properties); }; /** - * Encodes the specified Cell message. Does not implicitly {@link google.bigtable.v2.Cell.verify|verify} messages. + * Encodes the specified ReadChangeStreamResponse message. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.verify|verify} messages. * @function encode - * @memberof google.bigtable.v2.Cell + * @memberof google.bigtable.v2.ReadChangeStreamResponse * @static - * @param {google.bigtable.v2.ICell} message Cell message or plain object to encode + * @param {google.bigtable.v2.IReadChangeStreamResponse} message ReadChangeStreamResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Cell.encode = function encode(message, writer) { + ReadChangeStreamResponse.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.timestampMicros != null && Object.hasOwnProperty.call(message, "timestampMicros")) - writer.uint32(/* id 1, wireType 0 =*/8).int64(message.timestampMicros); - if (message.value != null && Object.hasOwnProperty.call(message, "value")) - writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.value); - if (message.labels != null && message.labels.length) - for (var i = 0; i < message.labels.length; ++i) - writer.uint32(/* id 3, wireType 2 =*/26).string(message.labels[i]); + if (message.dataChange != null && Object.hasOwnProperty.call(message, "dataChange")) + $root.google.bigtable.v2.ReadChangeStreamResponse.DataChange.encode(message.dataChange, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.heartbeat != null && Object.hasOwnProperty.call(message, "heartbeat")) + $root.google.bigtable.v2.ReadChangeStreamResponse.Heartbeat.encode(message.heartbeat, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.closeStream != null && Object.hasOwnProperty.call(message, "closeStream")) + $root.google.bigtable.v2.ReadChangeStreamResponse.CloseStream.encode(message.closeStream, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; /** - * Encodes the specified Cell message, length delimited. Does not implicitly {@link google.bigtable.v2.Cell.verify|verify} messages. + * Encodes the specified ReadChangeStreamResponse message, length delimited. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.verify|verify} messages. * @function encodeDelimited - * @memberof google.bigtable.v2.Cell + * @memberof google.bigtable.v2.ReadChangeStreamResponse * @static - * @param {google.bigtable.v2.ICell} message Cell message or plain object to encode + * @param {google.bigtable.v2.IReadChangeStreamResponse} message ReadChangeStreamResponse message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Cell.encodeDelimited = function encodeDelimited(message, writer) { + ReadChangeStreamResponse.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Cell message from the specified reader or buffer. + * Decodes a ReadChangeStreamResponse message from the specified reader or buffer. * @function decode - * @memberof google.bigtable.v2.Cell + * @memberof google.bigtable.v2.ReadChangeStreamResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.Cell} Cell + * @returns {google.bigtable.v2.ReadChangeStreamResponse} ReadChangeStreamResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Cell.decode = function decode(reader, length) { + ReadChangeStreamResponse.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Cell(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.ReadChangeStreamResponse(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.timestampMicros = reader.int64(); + message.dataChange = $root.google.bigtable.v2.ReadChangeStreamResponse.DataChange.decode(reader, reader.uint32()); break; } case 2: { - message.value = reader.bytes(); + message.heartbeat = $root.google.bigtable.v2.ReadChangeStreamResponse.Heartbeat.decode(reader, reader.uint32()); break; } case 3: { - if (!(message.labels && message.labels.length)) - message.labels = []; - message.labels.push(reader.string()); + message.closeStream = $root.google.bigtable.v2.ReadChangeStreamResponse.CloseStream.decode(reader, reader.uint32()); break; } default: @@ -29884,1525 +30027,1720 @@ }; /** - * Decodes a Cell message from the specified reader or buffer, length delimited. + * Decodes a ReadChangeStreamResponse message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.bigtable.v2.Cell + * @memberof google.bigtable.v2.ReadChangeStreamResponse * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.Cell} Cell + * @returns {google.bigtable.v2.ReadChangeStreamResponse} ReadChangeStreamResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Cell.decodeDelimited = function decodeDelimited(reader) { + ReadChangeStreamResponse.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Cell message. + * Verifies a ReadChangeStreamResponse message. * @function verify - * @memberof google.bigtable.v2.Cell + * @memberof google.bigtable.v2.ReadChangeStreamResponse * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Cell.verify = function verify(message) { + ReadChangeStreamResponse.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.timestampMicros != null && message.hasOwnProperty("timestampMicros")) - if (!$util.isInteger(message.timestampMicros) && !(message.timestampMicros && $util.isInteger(message.timestampMicros.low) && $util.isInteger(message.timestampMicros.high))) - return "timestampMicros: integer|Long expected"; - if (message.value != null && message.hasOwnProperty("value")) - if (!(message.value && typeof message.value.length === "number" || $util.isString(message.value))) - return "value: buffer expected"; - if (message.labels != null && message.hasOwnProperty("labels")) { - if (!Array.isArray(message.labels)) - return "labels: array expected"; - for (var i = 0; i < message.labels.length; ++i) - if (!$util.isString(message.labels[i])) - return "labels: string[] expected"; + var properties = {}; + if (message.dataChange != null && message.hasOwnProperty("dataChange")) { + properties.streamRecord = 1; + { + var error = $root.google.bigtable.v2.ReadChangeStreamResponse.DataChange.verify(message.dataChange); + if (error) + return "dataChange." + error; + } + } + if (message.heartbeat != null && message.hasOwnProperty("heartbeat")) { + if (properties.streamRecord === 1) + return "streamRecord: multiple values"; + properties.streamRecord = 1; + { + var error = $root.google.bigtable.v2.ReadChangeStreamResponse.Heartbeat.verify(message.heartbeat); + if (error) + return "heartbeat." + error; + } + } + if (message.closeStream != null && message.hasOwnProperty("closeStream")) { + if (properties.streamRecord === 1) + return "streamRecord: multiple values"; + properties.streamRecord = 1; + { + var error = $root.google.bigtable.v2.ReadChangeStreamResponse.CloseStream.verify(message.closeStream); + if (error) + return "closeStream." + error; + } } return null; }; /** - * Creates a Cell message from a plain object. Also converts values to their respective internal types. + * Creates a ReadChangeStreamResponse message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.bigtable.v2.Cell + * @memberof google.bigtable.v2.ReadChangeStreamResponse * @static * @param {Object.} object Plain object - * @returns {google.bigtable.v2.Cell} Cell + * @returns {google.bigtable.v2.ReadChangeStreamResponse} ReadChangeStreamResponse */ - Cell.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.Cell) + ReadChangeStreamResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.ReadChangeStreamResponse) return object; - var message = new $root.google.bigtable.v2.Cell(); - if (object.timestampMicros != null) - if ($util.Long) - (message.timestampMicros = $util.Long.fromValue(object.timestampMicros)).unsigned = false; - else if (typeof object.timestampMicros === "string") - message.timestampMicros = parseInt(object.timestampMicros, 10); - else if (typeof object.timestampMicros === "number") - message.timestampMicros = object.timestampMicros; - else if (typeof object.timestampMicros === "object") - message.timestampMicros = new $util.LongBits(object.timestampMicros.low >>> 0, object.timestampMicros.high >>> 0).toNumber(); - if (object.value != null) - if (typeof object.value === "string") - $util.base64.decode(object.value, message.value = $util.newBuffer($util.base64.length(object.value)), 0); - else if (object.value.length >= 0) - message.value = object.value; - if (object.labels) { - if (!Array.isArray(object.labels)) - throw TypeError(".google.bigtable.v2.Cell.labels: array expected"); - message.labels = []; - for (var i = 0; i < object.labels.length; ++i) - message.labels[i] = String(object.labels[i]); + var message = new $root.google.bigtable.v2.ReadChangeStreamResponse(); + if (object.dataChange != null) { + if (typeof object.dataChange !== "object") + throw TypeError(".google.bigtable.v2.ReadChangeStreamResponse.dataChange: object expected"); + message.dataChange = $root.google.bigtable.v2.ReadChangeStreamResponse.DataChange.fromObject(object.dataChange); + } + if (object.heartbeat != null) { + if (typeof object.heartbeat !== "object") + throw TypeError(".google.bigtable.v2.ReadChangeStreamResponse.heartbeat: object expected"); + message.heartbeat = $root.google.bigtable.v2.ReadChangeStreamResponse.Heartbeat.fromObject(object.heartbeat); + } + if (object.closeStream != null) { + if (typeof object.closeStream !== "object") + throw TypeError(".google.bigtable.v2.ReadChangeStreamResponse.closeStream: object expected"); + message.closeStream = $root.google.bigtable.v2.ReadChangeStreamResponse.CloseStream.fromObject(object.closeStream); } return message; }; /** - * Creates a plain object from a Cell message. Also converts values to other types if specified. + * Creates a plain object from a ReadChangeStreamResponse message. Also converts values to other types if specified. * @function toObject - * @memberof google.bigtable.v2.Cell + * @memberof google.bigtable.v2.ReadChangeStreamResponse * @static - * @param {google.bigtable.v2.Cell} message Cell + * @param {google.bigtable.v2.ReadChangeStreamResponse} message ReadChangeStreamResponse * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Cell.toObject = function toObject(message, options) { + ReadChangeStreamResponse.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.arrays || options.defaults) - object.labels = []; - if (options.defaults) { - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.timestampMicros = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.timestampMicros = options.longs === String ? "0" : 0; - if (options.bytes === String) - object.value = ""; - else { - object.value = []; - if (options.bytes !== Array) - object.value = $util.newBuffer(object.value); - } + if (message.dataChange != null && message.hasOwnProperty("dataChange")) { + object.dataChange = $root.google.bigtable.v2.ReadChangeStreamResponse.DataChange.toObject(message.dataChange, options); + if (options.oneofs) + object.streamRecord = "dataChange"; } - if (message.timestampMicros != null && message.hasOwnProperty("timestampMicros")) - if (typeof message.timestampMicros === "number") - object.timestampMicros = options.longs === String ? String(message.timestampMicros) : message.timestampMicros; - else - object.timestampMicros = options.longs === String ? $util.Long.prototype.toString.call(message.timestampMicros) : options.longs === Number ? new $util.LongBits(message.timestampMicros.low >>> 0, message.timestampMicros.high >>> 0).toNumber() : message.timestampMicros; - if (message.value != null && message.hasOwnProperty("value")) - object.value = options.bytes === String ? $util.base64.encode(message.value, 0, message.value.length) : options.bytes === Array ? Array.prototype.slice.call(message.value) : message.value; - if (message.labels && message.labels.length) { - object.labels = []; - for (var j = 0; j < message.labels.length; ++j) - object.labels[j] = message.labels[j]; + if (message.heartbeat != null && message.hasOwnProperty("heartbeat")) { + object.heartbeat = $root.google.bigtable.v2.ReadChangeStreamResponse.Heartbeat.toObject(message.heartbeat, options); + if (options.oneofs) + object.streamRecord = "heartbeat"; + } + if (message.closeStream != null && message.hasOwnProperty("closeStream")) { + object.closeStream = $root.google.bigtable.v2.ReadChangeStreamResponse.CloseStream.toObject(message.closeStream, options); + if (options.oneofs) + object.streamRecord = "closeStream"; } return object; }; /** - * Converts this Cell to JSON. + * Converts this ReadChangeStreamResponse to JSON. * @function toJSON - * @memberof google.bigtable.v2.Cell + * @memberof google.bigtable.v2.ReadChangeStreamResponse * @instance * @returns {Object.} JSON object */ - Cell.prototype.toJSON = function toJSON() { + ReadChangeStreamResponse.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for Cell + * Gets the default type url for ReadChangeStreamResponse * @function getTypeUrl - * @memberof google.bigtable.v2.Cell + * @memberof google.bigtable.v2.ReadChangeStreamResponse * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - Cell.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + ReadChangeStreamResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.bigtable.v2.Cell"; + return typeUrlPrefix + "/google.bigtable.v2.ReadChangeStreamResponse"; }; - return Cell; - })(); - - v2.RowRange = (function() { - - /** - * Properties of a RowRange. - * @memberof google.bigtable.v2 - * @interface IRowRange - * @property {Uint8Array|null} [startKeyClosed] RowRange startKeyClosed - * @property {Uint8Array|null} [startKeyOpen] RowRange startKeyOpen - * @property {Uint8Array|null} [endKeyOpen] RowRange endKeyOpen - * @property {Uint8Array|null} [endKeyClosed] RowRange endKeyClosed - */ - - /** - * Constructs a new RowRange. - * @memberof google.bigtable.v2 - * @classdesc Represents a RowRange. - * @implements IRowRange - * @constructor - * @param {google.bigtable.v2.IRowRange=} [properties] Properties to set - */ - function RowRange(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + ReadChangeStreamResponse.MutationChunk = (function() { - /** - * RowRange startKeyClosed. - * @member {Uint8Array|null|undefined} startKeyClosed - * @memberof google.bigtable.v2.RowRange - * @instance - */ - RowRange.prototype.startKeyClosed = null; + /** + * Properties of a MutationChunk. + * @memberof google.bigtable.v2.ReadChangeStreamResponse + * @interface IMutationChunk + * @property {google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.IChunkInfo|null} [chunkInfo] MutationChunk chunkInfo + * @property {google.bigtable.v2.IMutation|null} [mutation] MutationChunk mutation + */ - /** - * RowRange startKeyOpen. - * @member {Uint8Array|null|undefined} startKeyOpen - * @memberof google.bigtable.v2.RowRange - * @instance - */ - RowRange.prototype.startKeyOpen = null; + /** + * Constructs a new MutationChunk. + * @memberof google.bigtable.v2.ReadChangeStreamResponse + * @classdesc Represents a MutationChunk. + * @implements IMutationChunk + * @constructor + * @param {google.bigtable.v2.ReadChangeStreamResponse.IMutationChunk=} [properties] Properties to set + */ + function MutationChunk(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * RowRange endKeyOpen. - * @member {Uint8Array|null|undefined} endKeyOpen - * @memberof google.bigtable.v2.RowRange - * @instance - */ - RowRange.prototype.endKeyOpen = null; + /** + * MutationChunk chunkInfo. + * @member {google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.IChunkInfo|null|undefined} chunkInfo + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk + * @instance + */ + MutationChunk.prototype.chunkInfo = null; - /** - * RowRange endKeyClosed. - * @member {Uint8Array|null|undefined} endKeyClosed - * @memberof google.bigtable.v2.RowRange - * @instance - */ - RowRange.prototype.endKeyClosed = null; + /** + * MutationChunk mutation. + * @member {google.bigtable.v2.IMutation|null|undefined} mutation + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk + * @instance + */ + MutationChunk.prototype.mutation = null; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * Creates a new MutationChunk instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.IMutationChunk=} [properties] Properties to set + * @returns {google.bigtable.v2.ReadChangeStreamResponse.MutationChunk} MutationChunk instance + */ + MutationChunk.create = function create(properties) { + return new MutationChunk(properties); + }; - /** - * RowRange startKey. - * @member {"startKeyClosed"|"startKeyOpen"|undefined} startKey - * @memberof google.bigtable.v2.RowRange - * @instance - */ - Object.defineProperty(RowRange.prototype, "startKey", { - get: $util.oneOfGetter($oneOfFields = ["startKeyClosed", "startKeyOpen"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * Encodes the specified MutationChunk message. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.IMutationChunk} message MutationChunk message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MutationChunk.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.chunkInfo != null && Object.hasOwnProperty.call(message, "chunkInfo")) + $root.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo.encode(message.chunkInfo, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.mutation != null && Object.hasOwnProperty.call(message, "mutation")) + $root.google.bigtable.v2.Mutation.encode(message.mutation, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; - /** - * RowRange endKey. - * @member {"endKeyOpen"|"endKeyClosed"|undefined} endKey - * @memberof google.bigtable.v2.RowRange - * @instance - */ - Object.defineProperty(RowRange.prototype, "endKey", { - get: $util.oneOfGetter($oneOfFields = ["endKeyOpen", "endKeyClosed"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * Encodes the specified MutationChunk message, length delimited. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.IMutationChunk} message MutationChunk message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + MutationChunk.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Creates a new RowRange instance using the specified properties. - * @function create - * @memberof google.bigtable.v2.RowRange - * @static - * @param {google.bigtable.v2.IRowRange=} [properties] Properties to set - * @returns {google.bigtable.v2.RowRange} RowRange instance - */ - RowRange.create = function create(properties) { - return new RowRange(properties); - }; - - /** - * Encodes the specified RowRange message. Does not implicitly {@link google.bigtable.v2.RowRange.verify|verify} messages. - * @function encode - * @memberof google.bigtable.v2.RowRange - * @static - * @param {google.bigtable.v2.IRowRange} message RowRange message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RowRange.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.startKeyClosed != null && Object.hasOwnProperty.call(message, "startKeyClosed")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.startKeyClosed); - if (message.startKeyOpen != null && Object.hasOwnProperty.call(message, "startKeyOpen")) - writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.startKeyOpen); - if (message.endKeyOpen != null && Object.hasOwnProperty.call(message, "endKeyOpen")) - writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.endKeyOpen); - if (message.endKeyClosed != null && Object.hasOwnProperty.call(message, "endKeyClosed")) - writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.endKeyClosed); - return writer; - }; - - /** - * Encodes the specified RowRange message, length delimited. Does not implicitly {@link google.bigtable.v2.RowRange.verify|verify} messages. - * @function encodeDelimited - * @memberof google.bigtable.v2.RowRange - * @static - * @param {google.bigtable.v2.IRowRange} message RowRange message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RowRange.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a RowRange message from the specified reader or buffer. - * @function decode - * @memberof google.bigtable.v2.RowRange - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.RowRange} RowRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RowRange.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.RowRange(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - message.startKeyClosed = reader.bytes(); - break; - } - case 2: { - message.startKeyOpen = reader.bytes(); - break; - } - case 3: { - message.endKeyOpen = reader.bytes(); - break; - } - case 4: { - message.endKeyClosed = reader.bytes(); + /** + * Decodes a MutationChunk message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.ReadChangeStreamResponse.MutationChunk} MutationChunk + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MutationChunk.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.chunkInfo = $root.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo.decode(reader, reader.uint32()); + break; + } + case 2: { + message.mutation = $root.google.bigtable.v2.Mutation.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); break; } - default: - reader.skipType(tag & 7); - break; } - } - return message; - }; + return message; + }; - /** - * Decodes a RowRange message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.bigtable.v2.RowRange - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.RowRange} RowRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RowRange.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes a MutationChunk message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.ReadChangeStreamResponse.MutationChunk} MutationChunk + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + MutationChunk.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Verifies a RowRange message. - * @function verify - * @memberof google.bigtable.v2.RowRange - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - RowRange.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.startKeyClosed != null && message.hasOwnProperty("startKeyClosed")) { - properties.startKey = 1; - if (!(message.startKeyClosed && typeof message.startKeyClosed.length === "number" || $util.isString(message.startKeyClosed))) - return "startKeyClosed: buffer expected"; - } - if (message.startKeyOpen != null && message.hasOwnProperty("startKeyOpen")) { - if (properties.startKey === 1) - return "startKey: multiple values"; - properties.startKey = 1; - if (!(message.startKeyOpen && typeof message.startKeyOpen.length === "number" || $util.isString(message.startKeyOpen))) - return "startKeyOpen: buffer expected"; - } - if (message.endKeyOpen != null && message.hasOwnProperty("endKeyOpen")) { - properties.endKey = 1; - if (!(message.endKeyOpen && typeof message.endKeyOpen.length === "number" || $util.isString(message.endKeyOpen))) - return "endKeyOpen: buffer expected"; - } - if (message.endKeyClosed != null && message.hasOwnProperty("endKeyClosed")) { - if (properties.endKey === 1) - return "endKey: multiple values"; - properties.endKey = 1; - if (!(message.endKeyClosed && typeof message.endKeyClosed.length === "number" || $util.isString(message.endKeyClosed))) - return "endKeyClosed: buffer expected"; - } - return null; - }; + /** + * Verifies a MutationChunk message. + * @function verify + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + MutationChunk.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.chunkInfo != null && message.hasOwnProperty("chunkInfo")) { + var error = $root.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo.verify(message.chunkInfo); + if (error) + return "chunkInfo." + error; + } + if (message.mutation != null && message.hasOwnProperty("mutation")) { + var error = $root.google.bigtable.v2.Mutation.verify(message.mutation); + if (error) + return "mutation." + error; + } + return null; + }; - /** - * Creates a RowRange message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.bigtable.v2.RowRange - * @static - * @param {Object.} object Plain object - * @returns {google.bigtable.v2.RowRange} RowRange - */ - RowRange.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.RowRange) + /** + * Creates a MutationChunk message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.ReadChangeStreamResponse.MutationChunk} MutationChunk + */ + MutationChunk.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk) + return object; + var message = new $root.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk(); + if (object.chunkInfo != null) { + if (typeof object.chunkInfo !== "object") + throw TypeError(".google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.chunkInfo: object expected"); + message.chunkInfo = $root.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo.fromObject(object.chunkInfo); + } + if (object.mutation != null) { + if (typeof object.mutation !== "object") + throw TypeError(".google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.mutation: object expected"); + message.mutation = $root.google.bigtable.v2.Mutation.fromObject(object.mutation); + } + return message; + }; + + /** + * Creates a plain object from a MutationChunk message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.MutationChunk} message MutationChunk + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + MutationChunk.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.chunkInfo = null; + object.mutation = null; + } + if (message.chunkInfo != null && message.hasOwnProperty("chunkInfo")) + object.chunkInfo = $root.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo.toObject(message.chunkInfo, options); + if (message.mutation != null && message.hasOwnProperty("mutation")) + object.mutation = $root.google.bigtable.v2.Mutation.toObject(message.mutation, options); return object; - var message = new $root.google.bigtable.v2.RowRange(); - if (object.startKeyClosed != null) - if (typeof object.startKeyClosed === "string") - $util.base64.decode(object.startKeyClosed, message.startKeyClosed = $util.newBuffer($util.base64.length(object.startKeyClosed)), 0); - else if (object.startKeyClosed.length >= 0) - message.startKeyClosed = object.startKeyClosed; - if (object.startKeyOpen != null) - if (typeof object.startKeyOpen === "string") - $util.base64.decode(object.startKeyOpen, message.startKeyOpen = $util.newBuffer($util.base64.length(object.startKeyOpen)), 0); - else if (object.startKeyOpen.length >= 0) - message.startKeyOpen = object.startKeyOpen; - if (object.endKeyOpen != null) - if (typeof object.endKeyOpen === "string") - $util.base64.decode(object.endKeyOpen, message.endKeyOpen = $util.newBuffer($util.base64.length(object.endKeyOpen)), 0); - else if (object.endKeyOpen.length >= 0) - message.endKeyOpen = object.endKeyOpen; - if (object.endKeyClosed != null) - if (typeof object.endKeyClosed === "string") - $util.base64.decode(object.endKeyClosed, message.endKeyClosed = $util.newBuffer($util.base64.length(object.endKeyClosed)), 0); - else if (object.endKeyClosed.length >= 0) - message.endKeyClosed = object.endKeyClosed; - return message; - }; + }; - /** - * Creates a plain object from a RowRange message. Also converts values to other types if specified. - * @function toObject - * @memberof google.bigtable.v2.RowRange - * @static - * @param {google.bigtable.v2.RowRange} message RowRange - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - RowRange.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (message.startKeyClosed != null && message.hasOwnProperty("startKeyClosed")) { - object.startKeyClosed = options.bytes === String ? $util.base64.encode(message.startKeyClosed, 0, message.startKeyClosed.length) : options.bytes === Array ? Array.prototype.slice.call(message.startKeyClosed) : message.startKeyClosed; - if (options.oneofs) - object.startKey = "startKeyClosed"; - } - if (message.startKeyOpen != null && message.hasOwnProperty("startKeyOpen")) { - object.startKeyOpen = options.bytes === String ? $util.base64.encode(message.startKeyOpen, 0, message.startKeyOpen.length) : options.bytes === Array ? Array.prototype.slice.call(message.startKeyOpen) : message.startKeyOpen; - if (options.oneofs) - object.startKey = "startKeyOpen"; - } - if (message.endKeyOpen != null && message.hasOwnProperty("endKeyOpen")) { - object.endKeyOpen = options.bytes === String ? $util.base64.encode(message.endKeyOpen, 0, message.endKeyOpen.length) : options.bytes === Array ? Array.prototype.slice.call(message.endKeyOpen) : message.endKeyOpen; - if (options.oneofs) - object.endKey = "endKeyOpen"; - } - if (message.endKeyClosed != null && message.hasOwnProperty("endKeyClosed")) { - object.endKeyClosed = options.bytes === String ? $util.base64.encode(message.endKeyClosed, 0, message.endKeyClosed.length) : options.bytes === Array ? Array.prototype.slice.call(message.endKeyClosed) : message.endKeyClosed; - if (options.oneofs) - object.endKey = "endKeyClosed"; - } - return object; - }; - - /** - * Converts this RowRange to JSON. - * @function toJSON - * @memberof google.bigtable.v2.RowRange - * @instance - * @returns {Object.} JSON object - */ - RowRange.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Converts this MutationChunk to JSON. + * @function toJSON + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk + * @instance + * @returns {Object.} JSON object + */ + MutationChunk.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Gets the default type url for RowRange - * @function getTypeUrl - * @memberof google.bigtable.v2.RowRange - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - RowRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.bigtable.v2.RowRange"; - }; + /** + * Gets the default type url for MutationChunk + * @function getTypeUrl + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + MutationChunk.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.ReadChangeStreamResponse.MutationChunk"; + }; - return RowRange; - })(); + MutationChunk.ChunkInfo = (function() { - v2.RowSet = (function() { + /** + * Properties of a ChunkInfo. + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk + * @interface IChunkInfo + * @property {number|null} [chunkedValueSize] ChunkInfo chunkedValueSize + * @property {number|null} [chunkedValueOffset] ChunkInfo chunkedValueOffset + * @property {boolean|null} [lastChunk] ChunkInfo lastChunk + */ - /** - * Properties of a RowSet. - * @memberof google.bigtable.v2 - * @interface IRowSet - * @property {Array.|null} [rowKeys] RowSet rowKeys - * @property {Array.|null} [rowRanges] RowSet rowRanges - */ + /** + * Constructs a new ChunkInfo. + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk + * @classdesc Represents a ChunkInfo. + * @implements IChunkInfo + * @constructor + * @param {google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.IChunkInfo=} [properties] Properties to set + */ + function ChunkInfo(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Constructs a new RowSet. - * @memberof google.bigtable.v2 - * @classdesc Represents a RowSet. - * @implements IRowSet - * @constructor - * @param {google.bigtable.v2.IRowSet=} [properties] Properties to set - */ - function RowSet(properties) { - this.rowKeys = []; - this.rowRanges = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * ChunkInfo chunkedValueSize. + * @member {number} chunkedValueSize + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo + * @instance + */ + ChunkInfo.prototype.chunkedValueSize = 0; - /** - * RowSet rowKeys. - * @member {Array.} rowKeys - * @memberof google.bigtable.v2.RowSet - * @instance - */ - RowSet.prototype.rowKeys = $util.emptyArray; + /** + * ChunkInfo chunkedValueOffset. + * @member {number} chunkedValueOffset + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo + * @instance + */ + ChunkInfo.prototype.chunkedValueOffset = 0; - /** - * RowSet rowRanges. - * @member {Array.} rowRanges - * @memberof google.bigtable.v2.RowSet - * @instance - */ - RowSet.prototype.rowRanges = $util.emptyArray; + /** + * ChunkInfo lastChunk. + * @member {boolean} lastChunk + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo + * @instance + */ + ChunkInfo.prototype.lastChunk = false; - /** - * Creates a new RowSet instance using the specified properties. - * @function create - * @memberof google.bigtable.v2.RowSet - * @static - * @param {google.bigtable.v2.IRowSet=} [properties] Properties to set - * @returns {google.bigtable.v2.RowSet} RowSet instance - */ - RowSet.create = function create(properties) { - return new RowSet(properties); - }; + /** + * Creates a new ChunkInfo instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.IChunkInfo=} [properties] Properties to set + * @returns {google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo} ChunkInfo instance + */ + ChunkInfo.create = function create(properties) { + return new ChunkInfo(properties); + }; - /** - * Encodes the specified RowSet message. Does not implicitly {@link google.bigtable.v2.RowSet.verify|verify} messages. - * @function encode - * @memberof google.bigtable.v2.RowSet - * @static - * @param {google.bigtable.v2.IRowSet} message RowSet message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RowSet.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.rowKeys != null && message.rowKeys.length) - for (var i = 0; i < message.rowKeys.length; ++i) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.rowKeys[i]); - if (message.rowRanges != null && message.rowRanges.length) - for (var i = 0; i < message.rowRanges.length; ++i) - $root.google.bigtable.v2.RowRange.encode(message.rowRanges[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - return writer; - }; + /** + * Encodes the specified ChunkInfo message. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.IChunkInfo} message ChunkInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ChunkInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.chunkedValueSize != null && Object.hasOwnProperty.call(message, "chunkedValueSize")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.chunkedValueSize); + if (message.chunkedValueOffset != null && Object.hasOwnProperty.call(message, "chunkedValueOffset")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.chunkedValueOffset); + if (message.lastChunk != null && Object.hasOwnProperty.call(message, "lastChunk")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.lastChunk); + return writer; + }; - /** - * Encodes the specified RowSet message, length delimited. Does not implicitly {@link google.bigtable.v2.RowSet.verify|verify} messages. - * @function encodeDelimited - * @memberof google.bigtable.v2.RowSet - * @static - * @param {google.bigtable.v2.IRowSet} message RowSet message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - RowSet.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified ChunkInfo message, length delimited. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.IChunkInfo} message ChunkInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ChunkInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Decodes a RowSet message from the specified reader or buffer. - * @function decode - * @memberof google.bigtable.v2.RowSet - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.RowSet} RowSet - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RowSet.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.RowSet(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - if (!(message.rowKeys && message.rowKeys.length)) - message.rowKeys = []; - message.rowKeys.push(reader.bytes()); - break; - } - case 2: { - if (!(message.rowRanges && message.rowRanges.length)) - message.rowRanges = []; - message.rowRanges.push($root.google.bigtable.v2.RowRange.decode(reader, reader.uint32())); - break; + /** + * Decodes a ChunkInfo message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo} ChunkInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ChunkInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.chunkedValueSize = reader.int32(); + break; + } + case 2: { + message.chunkedValueOffset = reader.int32(); + break; + } + case 3: { + message.lastChunk = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + return message; + }; - /** - * Decodes a RowSet message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.bigtable.v2.RowSet - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.RowSet} RowSet - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - RowSet.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes a ChunkInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo} ChunkInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ChunkInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Verifies a RowSet message. - * @function verify - * @memberof google.bigtable.v2.RowSet - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - RowSet.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.rowKeys != null && message.hasOwnProperty("rowKeys")) { - if (!Array.isArray(message.rowKeys)) - return "rowKeys: array expected"; - for (var i = 0; i < message.rowKeys.length; ++i) - if (!(message.rowKeys[i] && typeof message.rowKeys[i].length === "number" || $util.isString(message.rowKeys[i]))) - return "rowKeys: buffer[] expected"; - } - if (message.rowRanges != null && message.hasOwnProperty("rowRanges")) { - if (!Array.isArray(message.rowRanges)) - return "rowRanges: array expected"; - for (var i = 0; i < message.rowRanges.length; ++i) { - var error = $root.google.bigtable.v2.RowRange.verify(message.rowRanges[i]); - if (error) - return "rowRanges." + error; - } - } - return null; - }; + /** + * Verifies a ChunkInfo message. + * @function verify + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ChunkInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.chunkedValueSize != null && message.hasOwnProperty("chunkedValueSize")) + if (!$util.isInteger(message.chunkedValueSize)) + return "chunkedValueSize: integer expected"; + if (message.chunkedValueOffset != null && message.hasOwnProperty("chunkedValueOffset")) + if (!$util.isInteger(message.chunkedValueOffset)) + return "chunkedValueOffset: integer expected"; + if (message.lastChunk != null && message.hasOwnProperty("lastChunk")) + if (typeof message.lastChunk !== "boolean") + return "lastChunk: boolean expected"; + return null; + }; - /** - * Creates a RowSet message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.bigtable.v2.RowSet - * @static - * @param {Object.} object Plain object - * @returns {google.bigtable.v2.RowSet} RowSet - */ - RowSet.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.RowSet) - return object; - var message = new $root.google.bigtable.v2.RowSet(); - if (object.rowKeys) { - if (!Array.isArray(object.rowKeys)) - throw TypeError(".google.bigtable.v2.RowSet.rowKeys: array expected"); - message.rowKeys = []; - for (var i = 0; i < object.rowKeys.length; ++i) - if (typeof object.rowKeys[i] === "string") - $util.base64.decode(object.rowKeys[i], message.rowKeys[i] = $util.newBuffer($util.base64.length(object.rowKeys[i])), 0); - else if (object.rowKeys[i].length >= 0) - message.rowKeys[i] = object.rowKeys[i]; - } - if (object.rowRanges) { - if (!Array.isArray(object.rowRanges)) - throw TypeError(".google.bigtable.v2.RowSet.rowRanges: array expected"); - message.rowRanges = []; - for (var i = 0; i < object.rowRanges.length; ++i) { - if (typeof object.rowRanges[i] !== "object") - throw TypeError(".google.bigtable.v2.RowSet.rowRanges: object expected"); - message.rowRanges[i] = $root.google.bigtable.v2.RowRange.fromObject(object.rowRanges[i]); - } - } - return message; - }; + /** + * Creates a ChunkInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo} ChunkInfo + */ + ChunkInfo.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo) + return object; + var message = new $root.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo(); + if (object.chunkedValueSize != null) + message.chunkedValueSize = object.chunkedValueSize | 0; + if (object.chunkedValueOffset != null) + message.chunkedValueOffset = object.chunkedValueOffset | 0; + if (object.lastChunk != null) + message.lastChunk = Boolean(object.lastChunk); + return message; + }; - /** - * Creates a plain object from a RowSet message. Also converts values to other types if specified. - * @function toObject - * @memberof google.bigtable.v2.RowSet - * @static - * @param {google.bigtable.v2.RowSet} message RowSet - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - RowSet.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) { - object.rowKeys = []; - object.rowRanges = []; - } - if (message.rowKeys && message.rowKeys.length) { - object.rowKeys = []; - for (var j = 0; j < message.rowKeys.length; ++j) - object.rowKeys[j] = options.bytes === String ? $util.base64.encode(message.rowKeys[j], 0, message.rowKeys[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.rowKeys[j]) : message.rowKeys[j]; - } - if (message.rowRanges && message.rowRanges.length) { - object.rowRanges = []; - for (var j = 0; j < message.rowRanges.length; ++j) - object.rowRanges[j] = $root.google.bigtable.v2.RowRange.toObject(message.rowRanges[j], options); - } - return object; - }; + /** + * Creates a plain object from a ChunkInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo} message ChunkInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ChunkInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.chunkedValueSize = 0; + object.chunkedValueOffset = 0; + object.lastChunk = false; + } + if (message.chunkedValueSize != null && message.hasOwnProperty("chunkedValueSize")) + object.chunkedValueSize = message.chunkedValueSize; + if (message.chunkedValueOffset != null && message.hasOwnProperty("chunkedValueOffset")) + object.chunkedValueOffset = message.chunkedValueOffset; + if (message.lastChunk != null && message.hasOwnProperty("lastChunk")) + object.lastChunk = message.lastChunk; + return object; + }; - /** - * Converts this RowSet to JSON. - * @function toJSON - * @memberof google.bigtable.v2.RowSet - * @instance - * @returns {Object.} JSON object - */ - RowSet.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Converts this ChunkInfo to JSON. + * @function toJSON + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo + * @instance + * @returns {Object.} JSON object + */ + ChunkInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Gets the default type url for RowSet - * @function getTypeUrl - * @memberof google.bigtable.v2.RowSet - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - RowSet.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.bigtable.v2.RowSet"; - }; + /** + * Gets the default type url for ChunkInfo + * @function getTypeUrl + * @memberof google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ChunkInfo.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo"; + }; - return RowSet; - })(); + return ChunkInfo; + })(); - v2.ColumnRange = (function() { + return MutationChunk; + })(); - /** - * Properties of a ColumnRange. - * @memberof google.bigtable.v2 - * @interface IColumnRange - * @property {string|null} [familyName] ColumnRange familyName - * @property {Uint8Array|null} [startQualifierClosed] ColumnRange startQualifierClosed - * @property {Uint8Array|null} [startQualifierOpen] ColumnRange startQualifierOpen - * @property {Uint8Array|null} [endQualifierClosed] ColumnRange endQualifierClosed - * @property {Uint8Array|null} [endQualifierOpen] ColumnRange endQualifierOpen - */ + ReadChangeStreamResponse.DataChange = (function() { - /** - * Constructs a new ColumnRange. - * @memberof google.bigtable.v2 - * @classdesc Represents a ColumnRange. - * @implements IColumnRange - * @constructor - * @param {google.bigtable.v2.IColumnRange=} [properties] Properties to set - */ - function ColumnRange(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a DataChange. + * @memberof google.bigtable.v2.ReadChangeStreamResponse + * @interface IDataChange + * @property {google.bigtable.v2.ReadChangeStreamResponse.DataChange.Type|null} [type] DataChange type + * @property {string|null} [sourceClusterId] DataChange sourceClusterId + * @property {Uint8Array|null} [rowKey] DataChange rowKey + * @property {google.protobuf.ITimestamp|null} [commitTimestamp] DataChange commitTimestamp + * @property {number|null} [tiebreaker] DataChange tiebreaker + * @property {Array.|null} [chunks] DataChange chunks + * @property {boolean|null} [done] DataChange done + * @property {string|null} [token] DataChange token + * @property {google.protobuf.ITimestamp|null} [estimatedLowWatermark] DataChange estimatedLowWatermark + */ - /** - * ColumnRange familyName. - * @member {string} familyName - * @memberof google.bigtable.v2.ColumnRange - * @instance - */ - ColumnRange.prototype.familyName = ""; + /** + * Constructs a new DataChange. + * @memberof google.bigtable.v2.ReadChangeStreamResponse + * @classdesc Represents a DataChange. + * @implements IDataChange + * @constructor + * @param {google.bigtable.v2.ReadChangeStreamResponse.IDataChange=} [properties] Properties to set + */ + function DataChange(properties) { + this.chunks = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * ColumnRange startQualifierClosed. - * @member {Uint8Array|null|undefined} startQualifierClosed - * @memberof google.bigtable.v2.ColumnRange - * @instance - */ - ColumnRange.prototype.startQualifierClosed = null; + /** + * DataChange type. + * @member {google.bigtable.v2.ReadChangeStreamResponse.DataChange.Type} type + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @instance + */ + DataChange.prototype.type = 0; - /** - * ColumnRange startQualifierOpen. - * @member {Uint8Array|null|undefined} startQualifierOpen - * @memberof google.bigtable.v2.ColumnRange - * @instance - */ - ColumnRange.prototype.startQualifierOpen = null; + /** + * DataChange sourceClusterId. + * @member {string} sourceClusterId + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @instance + */ + DataChange.prototype.sourceClusterId = ""; - /** - * ColumnRange endQualifierClosed. - * @member {Uint8Array|null|undefined} endQualifierClosed - * @memberof google.bigtable.v2.ColumnRange - * @instance - */ - ColumnRange.prototype.endQualifierClosed = null; + /** + * DataChange rowKey. + * @member {Uint8Array} rowKey + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @instance + */ + DataChange.prototype.rowKey = $util.newBuffer([]); - /** - * ColumnRange endQualifierOpen. - * @member {Uint8Array|null|undefined} endQualifierOpen - * @memberof google.bigtable.v2.ColumnRange - * @instance - */ - ColumnRange.prototype.endQualifierOpen = null; + /** + * DataChange commitTimestamp. + * @member {google.protobuf.ITimestamp|null|undefined} commitTimestamp + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @instance + */ + DataChange.prototype.commitTimestamp = null; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * DataChange tiebreaker. + * @member {number} tiebreaker + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @instance + */ + DataChange.prototype.tiebreaker = 0; - /** - * ColumnRange startQualifier. - * @member {"startQualifierClosed"|"startQualifierOpen"|undefined} startQualifier - * @memberof google.bigtable.v2.ColumnRange - * @instance - */ - Object.defineProperty(ColumnRange.prototype, "startQualifier", { - get: $util.oneOfGetter($oneOfFields = ["startQualifierClosed", "startQualifierOpen"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * DataChange chunks. + * @member {Array.} chunks + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @instance + */ + DataChange.prototype.chunks = $util.emptyArray; - /** - * ColumnRange endQualifier. - * @member {"endQualifierClosed"|"endQualifierOpen"|undefined} endQualifier - * @memberof google.bigtable.v2.ColumnRange - * @instance - */ - Object.defineProperty(ColumnRange.prototype, "endQualifier", { - get: $util.oneOfGetter($oneOfFields = ["endQualifierClosed", "endQualifierOpen"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * DataChange done. + * @member {boolean} done + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @instance + */ + DataChange.prototype.done = false; - /** - * Creates a new ColumnRange instance using the specified properties. - * @function create - * @memberof google.bigtable.v2.ColumnRange - * @static - * @param {google.bigtable.v2.IColumnRange=} [properties] Properties to set - * @returns {google.bigtable.v2.ColumnRange} ColumnRange instance - */ - ColumnRange.create = function create(properties) { - return new ColumnRange(properties); - }; + /** + * DataChange token. + * @member {string} token + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @instance + */ + DataChange.prototype.token = ""; - /** - * Encodes the specified ColumnRange message. Does not implicitly {@link google.bigtable.v2.ColumnRange.verify|verify} messages. - * @function encode - * @memberof google.bigtable.v2.ColumnRange - * @static - * @param {google.bigtable.v2.IColumnRange} message ColumnRange message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ColumnRange.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.familyName != null && Object.hasOwnProperty.call(message, "familyName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.familyName); - if (message.startQualifierClosed != null && Object.hasOwnProperty.call(message, "startQualifierClosed")) - writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.startQualifierClosed); - if (message.startQualifierOpen != null && Object.hasOwnProperty.call(message, "startQualifierOpen")) - writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.startQualifierOpen); - if (message.endQualifierClosed != null && Object.hasOwnProperty.call(message, "endQualifierClosed")) - writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.endQualifierClosed); - if (message.endQualifierOpen != null && Object.hasOwnProperty.call(message, "endQualifierOpen")) - writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.endQualifierOpen); - return writer; - }; + /** + * DataChange estimatedLowWatermark. + * @member {google.protobuf.ITimestamp|null|undefined} estimatedLowWatermark + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @instance + */ + DataChange.prototype.estimatedLowWatermark = null; - /** - * Encodes the specified ColumnRange message, length delimited. Does not implicitly {@link google.bigtable.v2.ColumnRange.verify|verify} messages. - * @function encodeDelimited - * @memberof google.bigtable.v2.ColumnRange - * @static - * @param {google.bigtable.v2.IColumnRange} message ColumnRange message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - ColumnRange.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Creates a new DataChange instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.IDataChange=} [properties] Properties to set + * @returns {google.bigtable.v2.ReadChangeStreamResponse.DataChange} DataChange instance + */ + DataChange.create = function create(properties) { + return new DataChange(properties); + }; - /** - * Decodes a ColumnRange message from the specified reader or buffer. - * @function decode - * @memberof google.bigtable.v2.ColumnRange - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.ColumnRange} ColumnRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ColumnRange.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.ColumnRange(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - message.familyName = reader.string(); - break; - } - case 2: { - message.startQualifierClosed = reader.bytes(); - break; - } - case 3: { - message.startQualifierOpen = reader.bytes(); + /** + * Encodes the specified DataChange message. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.DataChange.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.IDataChange} message DataChange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DataChange.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.type != null && Object.hasOwnProperty.call(message, "type")) + writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type); + if (message.sourceClusterId != null && Object.hasOwnProperty.call(message, "sourceClusterId")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.sourceClusterId); + if (message.rowKey != null && Object.hasOwnProperty.call(message, "rowKey")) + writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.rowKey); + if (message.commitTimestamp != null && Object.hasOwnProperty.call(message, "commitTimestamp")) + $root.google.protobuf.Timestamp.encode(message.commitTimestamp, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.tiebreaker != null && Object.hasOwnProperty.call(message, "tiebreaker")) + writer.uint32(/* id 5, wireType 0 =*/40).int32(message.tiebreaker); + if (message.chunks != null && message.chunks.length) + for (var i = 0; i < message.chunks.length; ++i) + $root.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.encode(message.chunks[i], writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.done != null && Object.hasOwnProperty.call(message, "done")) + writer.uint32(/* id 8, wireType 0 =*/64).bool(message.done); + if (message.token != null && Object.hasOwnProperty.call(message, "token")) + writer.uint32(/* id 9, wireType 2 =*/74).string(message.token); + if (message.estimatedLowWatermark != null && Object.hasOwnProperty.call(message, "estimatedLowWatermark")) + $root.google.protobuf.Timestamp.encode(message.estimatedLowWatermark, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified DataChange message, length delimited. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.DataChange.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.IDataChange} message DataChange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DataChange.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DataChange message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.ReadChangeStreamResponse.DataChange} DataChange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DataChange.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.ReadChangeStreamResponse.DataChange(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.type = reader.int32(); + break; + } + case 2: { + message.sourceClusterId = reader.string(); + break; + } + case 3: { + message.rowKey = reader.bytes(); + break; + } + case 4: { + message.commitTimestamp = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 5: { + message.tiebreaker = reader.int32(); + break; + } + case 6: { + if (!(message.chunks && message.chunks.length)) + message.chunks = []; + message.chunks.push($root.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.decode(reader, reader.uint32())); + break; + } + case 8: { + message.done = reader.bool(); + break; + } + case 9: { + message.token = reader.string(); + break; + } + case 10: { + message.estimatedLowWatermark = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); break; } - case 4: { - message.endQualifierClosed = reader.bytes(); + } + return message; + }; + + /** + * Decodes a DataChange message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.ReadChangeStreamResponse.DataChange} DataChange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DataChange.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DataChange message. + * @function verify + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DataChange.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.type != null && message.hasOwnProperty("type")) + switch (message.type) { + default: + return "type: enum value expected"; + case 0: + case 1: + case 2: + case 3: break; } - case 5: { - message.endQualifierOpen = reader.bytes(); - break; + if (message.sourceClusterId != null && message.hasOwnProperty("sourceClusterId")) + if (!$util.isString(message.sourceClusterId)) + return "sourceClusterId: string expected"; + if (message.rowKey != null && message.hasOwnProperty("rowKey")) + if (!(message.rowKey && typeof message.rowKey.length === "number" || $util.isString(message.rowKey))) + return "rowKey: buffer expected"; + if (message.commitTimestamp != null && message.hasOwnProperty("commitTimestamp")) { + var error = $root.google.protobuf.Timestamp.verify(message.commitTimestamp); + if (error) + return "commitTimestamp." + error; + } + if (message.tiebreaker != null && message.hasOwnProperty("tiebreaker")) + if (!$util.isInteger(message.tiebreaker)) + return "tiebreaker: integer expected"; + if (message.chunks != null && message.hasOwnProperty("chunks")) { + if (!Array.isArray(message.chunks)) + return "chunks: array expected"; + for (var i = 0; i < message.chunks.length; ++i) { + var error = $root.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.verify(message.chunks[i]); + if (error) + return "chunks." + error; } - default: - reader.skipType(tag & 7); - break; } - } - return message; - }; + if (message.done != null && message.hasOwnProperty("done")) + if (typeof message.done !== "boolean") + return "done: boolean expected"; + if (message.token != null && message.hasOwnProperty("token")) + if (!$util.isString(message.token)) + return "token: string expected"; + if (message.estimatedLowWatermark != null && message.hasOwnProperty("estimatedLowWatermark")) { + var error = $root.google.protobuf.Timestamp.verify(message.estimatedLowWatermark); + if (error) + return "estimatedLowWatermark." + error; + } + return null; + }; - /** - * Decodes a ColumnRange message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.bigtable.v2.ColumnRange - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.ColumnRange} ColumnRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - ColumnRange.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a ColumnRange message. - * @function verify - * @memberof google.bigtable.v2.ColumnRange - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - ColumnRange.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.familyName != null && message.hasOwnProperty("familyName")) - if (!$util.isString(message.familyName)) - return "familyName: string expected"; - if (message.startQualifierClosed != null && message.hasOwnProperty("startQualifierClosed")) { - properties.startQualifier = 1; - if (!(message.startQualifierClosed && typeof message.startQualifierClosed.length === "number" || $util.isString(message.startQualifierClosed))) - return "startQualifierClosed: buffer expected"; - } - if (message.startQualifierOpen != null && message.hasOwnProperty("startQualifierOpen")) { - if (properties.startQualifier === 1) - return "startQualifier: multiple values"; - properties.startQualifier = 1; - if (!(message.startQualifierOpen && typeof message.startQualifierOpen.length === "number" || $util.isString(message.startQualifierOpen))) - return "startQualifierOpen: buffer expected"; - } - if (message.endQualifierClosed != null && message.hasOwnProperty("endQualifierClosed")) { - properties.endQualifier = 1; - if (!(message.endQualifierClosed && typeof message.endQualifierClosed.length === "number" || $util.isString(message.endQualifierClosed))) - return "endQualifierClosed: buffer expected"; - } - if (message.endQualifierOpen != null && message.hasOwnProperty("endQualifierOpen")) { - if (properties.endQualifier === 1) - return "endQualifier: multiple values"; - properties.endQualifier = 1; - if (!(message.endQualifierOpen && typeof message.endQualifierOpen.length === "number" || $util.isString(message.endQualifierOpen))) - return "endQualifierOpen: buffer expected"; - } - return null; - }; + /** + * Creates a DataChange message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.ReadChangeStreamResponse.DataChange} DataChange + */ + DataChange.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.ReadChangeStreamResponse.DataChange) + return object; + var message = new $root.google.bigtable.v2.ReadChangeStreamResponse.DataChange(); + switch (object.type) { + default: + if (typeof object.type === "number") { + message.type = object.type; + break; + } + break; + case "TYPE_UNSPECIFIED": + case 0: + message.type = 0; + break; + case "USER": + case 1: + message.type = 1; + break; + case "GARBAGE_COLLECTION": + case 2: + message.type = 2; + break; + case "CONTINUATION": + case 3: + message.type = 3; + break; + } + if (object.sourceClusterId != null) + message.sourceClusterId = String(object.sourceClusterId); + if (object.rowKey != null) + if (typeof object.rowKey === "string") + $util.base64.decode(object.rowKey, message.rowKey = $util.newBuffer($util.base64.length(object.rowKey)), 0); + else if (object.rowKey.length >= 0) + message.rowKey = object.rowKey; + if (object.commitTimestamp != null) { + if (typeof object.commitTimestamp !== "object") + throw TypeError(".google.bigtable.v2.ReadChangeStreamResponse.DataChange.commitTimestamp: object expected"); + message.commitTimestamp = $root.google.protobuf.Timestamp.fromObject(object.commitTimestamp); + } + if (object.tiebreaker != null) + message.tiebreaker = object.tiebreaker | 0; + if (object.chunks) { + if (!Array.isArray(object.chunks)) + throw TypeError(".google.bigtable.v2.ReadChangeStreamResponse.DataChange.chunks: array expected"); + message.chunks = []; + for (var i = 0; i < object.chunks.length; ++i) { + if (typeof object.chunks[i] !== "object") + throw TypeError(".google.bigtable.v2.ReadChangeStreamResponse.DataChange.chunks: object expected"); + message.chunks[i] = $root.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.fromObject(object.chunks[i]); + } + } + if (object.done != null) + message.done = Boolean(object.done); + if (object.token != null) + message.token = String(object.token); + if (object.estimatedLowWatermark != null) { + if (typeof object.estimatedLowWatermark !== "object") + throw TypeError(".google.bigtable.v2.ReadChangeStreamResponse.DataChange.estimatedLowWatermark: object expected"); + message.estimatedLowWatermark = $root.google.protobuf.Timestamp.fromObject(object.estimatedLowWatermark); + } + return message; + }; - /** - * Creates a ColumnRange message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.bigtable.v2.ColumnRange - * @static - * @param {Object.} object Plain object - * @returns {google.bigtable.v2.ColumnRange} ColumnRange - */ - ColumnRange.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.ColumnRange) + /** + * Creates a plain object from a DataChange message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.DataChange} message DataChange + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DataChange.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.chunks = []; + if (options.defaults) { + object.type = options.enums === String ? "TYPE_UNSPECIFIED" : 0; + object.sourceClusterId = ""; + if (options.bytes === String) + object.rowKey = ""; + else { + object.rowKey = []; + if (options.bytes !== Array) + object.rowKey = $util.newBuffer(object.rowKey); + } + object.commitTimestamp = null; + object.tiebreaker = 0; + object.done = false; + object.token = ""; + object.estimatedLowWatermark = null; + } + if (message.type != null && message.hasOwnProperty("type")) + object.type = options.enums === String ? $root.google.bigtable.v2.ReadChangeStreamResponse.DataChange.Type[message.type] === undefined ? message.type : $root.google.bigtable.v2.ReadChangeStreamResponse.DataChange.Type[message.type] : message.type; + if (message.sourceClusterId != null && message.hasOwnProperty("sourceClusterId")) + object.sourceClusterId = message.sourceClusterId; + if (message.rowKey != null && message.hasOwnProperty("rowKey")) + object.rowKey = options.bytes === String ? $util.base64.encode(message.rowKey, 0, message.rowKey.length) : options.bytes === Array ? Array.prototype.slice.call(message.rowKey) : message.rowKey; + if (message.commitTimestamp != null && message.hasOwnProperty("commitTimestamp")) + object.commitTimestamp = $root.google.protobuf.Timestamp.toObject(message.commitTimestamp, options); + if (message.tiebreaker != null && message.hasOwnProperty("tiebreaker")) + object.tiebreaker = message.tiebreaker; + if (message.chunks && message.chunks.length) { + object.chunks = []; + for (var j = 0; j < message.chunks.length; ++j) + object.chunks[j] = $root.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.toObject(message.chunks[j], options); + } + if (message.done != null && message.hasOwnProperty("done")) + object.done = message.done; + if (message.token != null && message.hasOwnProperty("token")) + object.token = message.token; + if (message.estimatedLowWatermark != null && message.hasOwnProperty("estimatedLowWatermark")) + object.estimatedLowWatermark = $root.google.protobuf.Timestamp.toObject(message.estimatedLowWatermark, options); return object; - var message = new $root.google.bigtable.v2.ColumnRange(); - if (object.familyName != null) - message.familyName = String(object.familyName); - if (object.startQualifierClosed != null) - if (typeof object.startQualifierClosed === "string") - $util.base64.decode(object.startQualifierClosed, message.startQualifierClosed = $util.newBuffer($util.base64.length(object.startQualifierClosed)), 0); - else if (object.startQualifierClosed.length >= 0) - message.startQualifierClosed = object.startQualifierClosed; - if (object.startQualifierOpen != null) - if (typeof object.startQualifierOpen === "string") - $util.base64.decode(object.startQualifierOpen, message.startQualifierOpen = $util.newBuffer($util.base64.length(object.startQualifierOpen)), 0); - else if (object.startQualifierOpen.length >= 0) - message.startQualifierOpen = object.startQualifierOpen; - if (object.endQualifierClosed != null) - if (typeof object.endQualifierClosed === "string") - $util.base64.decode(object.endQualifierClosed, message.endQualifierClosed = $util.newBuffer($util.base64.length(object.endQualifierClosed)), 0); - else if (object.endQualifierClosed.length >= 0) - message.endQualifierClosed = object.endQualifierClosed; - if (object.endQualifierOpen != null) - if (typeof object.endQualifierOpen === "string") - $util.base64.decode(object.endQualifierOpen, message.endQualifierOpen = $util.newBuffer($util.base64.length(object.endQualifierOpen)), 0); - else if (object.endQualifierOpen.length >= 0) - message.endQualifierOpen = object.endQualifierOpen; - return message; - }; + }; - /** - * Creates a plain object from a ColumnRange message. Also converts values to other types if specified. - * @function toObject - * @memberof google.bigtable.v2.ColumnRange - * @static - * @param {google.bigtable.v2.ColumnRange} message ColumnRange - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - ColumnRange.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.familyName = ""; - if (message.familyName != null && message.hasOwnProperty("familyName")) - object.familyName = message.familyName; - if (message.startQualifierClosed != null && message.hasOwnProperty("startQualifierClosed")) { - object.startQualifierClosed = options.bytes === String ? $util.base64.encode(message.startQualifierClosed, 0, message.startQualifierClosed.length) : options.bytes === Array ? Array.prototype.slice.call(message.startQualifierClosed) : message.startQualifierClosed; - if (options.oneofs) - object.startQualifier = "startQualifierClosed"; - } - if (message.startQualifierOpen != null && message.hasOwnProperty("startQualifierOpen")) { - object.startQualifierOpen = options.bytes === String ? $util.base64.encode(message.startQualifierOpen, 0, message.startQualifierOpen.length) : options.bytes === Array ? Array.prototype.slice.call(message.startQualifierOpen) : message.startQualifierOpen; - if (options.oneofs) - object.startQualifier = "startQualifierOpen"; - } - if (message.endQualifierClosed != null && message.hasOwnProperty("endQualifierClosed")) { - object.endQualifierClosed = options.bytes === String ? $util.base64.encode(message.endQualifierClosed, 0, message.endQualifierClosed.length) : options.bytes === Array ? Array.prototype.slice.call(message.endQualifierClosed) : message.endQualifierClosed; - if (options.oneofs) - object.endQualifier = "endQualifierClosed"; - } - if (message.endQualifierOpen != null && message.hasOwnProperty("endQualifierOpen")) { - object.endQualifierOpen = options.bytes === String ? $util.base64.encode(message.endQualifierOpen, 0, message.endQualifierOpen.length) : options.bytes === Array ? Array.prototype.slice.call(message.endQualifierOpen) : message.endQualifierOpen; - if (options.oneofs) - object.endQualifier = "endQualifierOpen"; - } - return object; - }; + /** + * Converts this DataChange to JSON. + * @function toJSON + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @instance + * @returns {Object.} JSON object + */ + DataChange.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Converts this ColumnRange to JSON. - * @function toJSON - * @memberof google.bigtable.v2.ColumnRange - * @instance - * @returns {Object.} JSON object - */ - ColumnRange.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Gets the default type url for DataChange + * @function getTypeUrl + * @memberof google.bigtable.v2.ReadChangeStreamResponse.DataChange + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DataChange.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.ReadChangeStreamResponse.DataChange"; + }; - /** - * Gets the default type url for ColumnRange - * @function getTypeUrl - * @memberof google.bigtable.v2.ColumnRange - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - ColumnRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.bigtable.v2.ColumnRange"; - }; + /** + * Type enum. + * @name google.bigtable.v2.ReadChangeStreamResponse.DataChange.Type + * @enum {number} + * @property {number} TYPE_UNSPECIFIED=0 TYPE_UNSPECIFIED value + * @property {number} USER=1 USER value + * @property {number} GARBAGE_COLLECTION=2 GARBAGE_COLLECTION value + * @property {number} CONTINUATION=3 CONTINUATION value + */ + DataChange.Type = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "TYPE_UNSPECIFIED"] = 0; + values[valuesById[1] = "USER"] = 1; + values[valuesById[2] = "GARBAGE_COLLECTION"] = 2; + values[valuesById[3] = "CONTINUATION"] = 3; + return values; + })(); - return ColumnRange; - })(); + return DataChange; + })(); - v2.TimestampRange = (function() { + ReadChangeStreamResponse.Heartbeat = (function() { - /** - * Properties of a TimestampRange. - * @memberof google.bigtable.v2 - * @interface ITimestampRange - * @property {number|Long|null} [startTimestampMicros] TimestampRange startTimestampMicros - * @property {number|Long|null} [endTimestampMicros] TimestampRange endTimestampMicros - */ + /** + * Properties of a Heartbeat. + * @memberof google.bigtable.v2.ReadChangeStreamResponse + * @interface IHeartbeat + * @property {google.bigtable.v2.IStreamContinuationToken|null} [continuationToken] Heartbeat continuationToken + * @property {google.protobuf.ITimestamp|null} [estimatedLowWatermark] Heartbeat estimatedLowWatermark + */ - /** - * Constructs a new TimestampRange. - * @memberof google.bigtable.v2 - * @classdesc Represents a TimestampRange. - * @implements ITimestampRange - * @constructor - * @param {google.bigtable.v2.ITimestampRange=} [properties] Properties to set - */ - function TimestampRange(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Constructs a new Heartbeat. + * @memberof google.bigtable.v2.ReadChangeStreamResponse + * @classdesc Represents a Heartbeat. + * @implements IHeartbeat + * @constructor + * @param {google.bigtable.v2.ReadChangeStreamResponse.IHeartbeat=} [properties] Properties to set + */ + function Heartbeat(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * TimestampRange startTimestampMicros. - * @member {number|Long} startTimestampMicros - * @memberof google.bigtable.v2.TimestampRange - * @instance - */ - TimestampRange.prototype.startTimestampMicros = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + /** + * Heartbeat continuationToken. + * @member {google.bigtable.v2.IStreamContinuationToken|null|undefined} continuationToken + * @memberof google.bigtable.v2.ReadChangeStreamResponse.Heartbeat + * @instance + */ + Heartbeat.prototype.continuationToken = null; - /** - * TimestampRange endTimestampMicros. - * @member {number|Long} endTimestampMicros - * @memberof google.bigtable.v2.TimestampRange - * @instance - */ - TimestampRange.prototype.endTimestampMicros = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + /** + * Heartbeat estimatedLowWatermark. + * @member {google.protobuf.ITimestamp|null|undefined} estimatedLowWatermark + * @memberof google.bigtable.v2.ReadChangeStreamResponse.Heartbeat + * @instance + */ + Heartbeat.prototype.estimatedLowWatermark = null; - /** - * Creates a new TimestampRange instance using the specified properties. - * @function create - * @memberof google.bigtable.v2.TimestampRange - * @static - * @param {google.bigtable.v2.ITimestampRange=} [properties] Properties to set - * @returns {google.bigtable.v2.TimestampRange} TimestampRange instance - */ - TimestampRange.create = function create(properties) { - return new TimestampRange(properties); - }; + /** + * Creates a new Heartbeat instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.ReadChangeStreamResponse.Heartbeat + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.IHeartbeat=} [properties] Properties to set + * @returns {google.bigtable.v2.ReadChangeStreamResponse.Heartbeat} Heartbeat instance + */ + Heartbeat.create = function create(properties) { + return new Heartbeat(properties); + }; - /** - * Encodes the specified TimestampRange message. Does not implicitly {@link google.bigtable.v2.TimestampRange.verify|verify} messages. - * @function encode - * @memberof google.bigtable.v2.TimestampRange - * @static - * @param {google.bigtable.v2.ITimestampRange} message TimestampRange message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - TimestampRange.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.startTimestampMicros != null && Object.hasOwnProperty.call(message, "startTimestampMicros")) - writer.uint32(/* id 1, wireType 0 =*/8).int64(message.startTimestampMicros); - if (message.endTimestampMicros != null && Object.hasOwnProperty.call(message, "endTimestampMicros")) - writer.uint32(/* id 2, wireType 0 =*/16).int64(message.endTimestampMicros); - return writer; - }; + /** + * Encodes the specified Heartbeat message. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.Heartbeat.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.ReadChangeStreamResponse.Heartbeat + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.IHeartbeat} message Heartbeat message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Heartbeat.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.continuationToken != null && Object.hasOwnProperty.call(message, "continuationToken")) + $root.google.bigtable.v2.StreamContinuationToken.encode(message.continuationToken, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.estimatedLowWatermark != null && Object.hasOwnProperty.call(message, "estimatedLowWatermark")) + $root.google.protobuf.Timestamp.encode(message.estimatedLowWatermark, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; - /** - * Encodes the specified TimestampRange message, length delimited. Does not implicitly {@link google.bigtable.v2.TimestampRange.verify|verify} messages. - * @function encodeDelimited - * @memberof google.bigtable.v2.TimestampRange - * @static - * @param {google.bigtable.v2.ITimestampRange} message TimestampRange message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - TimestampRange.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified Heartbeat message, length delimited. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.Heartbeat.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.ReadChangeStreamResponse.Heartbeat + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.IHeartbeat} message Heartbeat message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Heartbeat.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Decodes a TimestampRange message from the specified reader or buffer. - * @function decode - * @memberof google.bigtable.v2.TimestampRange - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.TimestampRange} TimestampRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - TimestampRange.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.TimestampRange(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - message.startTimestampMicros = reader.int64(); - break; - } - case 2: { - message.endTimestampMicros = reader.int64(); + /** + * Decodes a Heartbeat message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.ReadChangeStreamResponse.Heartbeat + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.ReadChangeStreamResponse.Heartbeat} Heartbeat + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Heartbeat.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.ReadChangeStreamResponse.Heartbeat(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.continuationToken = $root.google.bigtable.v2.StreamContinuationToken.decode(reader, reader.uint32()); + break; + } + case 2: { + message.estimatedLowWatermark = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); break; } - default: - reader.skipType(tag & 7); - break; } - } - return message; - }; + return message; + }; - /** - * Decodes a TimestampRange message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.bigtable.v2.TimestampRange - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.TimestampRange} TimestampRange - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - TimestampRange.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Decodes a Heartbeat message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.ReadChangeStreamResponse.Heartbeat + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.ReadChangeStreamResponse.Heartbeat} Heartbeat + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Heartbeat.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Verifies a TimestampRange message. - * @function verify - * @memberof google.bigtable.v2.TimestampRange - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - TimestampRange.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.startTimestampMicros != null && message.hasOwnProperty("startTimestampMicros")) - if (!$util.isInteger(message.startTimestampMicros) && !(message.startTimestampMicros && $util.isInteger(message.startTimestampMicros.low) && $util.isInteger(message.startTimestampMicros.high))) - return "startTimestampMicros: integer|Long expected"; - if (message.endTimestampMicros != null && message.hasOwnProperty("endTimestampMicros")) - if (!$util.isInteger(message.endTimestampMicros) && !(message.endTimestampMicros && $util.isInteger(message.endTimestampMicros.low) && $util.isInteger(message.endTimestampMicros.high))) - return "endTimestampMicros: integer|Long expected"; - return null; - }; + /** + * Verifies a Heartbeat message. + * @function verify + * @memberof google.bigtable.v2.ReadChangeStreamResponse.Heartbeat + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Heartbeat.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.continuationToken != null && message.hasOwnProperty("continuationToken")) { + var error = $root.google.bigtable.v2.StreamContinuationToken.verify(message.continuationToken); + if (error) + return "continuationToken." + error; + } + if (message.estimatedLowWatermark != null && message.hasOwnProperty("estimatedLowWatermark")) { + var error = $root.google.protobuf.Timestamp.verify(message.estimatedLowWatermark); + if (error) + return "estimatedLowWatermark." + error; + } + return null; + }; - /** - * Creates a TimestampRange message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.bigtable.v2.TimestampRange - * @static - * @param {Object.} object Plain object - * @returns {google.bigtable.v2.TimestampRange} TimestampRange - */ - TimestampRange.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.TimestampRange) - return object; - var message = new $root.google.bigtable.v2.TimestampRange(); - if (object.startTimestampMicros != null) - if ($util.Long) - (message.startTimestampMicros = $util.Long.fromValue(object.startTimestampMicros)).unsigned = false; - else if (typeof object.startTimestampMicros === "string") - message.startTimestampMicros = parseInt(object.startTimestampMicros, 10); - else if (typeof object.startTimestampMicros === "number") - message.startTimestampMicros = object.startTimestampMicros; - else if (typeof object.startTimestampMicros === "object") - message.startTimestampMicros = new $util.LongBits(object.startTimestampMicros.low >>> 0, object.startTimestampMicros.high >>> 0).toNumber(); - if (object.endTimestampMicros != null) - if ($util.Long) - (message.endTimestampMicros = $util.Long.fromValue(object.endTimestampMicros)).unsigned = false; - else if (typeof object.endTimestampMicros === "string") - message.endTimestampMicros = parseInt(object.endTimestampMicros, 10); - else if (typeof object.endTimestampMicros === "number") - message.endTimestampMicros = object.endTimestampMicros; - else if (typeof object.endTimestampMicros === "object") - message.endTimestampMicros = new $util.LongBits(object.endTimestampMicros.low >>> 0, object.endTimestampMicros.high >>> 0).toNumber(); - return message; - }; + /** + * Creates a Heartbeat message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.ReadChangeStreamResponse.Heartbeat + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.ReadChangeStreamResponse.Heartbeat} Heartbeat + */ + Heartbeat.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.ReadChangeStreamResponse.Heartbeat) + return object; + var message = new $root.google.bigtable.v2.ReadChangeStreamResponse.Heartbeat(); + if (object.continuationToken != null) { + if (typeof object.continuationToken !== "object") + throw TypeError(".google.bigtable.v2.ReadChangeStreamResponse.Heartbeat.continuationToken: object expected"); + message.continuationToken = $root.google.bigtable.v2.StreamContinuationToken.fromObject(object.continuationToken); + } + if (object.estimatedLowWatermark != null) { + if (typeof object.estimatedLowWatermark !== "object") + throw TypeError(".google.bigtable.v2.ReadChangeStreamResponse.Heartbeat.estimatedLowWatermark: object expected"); + message.estimatedLowWatermark = $root.google.protobuf.Timestamp.fromObject(object.estimatedLowWatermark); + } + return message; + }; - /** - * Creates a plain object from a TimestampRange message. Also converts values to other types if specified. - * @function toObject - * @memberof google.bigtable.v2.TimestampRange - * @static - * @param {google.bigtable.v2.TimestampRange} message TimestampRange - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - TimestampRange.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.startTimestampMicros = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.startTimestampMicros = options.longs === String ? "0" : 0; - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.endTimestampMicros = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.endTimestampMicros = options.longs === String ? "0" : 0; - } - if (message.startTimestampMicros != null && message.hasOwnProperty("startTimestampMicros")) - if (typeof message.startTimestampMicros === "number") - object.startTimestampMicros = options.longs === String ? String(message.startTimestampMicros) : message.startTimestampMicros; - else - object.startTimestampMicros = options.longs === String ? $util.Long.prototype.toString.call(message.startTimestampMicros) : options.longs === Number ? new $util.LongBits(message.startTimestampMicros.low >>> 0, message.startTimestampMicros.high >>> 0).toNumber() : message.startTimestampMicros; - if (message.endTimestampMicros != null && message.hasOwnProperty("endTimestampMicros")) - if (typeof message.endTimestampMicros === "number") - object.endTimestampMicros = options.longs === String ? String(message.endTimestampMicros) : message.endTimestampMicros; - else - object.endTimestampMicros = options.longs === String ? $util.Long.prototype.toString.call(message.endTimestampMicros) : options.longs === Number ? new $util.LongBits(message.endTimestampMicros.low >>> 0, message.endTimestampMicros.high >>> 0).toNumber() : message.endTimestampMicros; - return object; - }; - - /** - * Converts this TimestampRange to JSON. - * @function toJSON - * @memberof google.bigtable.v2.TimestampRange - * @instance - * @returns {Object.} JSON object - */ - TimestampRange.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a plain object from a Heartbeat message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.ReadChangeStreamResponse.Heartbeat + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.Heartbeat} message Heartbeat + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Heartbeat.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.continuationToken = null; + object.estimatedLowWatermark = null; + } + if (message.continuationToken != null && message.hasOwnProperty("continuationToken")) + object.continuationToken = $root.google.bigtable.v2.StreamContinuationToken.toObject(message.continuationToken, options); + if (message.estimatedLowWatermark != null && message.hasOwnProperty("estimatedLowWatermark")) + object.estimatedLowWatermark = $root.google.protobuf.Timestamp.toObject(message.estimatedLowWatermark, options); + return object; + }; - /** - * Gets the default type url for TimestampRange - * @function getTypeUrl - * @memberof google.bigtable.v2.TimestampRange - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - TimestampRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.bigtable.v2.TimestampRange"; - }; + /** + * Converts this Heartbeat to JSON. + * @function toJSON + * @memberof google.bigtable.v2.ReadChangeStreamResponse.Heartbeat + * @instance + * @returns {Object.} JSON object + */ + Heartbeat.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return TimestampRange; - })(); + /** + * Gets the default type url for Heartbeat + * @function getTypeUrl + * @memberof google.bigtable.v2.ReadChangeStreamResponse.Heartbeat + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Heartbeat.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.ReadChangeStreamResponse.Heartbeat"; + }; - v2.ValueRange = (function() { + return Heartbeat; + })(); - /** - * Properties of a ValueRange. - * @memberof google.bigtable.v2 - * @interface IValueRange - * @property {Uint8Array|null} [startValueClosed] ValueRange startValueClosed - * @property {Uint8Array|null} [startValueOpen] ValueRange startValueOpen - * @property {Uint8Array|null} [endValueClosed] ValueRange endValueClosed - * @property {Uint8Array|null} [endValueOpen] ValueRange endValueOpen - */ + ReadChangeStreamResponse.CloseStream = (function() { - /** - * Constructs a new ValueRange. - * @memberof google.bigtable.v2 - * @classdesc Represents a ValueRange. - * @implements IValueRange - * @constructor - * @param {google.bigtable.v2.IValueRange=} [properties] Properties to set - */ - function ValueRange(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a CloseStream. + * @memberof google.bigtable.v2.ReadChangeStreamResponse + * @interface ICloseStream + * @property {google.rpc.IStatus|null} [status] CloseStream status + * @property {Array.|null} [continuationTokens] CloseStream continuationTokens + */ - /** - * ValueRange startValueClosed. - * @member {Uint8Array|null|undefined} startValueClosed - * @memberof google.bigtable.v2.ValueRange - * @instance - */ - ValueRange.prototype.startValueClosed = null; + /** + * Constructs a new CloseStream. + * @memberof google.bigtable.v2.ReadChangeStreamResponse + * @classdesc Represents a CloseStream. + * @implements ICloseStream + * @constructor + * @param {google.bigtable.v2.ReadChangeStreamResponse.ICloseStream=} [properties] Properties to set + */ + function CloseStream(properties) { + this.continuationTokens = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * ValueRange startValueOpen. - * @member {Uint8Array|null|undefined} startValueOpen - * @memberof google.bigtable.v2.ValueRange - * @instance - */ - ValueRange.prototype.startValueOpen = null; + /** + * CloseStream status. + * @member {google.rpc.IStatus|null|undefined} status + * @memberof google.bigtable.v2.ReadChangeStreamResponse.CloseStream + * @instance + */ + CloseStream.prototype.status = null; - /** - * ValueRange endValueClosed. - * @member {Uint8Array|null|undefined} endValueClosed - * @memberof google.bigtable.v2.ValueRange - * @instance - */ - ValueRange.prototype.endValueClosed = null; + /** + * CloseStream continuationTokens. + * @member {Array.} continuationTokens + * @memberof google.bigtable.v2.ReadChangeStreamResponse.CloseStream + * @instance + */ + CloseStream.prototype.continuationTokens = $util.emptyArray; - /** - * ValueRange endValueOpen. - * @member {Uint8Array|null|undefined} endValueOpen - * @memberof google.bigtable.v2.ValueRange - * @instance - */ - ValueRange.prototype.endValueOpen = null; + /** + * Creates a new CloseStream instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.ReadChangeStreamResponse.CloseStream + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.ICloseStream=} [properties] Properties to set + * @returns {google.bigtable.v2.ReadChangeStreamResponse.CloseStream} CloseStream instance + */ + CloseStream.create = function create(properties) { + return new CloseStream(properties); + }; - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + /** + * Encodes the specified CloseStream message. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.CloseStream.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.ReadChangeStreamResponse.CloseStream + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.ICloseStream} message CloseStream message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CloseStream.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.status != null && Object.hasOwnProperty.call(message, "status")) + $root.google.rpc.Status.encode(message.status, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.continuationTokens != null && message.continuationTokens.length) + for (var i = 0; i < message.continuationTokens.length; ++i) + $root.google.bigtable.v2.StreamContinuationToken.encode(message.continuationTokens[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; - /** - * ValueRange startValue. - * @member {"startValueClosed"|"startValueOpen"|undefined} startValue - * @memberof google.bigtable.v2.ValueRange - * @instance - */ - Object.defineProperty(ValueRange.prototype, "startValue", { - get: $util.oneOfGetter($oneOfFields = ["startValueClosed", "startValueOpen"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * Encodes the specified CloseStream message, length delimited. Does not implicitly {@link google.bigtable.v2.ReadChangeStreamResponse.CloseStream.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.ReadChangeStreamResponse.CloseStream + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.ICloseStream} message CloseStream message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CloseStream.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * ValueRange endValue. - * @member {"endValueClosed"|"endValueOpen"|undefined} endValue - * @memberof google.bigtable.v2.ValueRange - * @instance - */ - Object.defineProperty(ValueRange.prototype, "endValue", { - get: $util.oneOfGetter($oneOfFields = ["endValueClosed", "endValueOpen"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * Decodes a CloseStream message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.ReadChangeStreamResponse.CloseStream + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.ReadChangeStreamResponse.CloseStream} CloseStream + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CloseStream.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.ReadChangeStreamResponse.CloseStream(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.status = $root.google.rpc.Status.decode(reader, reader.uint32()); + break; + } + case 2: { + if (!(message.continuationTokens && message.continuationTokens.length)) + message.continuationTokens = []; + message.continuationTokens.push($root.google.bigtable.v2.StreamContinuationToken.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; - /** - * Creates a new ValueRange instance using the specified properties. - * @function create - * @memberof google.bigtable.v2.ValueRange - * @static - * @param {google.bigtable.v2.IValueRange=} [properties] Properties to set - * @returns {google.bigtable.v2.ValueRange} ValueRange instance - */ - ValueRange.create = function create(properties) { - return new ValueRange(properties); - }; + /** + * Decodes a CloseStream message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.ReadChangeStreamResponse.CloseStream + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.ReadChangeStreamResponse.CloseStream} CloseStream + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CloseStream.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Encodes the specified ValueRange message. Does not implicitly {@link google.bigtable.v2.ValueRange.verify|verify} messages. + /** + * Verifies a CloseStream message. + * @function verify + * @memberof google.bigtable.v2.ReadChangeStreamResponse.CloseStream + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CloseStream.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.status != null && message.hasOwnProperty("status")) { + var error = $root.google.rpc.Status.verify(message.status); + if (error) + return "status." + error; + } + if (message.continuationTokens != null && message.hasOwnProperty("continuationTokens")) { + if (!Array.isArray(message.continuationTokens)) + return "continuationTokens: array expected"; + for (var i = 0; i < message.continuationTokens.length; ++i) { + var error = $root.google.bigtable.v2.StreamContinuationToken.verify(message.continuationTokens[i]); + if (error) + return "continuationTokens." + error; + } + } + return null; + }; + + /** + * Creates a CloseStream message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.ReadChangeStreamResponse.CloseStream + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.ReadChangeStreamResponse.CloseStream} CloseStream + */ + CloseStream.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.ReadChangeStreamResponse.CloseStream) + return object; + var message = new $root.google.bigtable.v2.ReadChangeStreamResponse.CloseStream(); + if (object.status != null) { + if (typeof object.status !== "object") + throw TypeError(".google.bigtable.v2.ReadChangeStreamResponse.CloseStream.status: object expected"); + message.status = $root.google.rpc.Status.fromObject(object.status); + } + if (object.continuationTokens) { + if (!Array.isArray(object.continuationTokens)) + throw TypeError(".google.bigtable.v2.ReadChangeStreamResponse.CloseStream.continuationTokens: array expected"); + message.continuationTokens = []; + for (var i = 0; i < object.continuationTokens.length; ++i) { + if (typeof object.continuationTokens[i] !== "object") + throw TypeError(".google.bigtable.v2.ReadChangeStreamResponse.CloseStream.continuationTokens: object expected"); + message.continuationTokens[i] = $root.google.bigtable.v2.StreamContinuationToken.fromObject(object.continuationTokens[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a CloseStream message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.ReadChangeStreamResponse.CloseStream + * @static + * @param {google.bigtable.v2.ReadChangeStreamResponse.CloseStream} message CloseStream + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CloseStream.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.continuationTokens = []; + if (options.defaults) + object.status = null; + if (message.status != null && message.hasOwnProperty("status")) + object.status = $root.google.rpc.Status.toObject(message.status, options); + if (message.continuationTokens && message.continuationTokens.length) { + object.continuationTokens = []; + for (var j = 0; j < message.continuationTokens.length; ++j) + object.continuationTokens[j] = $root.google.bigtable.v2.StreamContinuationToken.toObject(message.continuationTokens[j], options); + } + return object; + }; + + /** + * Converts this CloseStream to JSON. + * @function toJSON + * @memberof google.bigtable.v2.ReadChangeStreamResponse.CloseStream + * @instance + * @returns {Object.} JSON object + */ + CloseStream.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CloseStream + * @function getTypeUrl + * @memberof google.bigtable.v2.ReadChangeStreamResponse.CloseStream + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CloseStream.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.ReadChangeStreamResponse.CloseStream"; + }; + + return CloseStream; + })(); + + return ReadChangeStreamResponse; + })(); + + v2.Row = (function() { + + /** + * Properties of a Row. + * @memberof google.bigtable.v2 + * @interface IRow + * @property {Uint8Array|null} [key] Row key + * @property {Array.|null} [families] Row families + */ + + /** + * Constructs a new Row. + * @memberof google.bigtable.v2 + * @classdesc Represents a Row. + * @implements IRow + * @constructor + * @param {google.bigtable.v2.IRow=} [properties] Properties to set + */ + function Row(properties) { + this.families = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Row key. + * @member {Uint8Array} key + * @memberof google.bigtable.v2.Row + * @instance + */ + Row.prototype.key = $util.newBuffer([]); + + /** + * Row families. + * @member {Array.} families + * @memberof google.bigtable.v2.Row + * @instance + */ + Row.prototype.families = $util.emptyArray; + + /** + * Creates a new Row instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.Row + * @static + * @param {google.bigtable.v2.IRow=} [properties] Properties to set + * @returns {google.bigtable.v2.Row} Row instance + */ + Row.create = function create(properties) { + return new Row(properties); + }; + + /** + * Encodes the specified Row message. Does not implicitly {@link google.bigtable.v2.Row.verify|verify} messages. * @function encode - * @memberof google.bigtable.v2.ValueRange + * @memberof google.bigtable.v2.Row * @static - * @param {google.bigtable.v2.IValueRange} message ValueRange message or plain object to encode + * @param {google.bigtable.v2.IRow} message Row message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ValueRange.encode = function encode(message, writer) { + Row.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.startValueClosed != null && Object.hasOwnProperty.call(message, "startValueClosed")) - writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.startValueClosed); - if (message.startValueOpen != null && Object.hasOwnProperty.call(message, "startValueOpen")) - writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.startValueOpen); - if (message.endValueClosed != null && Object.hasOwnProperty.call(message, "endValueClosed")) - writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.endValueClosed); - if (message.endValueOpen != null && Object.hasOwnProperty.call(message, "endValueOpen")) - writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.endValueOpen); + if (message.key != null && Object.hasOwnProperty.call(message, "key")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.key); + if (message.families != null && message.families.length) + for (var i = 0; i < message.families.length; ++i) + $root.google.bigtable.v2.Family.encode(message.families[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified ValueRange message, length delimited. Does not implicitly {@link google.bigtable.v2.ValueRange.verify|verify} messages. + * Encodes the specified Row message, length delimited. Does not implicitly {@link google.bigtable.v2.Row.verify|verify} messages. * @function encodeDelimited - * @memberof google.bigtable.v2.ValueRange + * @memberof google.bigtable.v2.Row * @static - * @param {google.bigtable.v2.IValueRange} message ValueRange message or plain object to encode + * @param {google.bigtable.v2.IRow} message Row message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ValueRange.encodeDelimited = function encodeDelimited(message, writer) { + Row.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a ValueRange message from the specified reader or buffer. + * Decodes a Row message from the specified reader or buffer. * @function decode - * @memberof google.bigtable.v2.ValueRange + * @memberof google.bigtable.v2.Row * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.ValueRange} ValueRange + * @returns {google.bigtable.v2.Row} Row * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ValueRange.decode = function decode(reader, length) { + Row.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.ValueRange(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Row(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.startValueClosed = reader.bytes(); + message.key = reader.bytes(); break; } case 2: { - message.startValueOpen = reader.bytes(); - break; - } - case 3: { - message.endValueClosed = reader.bytes(); - break; - } - case 4: { - message.endValueOpen = reader.bytes(); + if (!(message.families && message.families.length)) + message.families = []; + message.families.push($root.google.bigtable.v2.Family.decode(reader, reader.uint32())); break; } default: @@ -31414,196 +31752,159 @@ }; /** - * Decodes a ValueRange message from the specified reader or buffer, length delimited. + * Decodes a Row message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.bigtable.v2.ValueRange + * @memberof google.bigtable.v2.Row * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.ValueRange} ValueRange + * @returns {google.bigtable.v2.Row} Row * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ValueRange.decodeDelimited = function decodeDelimited(reader) { + Row.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a ValueRange message. + * Verifies a Row message. * @function verify - * @memberof google.bigtable.v2.ValueRange + * @memberof google.bigtable.v2.Row * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ValueRange.verify = function verify(message) { + Row.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.startValueClosed != null && message.hasOwnProperty("startValueClosed")) { - properties.startValue = 1; - if (!(message.startValueClosed && typeof message.startValueClosed.length === "number" || $util.isString(message.startValueClosed))) - return "startValueClosed: buffer expected"; - } - if (message.startValueOpen != null && message.hasOwnProperty("startValueOpen")) { - if (properties.startValue === 1) - return "startValue: multiple values"; - properties.startValue = 1; - if (!(message.startValueOpen && typeof message.startValueOpen.length === "number" || $util.isString(message.startValueOpen))) - return "startValueOpen: buffer expected"; - } - if (message.endValueClosed != null && message.hasOwnProperty("endValueClosed")) { - properties.endValue = 1; - if (!(message.endValueClosed && typeof message.endValueClosed.length === "number" || $util.isString(message.endValueClosed))) - return "endValueClosed: buffer expected"; - } - if (message.endValueOpen != null && message.hasOwnProperty("endValueOpen")) { - if (properties.endValue === 1) - return "endValue: multiple values"; - properties.endValue = 1; - if (!(message.endValueOpen && typeof message.endValueOpen.length === "number" || $util.isString(message.endValueOpen))) - return "endValueOpen: buffer expected"; + if (message.key != null && message.hasOwnProperty("key")) + if (!(message.key && typeof message.key.length === "number" || $util.isString(message.key))) + return "key: buffer expected"; + if (message.families != null && message.hasOwnProperty("families")) { + if (!Array.isArray(message.families)) + return "families: array expected"; + for (var i = 0; i < message.families.length; ++i) { + var error = $root.google.bigtable.v2.Family.verify(message.families[i]); + if (error) + return "families." + error; + } } return null; }; /** - * Creates a ValueRange message from a plain object. Also converts values to their respective internal types. + * Creates a Row message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.bigtable.v2.ValueRange + * @memberof google.bigtable.v2.Row * @static * @param {Object.} object Plain object - * @returns {google.bigtable.v2.ValueRange} ValueRange + * @returns {google.bigtable.v2.Row} Row */ - ValueRange.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.ValueRange) + Row.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.Row) return object; - var message = new $root.google.bigtable.v2.ValueRange(); - if (object.startValueClosed != null) - if (typeof object.startValueClosed === "string") - $util.base64.decode(object.startValueClosed, message.startValueClosed = $util.newBuffer($util.base64.length(object.startValueClosed)), 0); - else if (object.startValueClosed.length >= 0) - message.startValueClosed = object.startValueClosed; - if (object.startValueOpen != null) - if (typeof object.startValueOpen === "string") - $util.base64.decode(object.startValueOpen, message.startValueOpen = $util.newBuffer($util.base64.length(object.startValueOpen)), 0); - else if (object.startValueOpen.length >= 0) - message.startValueOpen = object.startValueOpen; - if (object.endValueClosed != null) - if (typeof object.endValueClosed === "string") - $util.base64.decode(object.endValueClosed, message.endValueClosed = $util.newBuffer($util.base64.length(object.endValueClosed)), 0); - else if (object.endValueClosed.length >= 0) - message.endValueClosed = object.endValueClosed; - if (object.endValueOpen != null) - if (typeof object.endValueOpen === "string") - $util.base64.decode(object.endValueOpen, message.endValueOpen = $util.newBuffer($util.base64.length(object.endValueOpen)), 0); - else if (object.endValueOpen.length >= 0) - message.endValueOpen = object.endValueOpen; + var message = new $root.google.bigtable.v2.Row(); + if (object.key != null) + if (typeof object.key === "string") + $util.base64.decode(object.key, message.key = $util.newBuffer($util.base64.length(object.key)), 0); + else if (object.key.length >= 0) + message.key = object.key; + if (object.families) { + if (!Array.isArray(object.families)) + throw TypeError(".google.bigtable.v2.Row.families: array expected"); + message.families = []; + for (var i = 0; i < object.families.length; ++i) { + if (typeof object.families[i] !== "object") + throw TypeError(".google.bigtable.v2.Row.families: object expected"); + message.families[i] = $root.google.bigtable.v2.Family.fromObject(object.families[i]); + } + } return message; }; /** - * Creates a plain object from a ValueRange message. Also converts values to other types if specified. + * Creates a plain object from a Row message. Also converts values to other types if specified. * @function toObject - * @memberof google.bigtable.v2.ValueRange + * @memberof google.bigtable.v2.Row * @static - * @param {google.bigtable.v2.ValueRange} message ValueRange + * @param {google.bigtable.v2.Row} message Row * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ValueRange.toObject = function toObject(message, options) { + Row.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.startValueClosed != null && message.hasOwnProperty("startValueClosed")) { - object.startValueClosed = options.bytes === String ? $util.base64.encode(message.startValueClosed, 0, message.startValueClosed.length) : options.bytes === Array ? Array.prototype.slice.call(message.startValueClosed) : message.startValueClosed; - if (options.oneofs) - object.startValue = "startValueClosed"; - } - if (message.startValueOpen != null && message.hasOwnProperty("startValueOpen")) { - object.startValueOpen = options.bytes === String ? $util.base64.encode(message.startValueOpen, 0, message.startValueOpen.length) : options.bytes === Array ? Array.prototype.slice.call(message.startValueOpen) : message.startValueOpen; - if (options.oneofs) - object.startValue = "startValueOpen"; - } - if (message.endValueClosed != null && message.hasOwnProperty("endValueClosed")) { - object.endValueClosed = options.bytes === String ? $util.base64.encode(message.endValueClosed, 0, message.endValueClosed.length) : options.bytes === Array ? Array.prototype.slice.call(message.endValueClosed) : message.endValueClosed; - if (options.oneofs) - object.endValue = "endValueClosed"; - } - if (message.endValueOpen != null && message.hasOwnProperty("endValueOpen")) { - object.endValueOpen = options.bytes === String ? $util.base64.encode(message.endValueOpen, 0, message.endValueOpen.length) : options.bytes === Array ? Array.prototype.slice.call(message.endValueOpen) : message.endValueOpen; - if (options.oneofs) - object.endValue = "endValueOpen"; + if (options.arrays || options.defaults) + object.families = []; + if (options.defaults) + if (options.bytes === String) + object.key = ""; + else { + object.key = []; + if (options.bytes !== Array) + object.key = $util.newBuffer(object.key); + } + if (message.key != null && message.hasOwnProperty("key")) + object.key = options.bytes === String ? $util.base64.encode(message.key, 0, message.key.length) : options.bytes === Array ? Array.prototype.slice.call(message.key) : message.key; + if (message.families && message.families.length) { + object.families = []; + for (var j = 0; j < message.families.length; ++j) + object.families[j] = $root.google.bigtable.v2.Family.toObject(message.families[j], options); } return object; }; /** - * Converts this ValueRange to JSON. + * Converts this Row to JSON. * @function toJSON - * @memberof google.bigtable.v2.ValueRange + * @memberof google.bigtable.v2.Row * @instance * @returns {Object.} JSON object */ - ValueRange.prototype.toJSON = function toJSON() { + Row.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for ValueRange + * Gets the default type url for Row * @function getTypeUrl - * @memberof google.bigtable.v2.ValueRange + * @memberof google.bigtable.v2.Row * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - ValueRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + Row.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.bigtable.v2.ValueRange"; + return typeUrlPrefix + "/google.bigtable.v2.Row"; }; - return ValueRange; + return Row; })(); - v2.RowFilter = (function() { + v2.Family = (function() { /** - * Properties of a RowFilter. + * Properties of a Family. * @memberof google.bigtable.v2 - * @interface IRowFilter - * @property {google.bigtable.v2.RowFilter.IChain|null} [chain] RowFilter chain - * @property {google.bigtable.v2.RowFilter.IInterleave|null} [interleave] RowFilter interleave - * @property {google.bigtable.v2.RowFilter.ICondition|null} [condition] RowFilter condition - * @property {boolean|null} [sink] RowFilter sink - * @property {boolean|null} [passAllFilter] RowFilter passAllFilter - * @property {boolean|null} [blockAllFilter] RowFilter blockAllFilter - * @property {Uint8Array|null} [rowKeyRegexFilter] RowFilter rowKeyRegexFilter - * @property {number|null} [rowSampleFilter] RowFilter rowSampleFilter - * @property {string|null} [familyNameRegexFilter] RowFilter familyNameRegexFilter - * @property {Uint8Array|null} [columnQualifierRegexFilter] RowFilter columnQualifierRegexFilter - * @property {google.bigtable.v2.IColumnRange|null} [columnRangeFilter] RowFilter columnRangeFilter - * @property {google.bigtable.v2.ITimestampRange|null} [timestampRangeFilter] RowFilter timestampRangeFilter - * @property {Uint8Array|null} [valueRegexFilter] RowFilter valueRegexFilter - * @property {google.bigtable.v2.IValueRange|null} [valueRangeFilter] RowFilter valueRangeFilter - * @property {number|null} [cellsPerRowOffsetFilter] RowFilter cellsPerRowOffsetFilter - * @property {number|null} [cellsPerRowLimitFilter] RowFilter cellsPerRowLimitFilter - * @property {number|null} [cellsPerColumnLimitFilter] RowFilter cellsPerColumnLimitFilter - * @property {boolean|null} [stripValueTransformer] RowFilter stripValueTransformer - * @property {string|null} [applyLabelTransformer] RowFilter applyLabelTransformer + * @interface IFamily + * @property {string|null} [name] Family name + * @property {Array.|null} [columns] Family columns */ /** - * Constructs a new RowFilter. + * Constructs a new Family. * @memberof google.bigtable.v2 - * @classdesc Represents a RowFilter. - * @implements IRowFilter + * @classdesc Represents a Family. + * @implements IFamily * @constructor - * @param {google.bigtable.v2.IRowFilter=} [properties] Properties to set + * @param {google.bigtable.v2.IFamily=} [properties] Properties to set */ - function RowFilter(properties) { + function Family(properties) { + this.columns = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -31611,341 +31912,340 @@ } /** - * RowFilter chain. - * @member {google.bigtable.v2.RowFilter.IChain|null|undefined} chain - * @memberof google.bigtable.v2.RowFilter + * Family name. + * @member {string} name + * @memberof google.bigtable.v2.Family * @instance */ - RowFilter.prototype.chain = null; + Family.prototype.name = ""; /** - * RowFilter interleave. - * @member {google.bigtable.v2.RowFilter.IInterleave|null|undefined} interleave - * @memberof google.bigtable.v2.RowFilter + * Family columns. + * @member {Array.} columns + * @memberof google.bigtable.v2.Family * @instance */ - RowFilter.prototype.interleave = null; + Family.prototype.columns = $util.emptyArray; /** - * RowFilter condition. - * @member {google.bigtable.v2.RowFilter.ICondition|null|undefined} condition - * @memberof google.bigtable.v2.RowFilter - * @instance + * Creates a new Family instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.Family + * @static + * @param {google.bigtable.v2.IFamily=} [properties] Properties to set + * @returns {google.bigtable.v2.Family} Family instance */ - RowFilter.prototype.condition = null; + Family.create = function create(properties) { + return new Family(properties); + }; /** - * RowFilter sink. - * @member {boolean|null|undefined} sink - * @memberof google.bigtable.v2.RowFilter - * @instance + * Encodes the specified Family message. Does not implicitly {@link google.bigtable.v2.Family.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.Family + * @static + * @param {google.bigtable.v2.IFamily} message Family message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ - RowFilter.prototype.sink = null; + Family.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.columns != null && message.columns.length) + for (var i = 0; i < message.columns.length; ++i) + $root.google.bigtable.v2.Column.encode(message.columns[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; /** - * RowFilter passAllFilter. - * @member {boolean|null|undefined} passAllFilter - * @memberof google.bigtable.v2.RowFilter - * @instance + * Encodes the specified Family message, length delimited. Does not implicitly {@link google.bigtable.v2.Family.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.Family + * @static + * @param {google.bigtable.v2.IFamily} message Family message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer */ - RowFilter.prototype.passAllFilter = null; + Family.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; /** - * RowFilter blockAllFilter. - * @member {boolean|null|undefined} blockAllFilter - * @memberof google.bigtable.v2.RowFilter - * @instance + * Decodes a Family message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.Family + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.Family} Family + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RowFilter.prototype.blockAllFilter = null; + Family.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Family(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.name = reader.string(); + break; + } + case 2: { + if (!(message.columns && message.columns.length)) + message.columns = []; + message.columns.push($root.google.bigtable.v2.Column.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; /** - * RowFilter rowKeyRegexFilter. - * @member {Uint8Array|null|undefined} rowKeyRegexFilter - * @memberof google.bigtable.v2.RowFilter - * @instance + * Decodes a Family message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.Family + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.Family} Family + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RowFilter.prototype.rowKeyRegexFilter = null; + Family.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; /** - * RowFilter rowSampleFilter. - * @member {number|null|undefined} rowSampleFilter - * @memberof google.bigtable.v2.RowFilter - * @instance + * Verifies a Family message. + * @function verify + * @memberof google.bigtable.v2.Family + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RowFilter.prototype.rowSampleFilter = null; - - /** - * RowFilter familyNameRegexFilter. - * @member {string|null|undefined} familyNameRegexFilter - * @memberof google.bigtable.v2.RowFilter - * @instance - */ - RowFilter.prototype.familyNameRegexFilter = null; - - /** - * RowFilter columnQualifierRegexFilter. - * @member {Uint8Array|null|undefined} columnQualifierRegexFilter - * @memberof google.bigtable.v2.RowFilter - * @instance - */ - RowFilter.prototype.columnQualifierRegexFilter = null; + Family.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.columns != null && message.hasOwnProperty("columns")) { + if (!Array.isArray(message.columns)) + return "columns: array expected"; + for (var i = 0; i < message.columns.length; ++i) { + var error = $root.google.bigtable.v2.Column.verify(message.columns[i]); + if (error) + return "columns." + error; + } + } + return null; + }; /** - * RowFilter columnRangeFilter. - * @member {google.bigtable.v2.IColumnRange|null|undefined} columnRangeFilter - * @memberof google.bigtable.v2.RowFilter - * @instance + * Creates a Family message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.Family + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.Family} Family */ - RowFilter.prototype.columnRangeFilter = null; + Family.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.Family) + return object; + var message = new $root.google.bigtable.v2.Family(); + if (object.name != null) + message.name = String(object.name); + if (object.columns) { + if (!Array.isArray(object.columns)) + throw TypeError(".google.bigtable.v2.Family.columns: array expected"); + message.columns = []; + for (var i = 0; i < object.columns.length; ++i) { + if (typeof object.columns[i] !== "object") + throw TypeError(".google.bigtable.v2.Family.columns: object expected"); + message.columns[i] = $root.google.bigtable.v2.Column.fromObject(object.columns[i]); + } + } + return message; + }; /** - * RowFilter timestampRangeFilter. - * @member {google.bigtable.v2.ITimestampRange|null|undefined} timestampRangeFilter - * @memberof google.bigtable.v2.RowFilter - * @instance + * Creates a plain object from a Family message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.Family + * @static + * @param {google.bigtable.v2.Family} message Family + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object */ - RowFilter.prototype.timestampRangeFilter = null; + Family.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.columns = []; + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.columns && message.columns.length) { + object.columns = []; + for (var j = 0; j < message.columns.length; ++j) + object.columns[j] = $root.google.bigtable.v2.Column.toObject(message.columns[j], options); + } + return object; + }; /** - * RowFilter valueRegexFilter. - * @member {Uint8Array|null|undefined} valueRegexFilter - * @memberof google.bigtable.v2.RowFilter + * Converts this Family to JSON. + * @function toJSON + * @memberof google.bigtable.v2.Family * @instance + * @returns {Object.} JSON object */ - RowFilter.prototype.valueRegexFilter = null; + Family.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; /** - * RowFilter valueRangeFilter. - * @member {google.bigtable.v2.IValueRange|null|undefined} valueRangeFilter - * @memberof google.bigtable.v2.RowFilter - * @instance + * Gets the default type url for Family + * @function getTypeUrl + * @memberof google.bigtable.v2.Family + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url */ - RowFilter.prototype.valueRangeFilter = null; + Family.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.Family"; + }; - /** - * RowFilter cellsPerRowOffsetFilter. - * @member {number|null|undefined} cellsPerRowOffsetFilter - * @memberof google.bigtable.v2.RowFilter - * @instance - */ - RowFilter.prototype.cellsPerRowOffsetFilter = null; + return Family; + })(); - /** - * RowFilter cellsPerRowLimitFilter. - * @member {number|null|undefined} cellsPerRowLimitFilter - * @memberof google.bigtable.v2.RowFilter - * @instance - */ - RowFilter.prototype.cellsPerRowLimitFilter = null; + v2.Column = (function() { /** - * RowFilter cellsPerColumnLimitFilter. - * @member {number|null|undefined} cellsPerColumnLimitFilter - * @memberof google.bigtable.v2.RowFilter - * @instance + * Properties of a Column. + * @memberof google.bigtable.v2 + * @interface IColumn + * @property {Uint8Array|null} [qualifier] Column qualifier + * @property {Array.|null} [cells] Column cells */ - RowFilter.prototype.cellsPerColumnLimitFilter = null; /** - * RowFilter stripValueTransformer. - * @member {boolean|null|undefined} stripValueTransformer - * @memberof google.bigtable.v2.RowFilter - * @instance + * Constructs a new Column. + * @memberof google.bigtable.v2 + * @classdesc Represents a Column. + * @implements IColumn + * @constructor + * @param {google.bigtable.v2.IColumn=} [properties] Properties to set */ - RowFilter.prototype.stripValueTransformer = null; + function Column(properties) { + this.cells = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } /** - * RowFilter applyLabelTransformer. - * @member {string|null|undefined} applyLabelTransformer - * @memberof google.bigtable.v2.RowFilter + * Column qualifier. + * @member {Uint8Array} qualifier + * @memberof google.bigtable.v2.Column * @instance */ - RowFilter.prototype.applyLabelTransformer = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + Column.prototype.qualifier = $util.newBuffer([]); /** - * RowFilter filter. - * @member {"chain"|"interleave"|"condition"|"sink"|"passAllFilter"|"blockAllFilter"|"rowKeyRegexFilter"|"rowSampleFilter"|"familyNameRegexFilter"|"columnQualifierRegexFilter"|"columnRangeFilter"|"timestampRangeFilter"|"valueRegexFilter"|"valueRangeFilter"|"cellsPerRowOffsetFilter"|"cellsPerRowLimitFilter"|"cellsPerColumnLimitFilter"|"stripValueTransformer"|"applyLabelTransformer"|undefined} filter - * @memberof google.bigtable.v2.RowFilter + * Column cells. + * @member {Array.} cells + * @memberof google.bigtable.v2.Column * @instance */ - Object.defineProperty(RowFilter.prototype, "filter", { - get: $util.oneOfGetter($oneOfFields = ["chain", "interleave", "condition", "sink", "passAllFilter", "blockAllFilter", "rowKeyRegexFilter", "rowSampleFilter", "familyNameRegexFilter", "columnQualifierRegexFilter", "columnRangeFilter", "timestampRangeFilter", "valueRegexFilter", "valueRangeFilter", "cellsPerRowOffsetFilter", "cellsPerRowLimitFilter", "cellsPerColumnLimitFilter", "stripValueTransformer", "applyLabelTransformer"]), - set: $util.oneOfSetter($oneOfFields) - }); + Column.prototype.cells = $util.emptyArray; /** - * Creates a new RowFilter instance using the specified properties. + * Creates a new Column instance using the specified properties. * @function create - * @memberof google.bigtable.v2.RowFilter + * @memberof google.bigtable.v2.Column * @static - * @param {google.bigtable.v2.IRowFilter=} [properties] Properties to set - * @returns {google.bigtable.v2.RowFilter} RowFilter instance + * @param {google.bigtable.v2.IColumn=} [properties] Properties to set + * @returns {google.bigtable.v2.Column} Column instance */ - RowFilter.create = function create(properties) { - return new RowFilter(properties); + Column.create = function create(properties) { + return new Column(properties); }; /** - * Encodes the specified RowFilter message. Does not implicitly {@link google.bigtable.v2.RowFilter.verify|verify} messages. + * Encodes the specified Column message. Does not implicitly {@link google.bigtable.v2.Column.verify|verify} messages. * @function encode - * @memberof google.bigtable.v2.RowFilter + * @memberof google.bigtable.v2.Column * @static - * @param {google.bigtable.v2.IRowFilter} message RowFilter message or plain object to encode + * @param {google.bigtable.v2.IColumn} message Column message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RowFilter.encode = function encode(message, writer) { + Column.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.chain != null && Object.hasOwnProperty.call(message, "chain")) - $root.google.bigtable.v2.RowFilter.Chain.encode(message.chain, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.interleave != null && Object.hasOwnProperty.call(message, "interleave")) - $root.google.bigtable.v2.RowFilter.Interleave.encode(message.interleave, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.condition != null && Object.hasOwnProperty.call(message, "condition")) - $root.google.bigtable.v2.RowFilter.Condition.encode(message.condition, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.rowKeyRegexFilter != null && Object.hasOwnProperty.call(message, "rowKeyRegexFilter")) - writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.rowKeyRegexFilter); - if (message.familyNameRegexFilter != null && Object.hasOwnProperty.call(message, "familyNameRegexFilter")) - writer.uint32(/* id 5, wireType 2 =*/42).string(message.familyNameRegexFilter); - if (message.columnQualifierRegexFilter != null && Object.hasOwnProperty.call(message, "columnQualifierRegexFilter")) - writer.uint32(/* id 6, wireType 2 =*/50).bytes(message.columnQualifierRegexFilter); - if (message.columnRangeFilter != null && Object.hasOwnProperty.call(message, "columnRangeFilter")) - $root.google.bigtable.v2.ColumnRange.encode(message.columnRangeFilter, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); - if (message.timestampRangeFilter != null && Object.hasOwnProperty.call(message, "timestampRangeFilter")) - $root.google.bigtable.v2.TimestampRange.encode(message.timestampRangeFilter, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); - if (message.valueRegexFilter != null && Object.hasOwnProperty.call(message, "valueRegexFilter")) - writer.uint32(/* id 9, wireType 2 =*/74).bytes(message.valueRegexFilter); - if (message.cellsPerRowOffsetFilter != null && Object.hasOwnProperty.call(message, "cellsPerRowOffsetFilter")) - writer.uint32(/* id 10, wireType 0 =*/80).int32(message.cellsPerRowOffsetFilter); - if (message.cellsPerRowLimitFilter != null && Object.hasOwnProperty.call(message, "cellsPerRowLimitFilter")) - writer.uint32(/* id 11, wireType 0 =*/88).int32(message.cellsPerRowLimitFilter); - if (message.cellsPerColumnLimitFilter != null && Object.hasOwnProperty.call(message, "cellsPerColumnLimitFilter")) - writer.uint32(/* id 12, wireType 0 =*/96).int32(message.cellsPerColumnLimitFilter); - if (message.stripValueTransformer != null && Object.hasOwnProperty.call(message, "stripValueTransformer")) - writer.uint32(/* id 13, wireType 0 =*/104).bool(message.stripValueTransformer); - if (message.rowSampleFilter != null && Object.hasOwnProperty.call(message, "rowSampleFilter")) - writer.uint32(/* id 14, wireType 1 =*/113).double(message.rowSampleFilter); - if (message.valueRangeFilter != null && Object.hasOwnProperty.call(message, "valueRangeFilter")) - $root.google.bigtable.v2.ValueRange.encode(message.valueRangeFilter, writer.uint32(/* id 15, wireType 2 =*/122).fork()).ldelim(); - if (message.sink != null && Object.hasOwnProperty.call(message, "sink")) - writer.uint32(/* id 16, wireType 0 =*/128).bool(message.sink); - if (message.passAllFilter != null && Object.hasOwnProperty.call(message, "passAllFilter")) - writer.uint32(/* id 17, wireType 0 =*/136).bool(message.passAllFilter); - if (message.blockAllFilter != null && Object.hasOwnProperty.call(message, "blockAllFilter")) - writer.uint32(/* id 18, wireType 0 =*/144).bool(message.blockAllFilter); - if (message.applyLabelTransformer != null && Object.hasOwnProperty.call(message, "applyLabelTransformer")) - writer.uint32(/* id 19, wireType 2 =*/154).string(message.applyLabelTransformer); + if (message.qualifier != null && Object.hasOwnProperty.call(message, "qualifier")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.qualifier); + if (message.cells != null && message.cells.length) + for (var i = 0; i < message.cells.length; ++i) + $root.google.bigtable.v2.Cell.encode(message.cells[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); return writer; }; /** - * Encodes the specified RowFilter message, length delimited. Does not implicitly {@link google.bigtable.v2.RowFilter.verify|verify} messages. + * Encodes the specified Column message, length delimited. Does not implicitly {@link google.bigtable.v2.Column.verify|verify} messages. * @function encodeDelimited - * @memberof google.bigtable.v2.RowFilter + * @memberof google.bigtable.v2.Column * @static - * @param {google.bigtable.v2.IRowFilter} message RowFilter message or plain object to encode + * @param {google.bigtable.v2.IColumn} message Column message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - RowFilter.encodeDelimited = function encodeDelimited(message, writer) { + Column.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a RowFilter message from the specified reader or buffer. + * Decodes a Column message from the specified reader or buffer. * @function decode - * @memberof google.bigtable.v2.RowFilter + * @memberof google.bigtable.v2.Column * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.RowFilter} RowFilter + * @returns {google.bigtable.v2.Column} Column * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RowFilter.decode = function decode(reader, length) { + Column.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.RowFilter(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Column(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.chain = $root.google.bigtable.v2.RowFilter.Chain.decode(reader, reader.uint32()); + message.qualifier = reader.bytes(); break; } case 2: { - message.interleave = $root.google.bigtable.v2.RowFilter.Interleave.decode(reader, reader.uint32()); - break; - } - case 3: { - message.condition = $root.google.bigtable.v2.RowFilter.Condition.decode(reader, reader.uint32()); - break; - } - case 16: { - message.sink = reader.bool(); - break; - } - case 17: { - message.passAllFilter = reader.bool(); - break; - } - case 18: { - message.blockAllFilter = reader.bool(); - break; - } - case 4: { - message.rowKeyRegexFilter = reader.bytes(); - break; - } - case 14: { - message.rowSampleFilter = reader.double(); - break; - } - case 5: { - message.familyNameRegexFilter = reader.string(); - break; - } - case 6: { - message.columnQualifierRegexFilter = reader.bytes(); - break; - } - case 7: { - message.columnRangeFilter = $root.google.bigtable.v2.ColumnRange.decode(reader, reader.uint32()); - break; - } - case 8: { - message.timestampRangeFilter = $root.google.bigtable.v2.TimestampRange.decode(reader, reader.uint32()); - break; - } - case 9: { - message.valueRegexFilter = reader.bytes(); - break; - } - case 15: { - message.valueRangeFilter = $root.google.bigtable.v2.ValueRange.decode(reader, reader.uint32()); - break; - } - case 10: { - message.cellsPerRowOffsetFilter = reader.int32(); - break; - } - case 11: { - message.cellsPerRowLimitFilter = reader.int32(); - break; - } - case 12: { - message.cellsPerColumnLimitFilter = reader.int32(); - break; - } - case 13: { - message.stripValueTransformer = reader.bool(); - break; - } - case 19: { - message.applyLabelTransformer = reader.string(); + if (!(message.cells && message.cells.length)) + message.cells = []; + message.cells.push($root.google.bigtable.v2.Cell.decode(reader, reader.uint32())); break; } default: @@ -31957,870 +32257,3813 @@ }; /** - * Decodes a RowFilter message from the specified reader or buffer, length delimited. + * Decodes a Column message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.bigtable.v2.RowFilter + * @memberof google.bigtable.v2.Column * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.RowFilter} RowFilter + * @returns {google.bigtable.v2.Column} Column * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - RowFilter.decodeDelimited = function decodeDelimited(reader) { + Column.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a RowFilter message. + * Verifies a Column message. * @function verify - * @memberof google.bigtable.v2.RowFilter + * @memberof google.bigtable.v2.Column * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - RowFilter.verify = function verify(message) { + Column.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.chain != null && message.hasOwnProperty("chain")) { - properties.filter = 1; - { - var error = $root.google.bigtable.v2.RowFilter.Chain.verify(message.chain); - if (error) - return "chain." + error; - } - } - if (message.interleave != null && message.hasOwnProperty("interleave")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - { - var error = $root.google.bigtable.v2.RowFilter.Interleave.verify(message.interleave); - if (error) - return "interleave." + error; - } - } - if (message.condition != null && message.hasOwnProperty("condition")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - { - var error = $root.google.bigtable.v2.RowFilter.Condition.verify(message.condition); - if (error) - return "condition." + error; - } - } - if (message.sink != null && message.hasOwnProperty("sink")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - if (typeof message.sink !== "boolean") - return "sink: boolean expected"; - } - if (message.passAllFilter != null && message.hasOwnProperty("passAllFilter")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - if (typeof message.passAllFilter !== "boolean") - return "passAllFilter: boolean expected"; - } - if (message.blockAllFilter != null && message.hasOwnProperty("blockAllFilter")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - if (typeof message.blockAllFilter !== "boolean") - return "blockAllFilter: boolean expected"; - } - if (message.rowKeyRegexFilter != null && message.hasOwnProperty("rowKeyRegexFilter")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - if (!(message.rowKeyRegexFilter && typeof message.rowKeyRegexFilter.length === "number" || $util.isString(message.rowKeyRegexFilter))) - return "rowKeyRegexFilter: buffer expected"; - } - if (message.rowSampleFilter != null && message.hasOwnProperty("rowSampleFilter")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - if (typeof message.rowSampleFilter !== "number") - return "rowSampleFilter: number expected"; - } - if (message.familyNameRegexFilter != null && message.hasOwnProperty("familyNameRegexFilter")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - if (!$util.isString(message.familyNameRegexFilter)) - return "familyNameRegexFilter: string expected"; - } - if (message.columnQualifierRegexFilter != null && message.hasOwnProperty("columnQualifierRegexFilter")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - if (!(message.columnQualifierRegexFilter && typeof message.columnQualifierRegexFilter.length === "number" || $util.isString(message.columnQualifierRegexFilter))) - return "columnQualifierRegexFilter: buffer expected"; - } - if (message.columnRangeFilter != null && message.hasOwnProperty("columnRangeFilter")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - { - var error = $root.google.bigtable.v2.ColumnRange.verify(message.columnRangeFilter); - if (error) - return "columnRangeFilter." + error; - } - } - if (message.timestampRangeFilter != null && message.hasOwnProperty("timestampRangeFilter")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - { - var error = $root.google.bigtable.v2.TimestampRange.verify(message.timestampRangeFilter); - if (error) - return "timestampRangeFilter." + error; - } - } - if (message.valueRegexFilter != null && message.hasOwnProperty("valueRegexFilter")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - if (!(message.valueRegexFilter && typeof message.valueRegexFilter.length === "number" || $util.isString(message.valueRegexFilter))) - return "valueRegexFilter: buffer expected"; - } - if (message.valueRangeFilter != null && message.hasOwnProperty("valueRangeFilter")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - { - var error = $root.google.bigtable.v2.ValueRange.verify(message.valueRangeFilter); + if (message.qualifier != null && message.hasOwnProperty("qualifier")) + if (!(message.qualifier && typeof message.qualifier.length === "number" || $util.isString(message.qualifier))) + return "qualifier: buffer expected"; + if (message.cells != null && message.hasOwnProperty("cells")) { + if (!Array.isArray(message.cells)) + return "cells: array expected"; + for (var i = 0; i < message.cells.length; ++i) { + var error = $root.google.bigtable.v2.Cell.verify(message.cells[i]); if (error) - return "valueRangeFilter." + error; + return "cells." + error; } } - if (message.cellsPerRowOffsetFilter != null && message.hasOwnProperty("cellsPerRowOffsetFilter")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - if (!$util.isInteger(message.cellsPerRowOffsetFilter)) - return "cellsPerRowOffsetFilter: integer expected"; - } - if (message.cellsPerRowLimitFilter != null && message.hasOwnProperty("cellsPerRowLimitFilter")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - if (!$util.isInteger(message.cellsPerRowLimitFilter)) - return "cellsPerRowLimitFilter: integer expected"; - } - if (message.cellsPerColumnLimitFilter != null && message.hasOwnProperty("cellsPerColumnLimitFilter")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - if (!$util.isInteger(message.cellsPerColumnLimitFilter)) - return "cellsPerColumnLimitFilter: integer expected"; - } - if (message.stripValueTransformer != null && message.hasOwnProperty("stripValueTransformer")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - if (typeof message.stripValueTransformer !== "boolean") - return "stripValueTransformer: boolean expected"; - } - if (message.applyLabelTransformer != null && message.hasOwnProperty("applyLabelTransformer")) { - if (properties.filter === 1) - return "filter: multiple values"; - properties.filter = 1; - if (!$util.isString(message.applyLabelTransformer)) - return "applyLabelTransformer: string expected"; - } return null; }; /** - * Creates a RowFilter message from a plain object. Also converts values to their respective internal types. + * Creates a Column message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.bigtable.v2.RowFilter + * @memberof google.bigtable.v2.Column * @static * @param {Object.} object Plain object - * @returns {google.bigtable.v2.RowFilter} RowFilter + * @returns {google.bigtable.v2.Column} Column */ - RowFilter.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.RowFilter) + Column.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.Column) return object; - var message = new $root.google.bigtable.v2.RowFilter(); - if (object.chain != null) { - if (typeof object.chain !== "object") - throw TypeError(".google.bigtable.v2.RowFilter.chain: object expected"); - message.chain = $root.google.bigtable.v2.RowFilter.Chain.fromObject(object.chain); - } - if (object.interleave != null) { - if (typeof object.interleave !== "object") - throw TypeError(".google.bigtable.v2.RowFilter.interleave: object expected"); - message.interleave = $root.google.bigtable.v2.RowFilter.Interleave.fromObject(object.interleave); - } - if (object.condition != null) { - if (typeof object.condition !== "object") - throw TypeError(".google.bigtable.v2.RowFilter.condition: object expected"); - message.condition = $root.google.bigtable.v2.RowFilter.Condition.fromObject(object.condition); - } - if (object.sink != null) - message.sink = Boolean(object.sink); - if (object.passAllFilter != null) - message.passAllFilter = Boolean(object.passAllFilter); - if (object.blockAllFilter != null) - message.blockAllFilter = Boolean(object.blockAllFilter); - if (object.rowKeyRegexFilter != null) - if (typeof object.rowKeyRegexFilter === "string") - $util.base64.decode(object.rowKeyRegexFilter, message.rowKeyRegexFilter = $util.newBuffer($util.base64.length(object.rowKeyRegexFilter)), 0); - else if (object.rowKeyRegexFilter.length >= 0) - message.rowKeyRegexFilter = object.rowKeyRegexFilter; - if (object.rowSampleFilter != null) - message.rowSampleFilter = Number(object.rowSampleFilter); - if (object.familyNameRegexFilter != null) - message.familyNameRegexFilter = String(object.familyNameRegexFilter); - if (object.columnQualifierRegexFilter != null) - if (typeof object.columnQualifierRegexFilter === "string") - $util.base64.decode(object.columnQualifierRegexFilter, message.columnQualifierRegexFilter = $util.newBuffer($util.base64.length(object.columnQualifierRegexFilter)), 0); - else if (object.columnQualifierRegexFilter.length >= 0) - message.columnQualifierRegexFilter = object.columnQualifierRegexFilter; - if (object.columnRangeFilter != null) { - if (typeof object.columnRangeFilter !== "object") - throw TypeError(".google.bigtable.v2.RowFilter.columnRangeFilter: object expected"); - message.columnRangeFilter = $root.google.bigtable.v2.ColumnRange.fromObject(object.columnRangeFilter); - } - if (object.timestampRangeFilter != null) { - if (typeof object.timestampRangeFilter !== "object") - throw TypeError(".google.bigtable.v2.RowFilter.timestampRangeFilter: object expected"); - message.timestampRangeFilter = $root.google.bigtable.v2.TimestampRange.fromObject(object.timestampRangeFilter); - } - if (object.valueRegexFilter != null) - if (typeof object.valueRegexFilter === "string") - $util.base64.decode(object.valueRegexFilter, message.valueRegexFilter = $util.newBuffer($util.base64.length(object.valueRegexFilter)), 0); - else if (object.valueRegexFilter.length >= 0) - message.valueRegexFilter = object.valueRegexFilter; - if (object.valueRangeFilter != null) { - if (typeof object.valueRangeFilter !== "object") - throw TypeError(".google.bigtable.v2.RowFilter.valueRangeFilter: object expected"); - message.valueRangeFilter = $root.google.bigtable.v2.ValueRange.fromObject(object.valueRangeFilter); + var message = new $root.google.bigtable.v2.Column(); + if (object.qualifier != null) + if (typeof object.qualifier === "string") + $util.base64.decode(object.qualifier, message.qualifier = $util.newBuffer($util.base64.length(object.qualifier)), 0); + else if (object.qualifier.length >= 0) + message.qualifier = object.qualifier; + if (object.cells) { + if (!Array.isArray(object.cells)) + throw TypeError(".google.bigtable.v2.Column.cells: array expected"); + message.cells = []; + for (var i = 0; i < object.cells.length; ++i) { + if (typeof object.cells[i] !== "object") + throw TypeError(".google.bigtable.v2.Column.cells: object expected"); + message.cells[i] = $root.google.bigtable.v2.Cell.fromObject(object.cells[i]); + } } - if (object.cellsPerRowOffsetFilter != null) - message.cellsPerRowOffsetFilter = object.cellsPerRowOffsetFilter | 0; - if (object.cellsPerRowLimitFilter != null) - message.cellsPerRowLimitFilter = object.cellsPerRowLimitFilter | 0; - if (object.cellsPerColumnLimitFilter != null) - message.cellsPerColumnLimitFilter = object.cellsPerColumnLimitFilter | 0; - if (object.stripValueTransformer != null) - message.stripValueTransformer = Boolean(object.stripValueTransformer); - if (object.applyLabelTransformer != null) - message.applyLabelTransformer = String(object.applyLabelTransformer); return message; }; /** - * Creates a plain object from a RowFilter message. Also converts values to other types if specified. + * Creates a plain object from a Column message. Also converts values to other types if specified. * @function toObject - * @memberof google.bigtable.v2.RowFilter + * @memberof google.bigtable.v2.Column * @static - * @param {google.bigtable.v2.RowFilter} message RowFilter + * @param {google.bigtable.v2.Column} message Column * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - RowFilter.toObject = function toObject(message, options) { + Column.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (message.chain != null && message.hasOwnProperty("chain")) { - object.chain = $root.google.bigtable.v2.RowFilter.Chain.toObject(message.chain, options); - if (options.oneofs) - object.filter = "chain"; - } - if (message.interleave != null && message.hasOwnProperty("interleave")) { - object.interleave = $root.google.bigtable.v2.RowFilter.Interleave.toObject(message.interleave, options); - if (options.oneofs) - object.filter = "interleave"; - } - if (message.condition != null && message.hasOwnProperty("condition")) { - object.condition = $root.google.bigtable.v2.RowFilter.Condition.toObject(message.condition, options); - if (options.oneofs) - object.filter = "condition"; - } - if (message.rowKeyRegexFilter != null && message.hasOwnProperty("rowKeyRegexFilter")) { - object.rowKeyRegexFilter = options.bytes === String ? $util.base64.encode(message.rowKeyRegexFilter, 0, message.rowKeyRegexFilter.length) : options.bytes === Array ? Array.prototype.slice.call(message.rowKeyRegexFilter) : message.rowKeyRegexFilter; - if (options.oneofs) - object.filter = "rowKeyRegexFilter"; - } - if (message.familyNameRegexFilter != null && message.hasOwnProperty("familyNameRegexFilter")) { - object.familyNameRegexFilter = message.familyNameRegexFilter; - if (options.oneofs) - object.filter = "familyNameRegexFilter"; - } - if (message.columnQualifierRegexFilter != null && message.hasOwnProperty("columnQualifierRegexFilter")) { - object.columnQualifierRegexFilter = options.bytes === String ? $util.base64.encode(message.columnQualifierRegexFilter, 0, message.columnQualifierRegexFilter.length) : options.bytes === Array ? Array.prototype.slice.call(message.columnQualifierRegexFilter) : message.columnQualifierRegexFilter; - if (options.oneofs) - object.filter = "columnQualifierRegexFilter"; - } - if (message.columnRangeFilter != null && message.hasOwnProperty("columnRangeFilter")) { - object.columnRangeFilter = $root.google.bigtable.v2.ColumnRange.toObject(message.columnRangeFilter, options); - if (options.oneofs) - object.filter = "columnRangeFilter"; - } - if (message.timestampRangeFilter != null && message.hasOwnProperty("timestampRangeFilter")) { - object.timestampRangeFilter = $root.google.bigtable.v2.TimestampRange.toObject(message.timestampRangeFilter, options); - if (options.oneofs) - object.filter = "timestampRangeFilter"; - } - if (message.valueRegexFilter != null && message.hasOwnProperty("valueRegexFilter")) { - object.valueRegexFilter = options.bytes === String ? $util.base64.encode(message.valueRegexFilter, 0, message.valueRegexFilter.length) : options.bytes === Array ? Array.prototype.slice.call(message.valueRegexFilter) : message.valueRegexFilter; - if (options.oneofs) - object.filter = "valueRegexFilter"; - } - if (message.cellsPerRowOffsetFilter != null && message.hasOwnProperty("cellsPerRowOffsetFilter")) { - object.cellsPerRowOffsetFilter = message.cellsPerRowOffsetFilter; - if (options.oneofs) - object.filter = "cellsPerRowOffsetFilter"; - } - if (message.cellsPerRowLimitFilter != null && message.hasOwnProperty("cellsPerRowLimitFilter")) { - object.cellsPerRowLimitFilter = message.cellsPerRowLimitFilter; - if (options.oneofs) - object.filter = "cellsPerRowLimitFilter"; - } - if (message.cellsPerColumnLimitFilter != null && message.hasOwnProperty("cellsPerColumnLimitFilter")) { - object.cellsPerColumnLimitFilter = message.cellsPerColumnLimitFilter; - if (options.oneofs) - object.filter = "cellsPerColumnLimitFilter"; - } - if (message.stripValueTransformer != null && message.hasOwnProperty("stripValueTransformer")) { - object.stripValueTransformer = message.stripValueTransformer; - if (options.oneofs) - object.filter = "stripValueTransformer"; - } - if (message.rowSampleFilter != null && message.hasOwnProperty("rowSampleFilter")) { - object.rowSampleFilter = options.json && !isFinite(message.rowSampleFilter) ? String(message.rowSampleFilter) : message.rowSampleFilter; - if (options.oneofs) - object.filter = "rowSampleFilter"; - } - if (message.valueRangeFilter != null && message.hasOwnProperty("valueRangeFilter")) { - object.valueRangeFilter = $root.google.bigtable.v2.ValueRange.toObject(message.valueRangeFilter, options); - if (options.oneofs) - object.filter = "valueRangeFilter"; - } - if (message.sink != null && message.hasOwnProperty("sink")) { - object.sink = message.sink; - if (options.oneofs) - object.filter = "sink"; - } - if (message.passAllFilter != null && message.hasOwnProperty("passAllFilter")) { - object.passAllFilter = message.passAllFilter; - if (options.oneofs) - object.filter = "passAllFilter"; - } - if (message.blockAllFilter != null && message.hasOwnProperty("blockAllFilter")) { - object.blockAllFilter = message.blockAllFilter; - if (options.oneofs) - object.filter = "blockAllFilter"; - } - if (message.applyLabelTransformer != null && message.hasOwnProperty("applyLabelTransformer")) { - object.applyLabelTransformer = message.applyLabelTransformer; - if (options.oneofs) - object.filter = "applyLabelTransformer"; + if (options.arrays || options.defaults) + object.cells = []; + if (options.defaults) + if (options.bytes === String) + object.qualifier = ""; + else { + object.qualifier = []; + if (options.bytes !== Array) + object.qualifier = $util.newBuffer(object.qualifier); + } + if (message.qualifier != null && message.hasOwnProperty("qualifier")) + object.qualifier = options.bytes === String ? $util.base64.encode(message.qualifier, 0, message.qualifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.qualifier) : message.qualifier; + if (message.cells && message.cells.length) { + object.cells = []; + for (var j = 0; j < message.cells.length; ++j) + object.cells[j] = $root.google.bigtable.v2.Cell.toObject(message.cells[j], options); } return object; }; /** - * Converts this RowFilter to JSON. + * Converts this Column to JSON. * @function toJSON - * @memberof google.bigtable.v2.RowFilter + * @memberof google.bigtable.v2.Column * @instance * @returns {Object.} JSON object */ - RowFilter.prototype.toJSON = function toJSON() { + Column.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for RowFilter + * Gets the default type url for Column * @function getTypeUrl - * @memberof google.bigtable.v2.RowFilter + * @memberof google.bigtable.v2.Column * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - RowFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + Column.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.bigtable.v2.RowFilter"; + return typeUrlPrefix + "/google.bigtable.v2.Column"; }; - RowFilter.Chain = (function() { + return Column; + })(); - /** - * Properties of a Chain. - * @memberof google.bigtable.v2.RowFilter - * @interface IChain - * @property {Array.|null} [filters] Chain filters - */ + v2.Cell = (function() { - /** - * Constructs a new Chain. - * @memberof google.bigtable.v2.RowFilter - * @classdesc Represents a Chain. - * @implements IChain - * @constructor - * @param {google.bigtable.v2.RowFilter.IChain=} [properties] Properties to set - */ - function Chain(properties) { - this.filters = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a Cell. + * @memberof google.bigtable.v2 + * @interface ICell + * @property {number|Long|null} [timestampMicros] Cell timestampMicros + * @property {Uint8Array|null} [value] Cell value + * @property {Array.|null} [labels] Cell labels + */ - /** - * Chain filters. - * @member {Array.} filters - * @memberof google.bigtable.v2.RowFilter.Chain - * @instance - */ - Chain.prototype.filters = $util.emptyArray; + /** + * Constructs a new Cell. + * @memberof google.bigtable.v2 + * @classdesc Represents a Cell. + * @implements ICell + * @constructor + * @param {google.bigtable.v2.ICell=} [properties] Properties to set + */ + function Cell(properties) { + this.labels = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a new Chain instance using the specified properties. - * @function create - * @memberof google.bigtable.v2.RowFilter.Chain - * @static - * @param {google.bigtable.v2.RowFilter.IChain=} [properties] Properties to set - * @returns {google.bigtable.v2.RowFilter.Chain} Chain instance - */ - Chain.create = function create(properties) { - return new Chain(properties); - }; + /** + * Cell timestampMicros. + * @member {number|Long} timestampMicros + * @memberof google.bigtable.v2.Cell + * @instance + */ + Cell.prototype.timestampMicros = $util.Long ? $util.Long.fromBits(0,0,false) : 0; - /** - * Encodes the specified Chain message. Does not implicitly {@link google.bigtable.v2.RowFilter.Chain.verify|verify} messages. - * @function encode - * @memberof google.bigtable.v2.RowFilter.Chain - * @static - * @param {google.bigtable.v2.RowFilter.IChain} message Chain message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Chain.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.filters != null && message.filters.length) - for (var i = 0; i < message.filters.length; ++i) - $root.google.bigtable.v2.RowFilter.encode(message.filters[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; + /** + * Cell value. + * @member {Uint8Array} value + * @memberof google.bigtable.v2.Cell + * @instance + */ + Cell.prototype.value = $util.newBuffer([]); - /** - * Encodes the specified Chain message, length delimited. Does not implicitly {@link google.bigtable.v2.RowFilter.Chain.verify|verify} messages. - * @function encodeDelimited - * @memberof google.bigtable.v2.RowFilter.Chain - * @static - * @param {google.bigtable.v2.RowFilter.IChain} message Chain message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Chain.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Cell labels. + * @member {Array.} labels + * @memberof google.bigtable.v2.Cell + * @instance + */ + Cell.prototype.labels = $util.emptyArray; - /** - * Decodes a Chain message from the specified reader or buffer. - * @function decode - * @memberof google.bigtable.v2.RowFilter.Chain - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.RowFilter.Chain} Chain - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Chain.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.RowFilter.Chain(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - if (!(message.filters && message.filters.length)) - message.filters = []; - message.filters.push($root.google.bigtable.v2.RowFilter.decode(reader, reader.uint32())); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Creates a new Cell instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.Cell + * @static + * @param {google.bigtable.v2.ICell=} [properties] Properties to set + * @returns {google.bigtable.v2.Cell} Cell instance + */ + Cell.create = function create(properties) { + return new Cell(properties); + }; - /** - * Decodes a Chain message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.bigtable.v2.RowFilter.Chain - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.RowFilter.Chain} Chain - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Chain.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Encodes the specified Cell message. Does not implicitly {@link google.bigtable.v2.Cell.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.Cell + * @static + * @param {google.bigtable.v2.ICell} message Cell message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Cell.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.timestampMicros != null && Object.hasOwnProperty.call(message, "timestampMicros")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.timestampMicros); + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.value); + if (message.labels != null && message.labels.length) + for (var i = 0; i < message.labels.length; ++i) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.labels[i]); + return writer; + }; - /** - * Verifies a Chain message. - * @function verify - * @memberof google.bigtable.v2.RowFilter.Chain - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - Chain.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.filters != null && message.hasOwnProperty("filters")) { - if (!Array.isArray(message.filters)) - return "filters: array expected"; - for (var i = 0; i < message.filters.length; ++i) { - var error = $root.google.bigtable.v2.RowFilter.verify(message.filters[i]); - if (error) - return "filters." + error; - } - } - return null; - }; + /** + * Encodes the specified Cell message, length delimited. Does not implicitly {@link google.bigtable.v2.Cell.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.Cell + * @static + * @param {google.bigtable.v2.ICell} message Cell message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Cell.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; - /** - * Creates a Chain message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.bigtable.v2.RowFilter.Chain - * @static - * @param {Object.} object Plain object - * @returns {google.bigtable.v2.RowFilter.Chain} Chain - */ - Chain.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.RowFilter.Chain) - return object; - var message = new $root.google.bigtable.v2.RowFilter.Chain(); - if (object.filters) { - if (!Array.isArray(object.filters)) - throw TypeError(".google.bigtable.v2.RowFilter.Chain.filters: array expected"); - message.filters = []; - for (var i = 0; i < object.filters.length; ++i) { - if (typeof object.filters[i] !== "object") - throw TypeError(".google.bigtable.v2.RowFilter.Chain.filters: object expected"); - message.filters[i] = $root.google.bigtable.v2.RowFilter.fromObject(object.filters[i]); + /** + * Decodes a Cell message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.Cell + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.Cell} Cell + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Cell.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Cell(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.timestampMicros = reader.int64(); + break; + } + case 2: { + message.value = reader.bytes(); + break; + } + case 3: { + if (!(message.labels && message.labels.length)) + message.labels = []; + message.labels.push(reader.string()); + break; } + default: + reader.skipType(tag & 7); + break; } - return message; - }; + } + return message; + }; - /** - * Creates a plain object from a Chain message. Also converts values to other types if specified. - * @function toObject - * @memberof google.bigtable.v2.RowFilter.Chain - * @static - * @param {google.bigtable.v2.RowFilter.Chain} message Chain - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - Chain.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.filters = []; - if (message.filters && message.filters.length) { - object.filters = []; - for (var j = 0; j < message.filters.length; ++j) - object.filters[j] = $root.google.bigtable.v2.RowFilter.toObject(message.filters[j], options); - } - return object; - }; - - /** - * Converts this Chain to JSON. - * @function toJSON - * @memberof google.bigtable.v2.RowFilter.Chain - * @instance - * @returns {Object.} JSON object - */ - Chain.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Decodes a Cell message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.Cell + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.Cell} Cell + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Cell.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Gets the default type url for Chain - * @function getTypeUrl - * @memberof google.bigtable.v2.RowFilter.Chain - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - Chain.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.bigtable.v2.RowFilter.Chain"; - }; + /** + * Verifies a Cell message. + * @function verify + * @memberof google.bigtable.v2.Cell + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Cell.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.timestampMicros != null && message.hasOwnProperty("timestampMicros")) + if (!$util.isInteger(message.timestampMicros) && !(message.timestampMicros && $util.isInteger(message.timestampMicros.low) && $util.isInteger(message.timestampMicros.high))) + return "timestampMicros: integer|Long expected"; + if (message.value != null && message.hasOwnProperty("value")) + if (!(message.value && typeof message.value.length === "number" || $util.isString(message.value))) + return "value: buffer expected"; + if (message.labels != null && message.hasOwnProperty("labels")) { + if (!Array.isArray(message.labels)) + return "labels: array expected"; + for (var i = 0; i < message.labels.length; ++i) + if (!$util.isString(message.labels[i])) + return "labels: string[] expected"; + } + return null; + }; - return Chain; - })(); + /** + * Creates a Cell message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.Cell + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.Cell} Cell + */ + Cell.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.Cell) + return object; + var message = new $root.google.bigtable.v2.Cell(); + if (object.timestampMicros != null) + if ($util.Long) + (message.timestampMicros = $util.Long.fromValue(object.timestampMicros)).unsigned = false; + else if (typeof object.timestampMicros === "string") + message.timestampMicros = parseInt(object.timestampMicros, 10); + else if (typeof object.timestampMicros === "number") + message.timestampMicros = object.timestampMicros; + else if (typeof object.timestampMicros === "object") + message.timestampMicros = new $util.LongBits(object.timestampMicros.low >>> 0, object.timestampMicros.high >>> 0).toNumber(); + if (object.value != null) + if (typeof object.value === "string") + $util.base64.decode(object.value, message.value = $util.newBuffer($util.base64.length(object.value)), 0); + else if (object.value.length >= 0) + message.value = object.value; + if (object.labels) { + if (!Array.isArray(object.labels)) + throw TypeError(".google.bigtable.v2.Cell.labels: array expected"); + message.labels = []; + for (var i = 0; i < object.labels.length; ++i) + message.labels[i] = String(object.labels[i]); + } + return message; + }; - RowFilter.Interleave = (function() { + /** + * Creates a plain object from a Cell message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.Cell + * @static + * @param {google.bigtable.v2.Cell} message Cell + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Cell.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.labels = []; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.timestampMicros = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.timestampMicros = options.longs === String ? "0" : 0; + if (options.bytes === String) + object.value = ""; + else { + object.value = []; + if (options.bytes !== Array) + object.value = $util.newBuffer(object.value); + } + } + if (message.timestampMicros != null && message.hasOwnProperty("timestampMicros")) + if (typeof message.timestampMicros === "number") + object.timestampMicros = options.longs === String ? String(message.timestampMicros) : message.timestampMicros; + else + object.timestampMicros = options.longs === String ? $util.Long.prototype.toString.call(message.timestampMicros) : options.longs === Number ? new $util.LongBits(message.timestampMicros.low >>> 0, message.timestampMicros.high >>> 0).toNumber() : message.timestampMicros; + if (message.value != null && message.hasOwnProperty("value")) + object.value = options.bytes === String ? $util.base64.encode(message.value, 0, message.value.length) : options.bytes === Array ? Array.prototype.slice.call(message.value) : message.value; + if (message.labels && message.labels.length) { + object.labels = []; + for (var j = 0; j < message.labels.length; ++j) + object.labels[j] = message.labels[j]; + } + return object; + }; - /** - * Properties of an Interleave. - * @memberof google.bigtable.v2.RowFilter - * @interface IInterleave - * @property {Array.|null} [filters] Interleave filters - */ + /** + * Converts this Cell to JSON. + * @function toJSON + * @memberof google.bigtable.v2.Cell + * @instance + * @returns {Object.} JSON object + */ + Cell.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Constructs a new Interleave. - * @memberof google.bigtable.v2.RowFilter - * @classdesc Represents an Interleave. - * @implements IInterleave - * @constructor - * @param {google.bigtable.v2.RowFilter.IInterleave=} [properties] Properties to set - */ - function Interleave(properties) { - this.filters = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; + /** + * Gets the default type url for Cell + * @function getTypeUrl + * @memberof google.bigtable.v2.Cell + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Cell.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; } + return typeUrlPrefix + "/google.bigtable.v2.Cell"; + }; - /** - * Interleave filters. - * @member {Array.} filters - * @memberof google.bigtable.v2.RowFilter.Interleave - * @instance - */ - Interleave.prototype.filters = $util.emptyArray; + return Cell; + })(); - /** - * Creates a new Interleave instance using the specified properties. - * @function create - * @memberof google.bigtable.v2.RowFilter.Interleave - * @static - * @param {google.bigtable.v2.RowFilter.IInterleave=} [properties] Properties to set - * @returns {google.bigtable.v2.RowFilter.Interleave} Interleave instance - */ - Interleave.create = function create(properties) { - return new Interleave(properties); - }; + v2.RowRange = (function() { - /** - * Encodes the specified Interleave message. Does not implicitly {@link google.bigtable.v2.RowFilter.Interleave.verify|verify} messages. - * @function encode - * @memberof google.bigtable.v2.RowFilter.Interleave - * @static - * @param {google.bigtable.v2.RowFilter.IInterleave} message Interleave message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Interleave.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.filters != null && message.filters.length) - for (var i = 0; i < message.filters.length; ++i) - $root.google.bigtable.v2.RowFilter.encode(message.filters[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - return writer; - }; + /** + * Properties of a RowRange. + * @memberof google.bigtable.v2 + * @interface IRowRange + * @property {Uint8Array|null} [startKeyClosed] RowRange startKeyClosed + * @property {Uint8Array|null} [startKeyOpen] RowRange startKeyOpen + * @property {Uint8Array|null} [endKeyOpen] RowRange endKeyOpen + * @property {Uint8Array|null} [endKeyClosed] RowRange endKeyClosed + */ - /** - * Encodes the specified Interleave message, length delimited. Does not implicitly {@link google.bigtable.v2.RowFilter.Interleave.verify|verify} messages. - * @function encodeDelimited - * @memberof google.bigtable.v2.RowFilter.Interleave - * @static - * @param {google.bigtable.v2.RowFilter.IInterleave} message Interleave message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Interleave.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes an Interleave message from the specified reader or buffer. - * @function decode - * @memberof google.bigtable.v2.RowFilter.Interleave - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.RowFilter.Interleave} Interleave - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Interleave.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.RowFilter.Interleave(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - if (!(message.filters && message.filters.length)) - message.filters = []; - message.filters.push($root.google.bigtable.v2.RowFilter.decode(reader, reader.uint32())); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * Constructs a new RowRange. + * @memberof google.bigtable.v2 + * @classdesc Represents a RowRange. + * @implements IRowRange + * @constructor + * @param {google.bigtable.v2.IRowRange=} [properties] Properties to set + */ + function RowRange(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Decodes an Interleave message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.bigtable.v2.RowFilter.Interleave - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.RowFilter.Interleave} Interleave - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Interleave.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * RowRange startKeyClosed. + * @member {Uint8Array|null|undefined} startKeyClosed + * @memberof google.bigtable.v2.RowRange + * @instance + */ + RowRange.prototype.startKeyClosed = null; - /** - * Verifies an Interleave message. - * @function verify - * @memberof google.bigtable.v2.RowFilter.Interleave - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - Interleave.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.filters != null && message.hasOwnProperty("filters")) { - if (!Array.isArray(message.filters)) - return "filters: array expected"; - for (var i = 0; i < message.filters.length; ++i) { - var error = $root.google.bigtable.v2.RowFilter.verify(message.filters[i]); - if (error) - return "filters." + error; - } - } - return null; - }; + /** + * RowRange startKeyOpen. + * @member {Uint8Array|null|undefined} startKeyOpen + * @memberof google.bigtable.v2.RowRange + * @instance + */ + RowRange.prototype.startKeyOpen = null; - /** - * Creates an Interleave message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.bigtable.v2.RowFilter.Interleave - * @static - * @param {Object.} object Plain object - * @returns {google.bigtable.v2.RowFilter.Interleave} Interleave - */ - Interleave.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.RowFilter.Interleave) - return object; - var message = new $root.google.bigtable.v2.RowFilter.Interleave(); - if (object.filters) { - if (!Array.isArray(object.filters)) - throw TypeError(".google.bigtable.v2.RowFilter.Interleave.filters: array expected"); - message.filters = []; - for (var i = 0; i < object.filters.length; ++i) { - if (typeof object.filters[i] !== "object") - throw TypeError(".google.bigtable.v2.RowFilter.Interleave.filters: object expected"); - message.filters[i] = $root.google.bigtable.v2.RowFilter.fromObject(object.filters[i]); - } - } - return message; - }; + /** + * RowRange endKeyOpen. + * @member {Uint8Array|null|undefined} endKeyOpen + * @memberof google.bigtable.v2.RowRange + * @instance + */ + RowRange.prototype.endKeyOpen = null; - /** - * Creates a plain object from an Interleave message. Also converts values to other types if specified. - * @function toObject - * @memberof google.bigtable.v2.RowFilter.Interleave - * @static - * @param {google.bigtable.v2.RowFilter.Interleave} message Interleave - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - Interleave.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) - object.filters = []; - if (message.filters && message.filters.length) { - object.filters = []; - for (var j = 0; j < message.filters.length; ++j) - object.filters[j] = $root.google.bigtable.v2.RowFilter.toObject(message.filters[j], options); - } - return object; - }; + /** + * RowRange endKeyClosed. + * @member {Uint8Array|null|undefined} endKeyClosed + * @memberof google.bigtable.v2.RowRange + * @instance + */ + RowRange.prototype.endKeyClosed = null; - /** - * Converts this Interleave to JSON. - * @function toJSON - * @memberof google.bigtable.v2.RowFilter.Interleave - * @instance - * @returns {Object.} JSON object - */ - Interleave.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + // OneOf field names bound to virtual getters and setters + var $oneOfFields; - /** - * Gets the default type url for Interleave - * @function getTypeUrl - * @memberof google.bigtable.v2.RowFilter.Interleave - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - Interleave.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.bigtable.v2.RowFilter.Interleave"; - }; + /** + * RowRange startKey. + * @member {"startKeyClosed"|"startKeyOpen"|undefined} startKey + * @memberof google.bigtable.v2.RowRange + * @instance + */ + Object.defineProperty(RowRange.prototype, "startKey", { + get: $util.oneOfGetter($oneOfFields = ["startKeyClosed", "startKeyOpen"]), + set: $util.oneOfSetter($oneOfFields) + }); - return Interleave; - })(); + /** + * RowRange endKey. + * @member {"endKeyOpen"|"endKeyClosed"|undefined} endKey + * @memberof google.bigtable.v2.RowRange + * @instance + */ + Object.defineProperty(RowRange.prototype, "endKey", { + get: $util.oneOfGetter($oneOfFields = ["endKeyOpen", "endKeyClosed"]), + set: $util.oneOfSetter($oneOfFields) + }); - RowFilter.Condition = (function() { + /** + * Creates a new RowRange instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.RowRange + * @static + * @param {google.bigtable.v2.IRowRange=} [properties] Properties to set + * @returns {google.bigtable.v2.RowRange} RowRange instance + */ + RowRange.create = function create(properties) { + return new RowRange(properties); + }; - /** - * Properties of a Condition. - * @memberof google.bigtable.v2.RowFilter - * @interface ICondition - * @property {google.bigtable.v2.IRowFilter|null} [predicateFilter] Condition predicateFilter - * @property {google.bigtable.v2.IRowFilter|null} [trueFilter] Condition trueFilter - * @property {google.bigtable.v2.IRowFilter|null} [falseFilter] Condition falseFilter - */ + /** + * Encodes the specified RowRange message. Does not implicitly {@link google.bigtable.v2.RowRange.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.RowRange + * @static + * @param {google.bigtable.v2.IRowRange} message RowRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RowRange.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.startKeyClosed != null && Object.hasOwnProperty.call(message, "startKeyClosed")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.startKeyClosed); + if (message.startKeyOpen != null && Object.hasOwnProperty.call(message, "startKeyOpen")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.startKeyOpen); + if (message.endKeyOpen != null && Object.hasOwnProperty.call(message, "endKeyOpen")) + writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.endKeyOpen); + if (message.endKeyClosed != null && Object.hasOwnProperty.call(message, "endKeyClosed")) + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.endKeyClosed); + return writer; + }; - /** + /** + * Encodes the specified RowRange message, length delimited. Does not implicitly {@link google.bigtable.v2.RowRange.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.RowRange + * @static + * @param {google.bigtable.v2.IRowRange} message RowRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RowRange.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RowRange message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.RowRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.RowRange} RowRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RowRange.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.RowRange(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.startKeyClosed = reader.bytes(); + break; + } + case 2: { + message.startKeyOpen = reader.bytes(); + break; + } + case 3: { + message.endKeyOpen = reader.bytes(); + break; + } + case 4: { + message.endKeyClosed = reader.bytes(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RowRange message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.RowRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.RowRange} RowRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RowRange.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RowRange message. + * @function verify + * @memberof google.bigtable.v2.RowRange + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RowRange.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.startKeyClosed != null && message.hasOwnProperty("startKeyClosed")) { + properties.startKey = 1; + if (!(message.startKeyClosed && typeof message.startKeyClosed.length === "number" || $util.isString(message.startKeyClosed))) + return "startKeyClosed: buffer expected"; + } + if (message.startKeyOpen != null && message.hasOwnProperty("startKeyOpen")) { + if (properties.startKey === 1) + return "startKey: multiple values"; + properties.startKey = 1; + if (!(message.startKeyOpen && typeof message.startKeyOpen.length === "number" || $util.isString(message.startKeyOpen))) + return "startKeyOpen: buffer expected"; + } + if (message.endKeyOpen != null && message.hasOwnProperty("endKeyOpen")) { + properties.endKey = 1; + if (!(message.endKeyOpen && typeof message.endKeyOpen.length === "number" || $util.isString(message.endKeyOpen))) + return "endKeyOpen: buffer expected"; + } + if (message.endKeyClosed != null && message.hasOwnProperty("endKeyClosed")) { + if (properties.endKey === 1) + return "endKey: multiple values"; + properties.endKey = 1; + if (!(message.endKeyClosed && typeof message.endKeyClosed.length === "number" || $util.isString(message.endKeyClosed))) + return "endKeyClosed: buffer expected"; + } + return null; + }; + + /** + * Creates a RowRange message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.RowRange + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.RowRange} RowRange + */ + RowRange.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.RowRange) + return object; + var message = new $root.google.bigtable.v2.RowRange(); + if (object.startKeyClosed != null) + if (typeof object.startKeyClosed === "string") + $util.base64.decode(object.startKeyClosed, message.startKeyClosed = $util.newBuffer($util.base64.length(object.startKeyClosed)), 0); + else if (object.startKeyClosed.length >= 0) + message.startKeyClosed = object.startKeyClosed; + if (object.startKeyOpen != null) + if (typeof object.startKeyOpen === "string") + $util.base64.decode(object.startKeyOpen, message.startKeyOpen = $util.newBuffer($util.base64.length(object.startKeyOpen)), 0); + else if (object.startKeyOpen.length >= 0) + message.startKeyOpen = object.startKeyOpen; + if (object.endKeyOpen != null) + if (typeof object.endKeyOpen === "string") + $util.base64.decode(object.endKeyOpen, message.endKeyOpen = $util.newBuffer($util.base64.length(object.endKeyOpen)), 0); + else if (object.endKeyOpen.length >= 0) + message.endKeyOpen = object.endKeyOpen; + if (object.endKeyClosed != null) + if (typeof object.endKeyClosed === "string") + $util.base64.decode(object.endKeyClosed, message.endKeyClosed = $util.newBuffer($util.base64.length(object.endKeyClosed)), 0); + else if (object.endKeyClosed.length >= 0) + message.endKeyClosed = object.endKeyClosed; + return message; + }; + + /** + * Creates a plain object from a RowRange message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.RowRange + * @static + * @param {google.bigtable.v2.RowRange} message RowRange + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RowRange.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.startKeyClosed != null && message.hasOwnProperty("startKeyClosed")) { + object.startKeyClosed = options.bytes === String ? $util.base64.encode(message.startKeyClosed, 0, message.startKeyClosed.length) : options.bytes === Array ? Array.prototype.slice.call(message.startKeyClosed) : message.startKeyClosed; + if (options.oneofs) + object.startKey = "startKeyClosed"; + } + if (message.startKeyOpen != null && message.hasOwnProperty("startKeyOpen")) { + object.startKeyOpen = options.bytes === String ? $util.base64.encode(message.startKeyOpen, 0, message.startKeyOpen.length) : options.bytes === Array ? Array.prototype.slice.call(message.startKeyOpen) : message.startKeyOpen; + if (options.oneofs) + object.startKey = "startKeyOpen"; + } + if (message.endKeyOpen != null && message.hasOwnProperty("endKeyOpen")) { + object.endKeyOpen = options.bytes === String ? $util.base64.encode(message.endKeyOpen, 0, message.endKeyOpen.length) : options.bytes === Array ? Array.prototype.slice.call(message.endKeyOpen) : message.endKeyOpen; + if (options.oneofs) + object.endKey = "endKeyOpen"; + } + if (message.endKeyClosed != null && message.hasOwnProperty("endKeyClosed")) { + object.endKeyClosed = options.bytes === String ? $util.base64.encode(message.endKeyClosed, 0, message.endKeyClosed.length) : options.bytes === Array ? Array.prototype.slice.call(message.endKeyClosed) : message.endKeyClosed; + if (options.oneofs) + object.endKey = "endKeyClosed"; + } + return object; + }; + + /** + * Converts this RowRange to JSON. + * @function toJSON + * @memberof google.bigtable.v2.RowRange + * @instance + * @returns {Object.} JSON object + */ + RowRange.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for RowRange + * @function getTypeUrl + * @memberof google.bigtable.v2.RowRange + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RowRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.RowRange"; + }; + + return RowRange; + })(); + + v2.RowSet = (function() { + + /** + * Properties of a RowSet. + * @memberof google.bigtable.v2 + * @interface IRowSet + * @property {Array.|null} [rowKeys] RowSet rowKeys + * @property {Array.|null} [rowRanges] RowSet rowRanges + */ + + /** + * Constructs a new RowSet. + * @memberof google.bigtable.v2 + * @classdesc Represents a RowSet. + * @implements IRowSet + * @constructor + * @param {google.bigtable.v2.IRowSet=} [properties] Properties to set + */ + function RowSet(properties) { + this.rowKeys = []; + this.rowRanges = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * RowSet rowKeys. + * @member {Array.} rowKeys + * @memberof google.bigtable.v2.RowSet + * @instance + */ + RowSet.prototype.rowKeys = $util.emptyArray; + + /** + * RowSet rowRanges. + * @member {Array.} rowRanges + * @memberof google.bigtable.v2.RowSet + * @instance + */ + RowSet.prototype.rowRanges = $util.emptyArray; + + /** + * Creates a new RowSet instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.RowSet + * @static + * @param {google.bigtable.v2.IRowSet=} [properties] Properties to set + * @returns {google.bigtable.v2.RowSet} RowSet instance + */ + RowSet.create = function create(properties) { + return new RowSet(properties); + }; + + /** + * Encodes the specified RowSet message. Does not implicitly {@link google.bigtable.v2.RowSet.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.RowSet + * @static + * @param {google.bigtable.v2.IRowSet} message RowSet message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RowSet.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.rowKeys != null && message.rowKeys.length) + for (var i = 0; i < message.rowKeys.length; ++i) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.rowKeys[i]); + if (message.rowRanges != null && message.rowRanges.length) + for (var i = 0; i < message.rowRanges.length; ++i) + $root.google.bigtable.v2.RowRange.encode(message.rowRanges[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified RowSet message, length delimited. Does not implicitly {@link google.bigtable.v2.RowSet.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.RowSet + * @static + * @param {google.bigtable.v2.IRowSet} message RowSet message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RowSet.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RowSet message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.RowSet + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.RowSet} RowSet + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RowSet.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.RowSet(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (!(message.rowKeys && message.rowKeys.length)) + message.rowKeys = []; + message.rowKeys.push(reader.bytes()); + break; + } + case 2: { + if (!(message.rowRanges && message.rowRanges.length)) + message.rowRanges = []; + message.rowRanges.push($root.google.bigtable.v2.RowRange.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RowSet message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.RowSet + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.RowSet} RowSet + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RowSet.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RowSet message. + * @function verify + * @memberof google.bigtable.v2.RowSet + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RowSet.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.rowKeys != null && message.hasOwnProperty("rowKeys")) { + if (!Array.isArray(message.rowKeys)) + return "rowKeys: array expected"; + for (var i = 0; i < message.rowKeys.length; ++i) + if (!(message.rowKeys[i] && typeof message.rowKeys[i].length === "number" || $util.isString(message.rowKeys[i]))) + return "rowKeys: buffer[] expected"; + } + if (message.rowRanges != null && message.hasOwnProperty("rowRanges")) { + if (!Array.isArray(message.rowRanges)) + return "rowRanges: array expected"; + for (var i = 0; i < message.rowRanges.length; ++i) { + var error = $root.google.bigtable.v2.RowRange.verify(message.rowRanges[i]); + if (error) + return "rowRanges." + error; + } + } + return null; + }; + + /** + * Creates a RowSet message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.RowSet + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.RowSet} RowSet + */ + RowSet.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.RowSet) + return object; + var message = new $root.google.bigtable.v2.RowSet(); + if (object.rowKeys) { + if (!Array.isArray(object.rowKeys)) + throw TypeError(".google.bigtable.v2.RowSet.rowKeys: array expected"); + message.rowKeys = []; + for (var i = 0; i < object.rowKeys.length; ++i) + if (typeof object.rowKeys[i] === "string") + $util.base64.decode(object.rowKeys[i], message.rowKeys[i] = $util.newBuffer($util.base64.length(object.rowKeys[i])), 0); + else if (object.rowKeys[i].length >= 0) + message.rowKeys[i] = object.rowKeys[i]; + } + if (object.rowRanges) { + if (!Array.isArray(object.rowRanges)) + throw TypeError(".google.bigtable.v2.RowSet.rowRanges: array expected"); + message.rowRanges = []; + for (var i = 0; i < object.rowRanges.length; ++i) { + if (typeof object.rowRanges[i] !== "object") + throw TypeError(".google.bigtable.v2.RowSet.rowRanges: object expected"); + message.rowRanges[i] = $root.google.bigtable.v2.RowRange.fromObject(object.rowRanges[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a RowSet message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.RowSet + * @static + * @param {google.bigtable.v2.RowSet} message RowSet + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RowSet.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) { + object.rowKeys = []; + object.rowRanges = []; + } + if (message.rowKeys && message.rowKeys.length) { + object.rowKeys = []; + for (var j = 0; j < message.rowKeys.length; ++j) + object.rowKeys[j] = options.bytes === String ? $util.base64.encode(message.rowKeys[j], 0, message.rowKeys[j].length) : options.bytes === Array ? Array.prototype.slice.call(message.rowKeys[j]) : message.rowKeys[j]; + } + if (message.rowRanges && message.rowRanges.length) { + object.rowRanges = []; + for (var j = 0; j < message.rowRanges.length; ++j) + object.rowRanges[j] = $root.google.bigtable.v2.RowRange.toObject(message.rowRanges[j], options); + } + return object; + }; + + /** + * Converts this RowSet to JSON. + * @function toJSON + * @memberof google.bigtable.v2.RowSet + * @instance + * @returns {Object.} JSON object + */ + RowSet.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for RowSet + * @function getTypeUrl + * @memberof google.bigtable.v2.RowSet + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RowSet.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.RowSet"; + }; + + return RowSet; + })(); + + v2.ColumnRange = (function() { + + /** + * Properties of a ColumnRange. + * @memberof google.bigtable.v2 + * @interface IColumnRange + * @property {string|null} [familyName] ColumnRange familyName + * @property {Uint8Array|null} [startQualifierClosed] ColumnRange startQualifierClosed + * @property {Uint8Array|null} [startQualifierOpen] ColumnRange startQualifierOpen + * @property {Uint8Array|null} [endQualifierClosed] ColumnRange endQualifierClosed + * @property {Uint8Array|null} [endQualifierOpen] ColumnRange endQualifierOpen + */ + + /** + * Constructs a new ColumnRange. + * @memberof google.bigtable.v2 + * @classdesc Represents a ColumnRange. + * @implements IColumnRange + * @constructor + * @param {google.bigtable.v2.IColumnRange=} [properties] Properties to set + */ + function ColumnRange(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ColumnRange familyName. + * @member {string} familyName + * @memberof google.bigtable.v2.ColumnRange + * @instance + */ + ColumnRange.prototype.familyName = ""; + + /** + * ColumnRange startQualifierClosed. + * @member {Uint8Array|null|undefined} startQualifierClosed + * @memberof google.bigtable.v2.ColumnRange + * @instance + */ + ColumnRange.prototype.startQualifierClosed = null; + + /** + * ColumnRange startQualifierOpen. + * @member {Uint8Array|null|undefined} startQualifierOpen + * @memberof google.bigtable.v2.ColumnRange + * @instance + */ + ColumnRange.prototype.startQualifierOpen = null; + + /** + * ColumnRange endQualifierClosed. + * @member {Uint8Array|null|undefined} endQualifierClosed + * @memberof google.bigtable.v2.ColumnRange + * @instance + */ + ColumnRange.prototype.endQualifierClosed = null; + + /** + * ColumnRange endQualifierOpen. + * @member {Uint8Array|null|undefined} endQualifierOpen + * @memberof google.bigtable.v2.ColumnRange + * @instance + */ + ColumnRange.prototype.endQualifierOpen = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * ColumnRange startQualifier. + * @member {"startQualifierClosed"|"startQualifierOpen"|undefined} startQualifier + * @memberof google.bigtable.v2.ColumnRange + * @instance + */ + Object.defineProperty(ColumnRange.prototype, "startQualifier", { + get: $util.oneOfGetter($oneOfFields = ["startQualifierClosed", "startQualifierOpen"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * ColumnRange endQualifier. + * @member {"endQualifierClosed"|"endQualifierOpen"|undefined} endQualifier + * @memberof google.bigtable.v2.ColumnRange + * @instance + */ + Object.defineProperty(ColumnRange.prototype, "endQualifier", { + get: $util.oneOfGetter($oneOfFields = ["endQualifierClosed", "endQualifierOpen"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ColumnRange instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.ColumnRange + * @static + * @param {google.bigtable.v2.IColumnRange=} [properties] Properties to set + * @returns {google.bigtable.v2.ColumnRange} ColumnRange instance + */ + ColumnRange.create = function create(properties) { + return new ColumnRange(properties); + }; + + /** + * Encodes the specified ColumnRange message. Does not implicitly {@link google.bigtable.v2.ColumnRange.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.ColumnRange + * @static + * @param {google.bigtable.v2.IColumnRange} message ColumnRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ColumnRange.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.familyName != null && Object.hasOwnProperty.call(message, "familyName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.familyName); + if (message.startQualifierClosed != null && Object.hasOwnProperty.call(message, "startQualifierClosed")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.startQualifierClosed); + if (message.startQualifierOpen != null && Object.hasOwnProperty.call(message, "startQualifierOpen")) + writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.startQualifierOpen); + if (message.endQualifierClosed != null && Object.hasOwnProperty.call(message, "endQualifierClosed")) + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.endQualifierClosed); + if (message.endQualifierOpen != null && Object.hasOwnProperty.call(message, "endQualifierOpen")) + writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.endQualifierOpen); + return writer; + }; + + /** + * Encodes the specified ColumnRange message, length delimited. Does not implicitly {@link google.bigtable.v2.ColumnRange.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.ColumnRange + * @static + * @param {google.bigtable.v2.IColumnRange} message ColumnRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ColumnRange.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ColumnRange message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.ColumnRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.ColumnRange} ColumnRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ColumnRange.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.ColumnRange(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.familyName = reader.string(); + break; + } + case 2: { + message.startQualifierClosed = reader.bytes(); + break; + } + case 3: { + message.startQualifierOpen = reader.bytes(); + break; + } + case 4: { + message.endQualifierClosed = reader.bytes(); + break; + } + case 5: { + message.endQualifierOpen = reader.bytes(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ColumnRange message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.ColumnRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.ColumnRange} ColumnRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ColumnRange.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ColumnRange message. + * @function verify + * @memberof google.bigtable.v2.ColumnRange + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ColumnRange.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.familyName != null && message.hasOwnProperty("familyName")) + if (!$util.isString(message.familyName)) + return "familyName: string expected"; + if (message.startQualifierClosed != null && message.hasOwnProperty("startQualifierClosed")) { + properties.startQualifier = 1; + if (!(message.startQualifierClosed && typeof message.startQualifierClosed.length === "number" || $util.isString(message.startQualifierClosed))) + return "startQualifierClosed: buffer expected"; + } + if (message.startQualifierOpen != null && message.hasOwnProperty("startQualifierOpen")) { + if (properties.startQualifier === 1) + return "startQualifier: multiple values"; + properties.startQualifier = 1; + if (!(message.startQualifierOpen && typeof message.startQualifierOpen.length === "number" || $util.isString(message.startQualifierOpen))) + return "startQualifierOpen: buffer expected"; + } + if (message.endQualifierClosed != null && message.hasOwnProperty("endQualifierClosed")) { + properties.endQualifier = 1; + if (!(message.endQualifierClosed && typeof message.endQualifierClosed.length === "number" || $util.isString(message.endQualifierClosed))) + return "endQualifierClosed: buffer expected"; + } + if (message.endQualifierOpen != null && message.hasOwnProperty("endQualifierOpen")) { + if (properties.endQualifier === 1) + return "endQualifier: multiple values"; + properties.endQualifier = 1; + if (!(message.endQualifierOpen && typeof message.endQualifierOpen.length === "number" || $util.isString(message.endQualifierOpen))) + return "endQualifierOpen: buffer expected"; + } + return null; + }; + + /** + * Creates a ColumnRange message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.ColumnRange + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.ColumnRange} ColumnRange + */ + ColumnRange.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.ColumnRange) + return object; + var message = new $root.google.bigtable.v2.ColumnRange(); + if (object.familyName != null) + message.familyName = String(object.familyName); + if (object.startQualifierClosed != null) + if (typeof object.startQualifierClosed === "string") + $util.base64.decode(object.startQualifierClosed, message.startQualifierClosed = $util.newBuffer($util.base64.length(object.startQualifierClosed)), 0); + else if (object.startQualifierClosed.length >= 0) + message.startQualifierClosed = object.startQualifierClosed; + if (object.startQualifierOpen != null) + if (typeof object.startQualifierOpen === "string") + $util.base64.decode(object.startQualifierOpen, message.startQualifierOpen = $util.newBuffer($util.base64.length(object.startQualifierOpen)), 0); + else if (object.startQualifierOpen.length >= 0) + message.startQualifierOpen = object.startQualifierOpen; + if (object.endQualifierClosed != null) + if (typeof object.endQualifierClosed === "string") + $util.base64.decode(object.endQualifierClosed, message.endQualifierClosed = $util.newBuffer($util.base64.length(object.endQualifierClosed)), 0); + else if (object.endQualifierClosed.length >= 0) + message.endQualifierClosed = object.endQualifierClosed; + if (object.endQualifierOpen != null) + if (typeof object.endQualifierOpen === "string") + $util.base64.decode(object.endQualifierOpen, message.endQualifierOpen = $util.newBuffer($util.base64.length(object.endQualifierOpen)), 0); + else if (object.endQualifierOpen.length >= 0) + message.endQualifierOpen = object.endQualifierOpen; + return message; + }; + + /** + * Creates a plain object from a ColumnRange message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.ColumnRange + * @static + * @param {google.bigtable.v2.ColumnRange} message ColumnRange + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ColumnRange.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.familyName = ""; + if (message.familyName != null && message.hasOwnProperty("familyName")) + object.familyName = message.familyName; + if (message.startQualifierClosed != null && message.hasOwnProperty("startQualifierClosed")) { + object.startQualifierClosed = options.bytes === String ? $util.base64.encode(message.startQualifierClosed, 0, message.startQualifierClosed.length) : options.bytes === Array ? Array.prototype.slice.call(message.startQualifierClosed) : message.startQualifierClosed; + if (options.oneofs) + object.startQualifier = "startQualifierClosed"; + } + if (message.startQualifierOpen != null && message.hasOwnProperty("startQualifierOpen")) { + object.startQualifierOpen = options.bytes === String ? $util.base64.encode(message.startQualifierOpen, 0, message.startQualifierOpen.length) : options.bytes === Array ? Array.prototype.slice.call(message.startQualifierOpen) : message.startQualifierOpen; + if (options.oneofs) + object.startQualifier = "startQualifierOpen"; + } + if (message.endQualifierClosed != null && message.hasOwnProperty("endQualifierClosed")) { + object.endQualifierClosed = options.bytes === String ? $util.base64.encode(message.endQualifierClosed, 0, message.endQualifierClosed.length) : options.bytes === Array ? Array.prototype.slice.call(message.endQualifierClosed) : message.endQualifierClosed; + if (options.oneofs) + object.endQualifier = "endQualifierClosed"; + } + if (message.endQualifierOpen != null && message.hasOwnProperty("endQualifierOpen")) { + object.endQualifierOpen = options.bytes === String ? $util.base64.encode(message.endQualifierOpen, 0, message.endQualifierOpen.length) : options.bytes === Array ? Array.prototype.slice.call(message.endQualifierOpen) : message.endQualifierOpen; + if (options.oneofs) + object.endQualifier = "endQualifierOpen"; + } + return object; + }; + + /** + * Converts this ColumnRange to JSON. + * @function toJSON + * @memberof google.bigtable.v2.ColumnRange + * @instance + * @returns {Object.} JSON object + */ + ColumnRange.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ColumnRange + * @function getTypeUrl + * @memberof google.bigtable.v2.ColumnRange + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ColumnRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.ColumnRange"; + }; + + return ColumnRange; + })(); + + v2.TimestampRange = (function() { + + /** + * Properties of a TimestampRange. + * @memberof google.bigtable.v2 + * @interface ITimestampRange + * @property {number|Long|null} [startTimestampMicros] TimestampRange startTimestampMicros + * @property {number|Long|null} [endTimestampMicros] TimestampRange endTimestampMicros + */ + + /** + * Constructs a new TimestampRange. + * @memberof google.bigtable.v2 + * @classdesc Represents a TimestampRange. + * @implements ITimestampRange + * @constructor + * @param {google.bigtable.v2.ITimestampRange=} [properties] Properties to set + */ + function TimestampRange(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * TimestampRange startTimestampMicros. + * @member {number|Long} startTimestampMicros + * @memberof google.bigtable.v2.TimestampRange + * @instance + */ + TimestampRange.prototype.startTimestampMicros = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * TimestampRange endTimestampMicros. + * @member {number|Long} endTimestampMicros + * @memberof google.bigtable.v2.TimestampRange + * @instance + */ + TimestampRange.prototype.endTimestampMicros = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * Creates a new TimestampRange instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.TimestampRange + * @static + * @param {google.bigtable.v2.ITimestampRange=} [properties] Properties to set + * @returns {google.bigtable.v2.TimestampRange} TimestampRange instance + */ + TimestampRange.create = function create(properties) { + return new TimestampRange(properties); + }; + + /** + * Encodes the specified TimestampRange message. Does not implicitly {@link google.bigtable.v2.TimestampRange.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.TimestampRange + * @static + * @param {google.bigtable.v2.ITimestampRange} message TimestampRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TimestampRange.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.startTimestampMicros != null && Object.hasOwnProperty.call(message, "startTimestampMicros")) + writer.uint32(/* id 1, wireType 0 =*/8).int64(message.startTimestampMicros); + if (message.endTimestampMicros != null && Object.hasOwnProperty.call(message, "endTimestampMicros")) + writer.uint32(/* id 2, wireType 0 =*/16).int64(message.endTimestampMicros); + return writer; + }; + + /** + * Encodes the specified TimestampRange message, length delimited. Does not implicitly {@link google.bigtable.v2.TimestampRange.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.TimestampRange + * @static + * @param {google.bigtable.v2.ITimestampRange} message TimestampRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + TimestampRange.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a TimestampRange message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.TimestampRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.TimestampRange} TimestampRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TimestampRange.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.TimestampRange(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.startTimestampMicros = reader.int64(); + break; + } + case 2: { + message.endTimestampMicros = reader.int64(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a TimestampRange message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.TimestampRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.TimestampRange} TimestampRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + TimestampRange.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a TimestampRange message. + * @function verify + * @memberof google.bigtable.v2.TimestampRange + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + TimestampRange.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.startTimestampMicros != null && message.hasOwnProperty("startTimestampMicros")) + if (!$util.isInteger(message.startTimestampMicros) && !(message.startTimestampMicros && $util.isInteger(message.startTimestampMicros.low) && $util.isInteger(message.startTimestampMicros.high))) + return "startTimestampMicros: integer|Long expected"; + if (message.endTimestampMicros != null && message.hasOwnProperty("endTimestampMicros")) + if (!$util.isInteger(message.endTimestampMicros) && !(message.endTimestampMicros && $util.isInteger(message.endTimestampMicros.low) && $util.isInteger(message.endTimestampMicros.high))) + return "endTimestampMicros: integer|Long expected"; + return null; + }; + + /** + * Creates a TimestampRange message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.TimestampRange + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.TimestampRange} TimestampRange + */ + TimestampRange.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.TimestampRange) + return object; + var message = new $root.google.bigtable.v2.TimestampRange(); + if (object.startTimestampMicros != null) + if ($util.Long) + (message.startTimestampMicros = $util.Long.fromValue(object.startTimestampMicros)).unsigned = false; + else if (typeof object.startTimestampMicros === "string") + message.startTimestampMicros = parseInt(object.startTimestampMicros, 10); + else if (typeof object.startTimestampMicros === "number") + message.startTimestampMicros = object.startTimestampMicros; + else if (typeof object.startTimestampMicros === "object") + message.startTimestampMicros = new $util.LongBits(object.startTimestampMicros.low >>> 0, object.startTimestampMicros.high >>> 0).toNumber(); + if (object.endTimestampMicros != null) + if ($util.Long) + (message.endTimestampMicros = $util.Long.fromValue(object.endTimestampMicros)).unsigned = false; + else if (typeof object.endTimestampMicros === "string") + message.endTimestampMicros = parseInt(object.endTimestampMicros, 10); + else if (typeof object.endTimestampMicros === "number") + message.endTimestampMicros = object.endTimestampMicros; + else if (typeof object.endTimestampMicros === "object") + message.endTimestampMicros = new $util.LongBits(object.endTimestampMicros.low >>> 0, object.endTimestampMicros.high >>> 0).toNumber(); + return message; + }; + + /** + * Creates a plain object from a TimestampRange message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.TimestampRange + * @static + * @param {google.bigtable.v2.TimestampRange} message TimestampRange + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + TimestampRange.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.startTimestampMicros = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.startTimestampMicros = options.longs === String ? "0" : 0; + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.endTimestampMicros = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.endTimestampMicros = options.longs === String ? "0" : 0; + } + if (message.startTimestampMicros != null && message.hasOwnProperty("startTimestampMicros")) + if (typeof message.startTimestampMicros === "number") + object.startTimestampMicros = options.longs === String ? String(message.startTimestampMicros) : message.startTimestampMicros; + else + object.startTimestampMicros = options.longs === String ? $util.Long.prototype.toString.call(message.startTimestampMicros) : options.longs === Number ? new $util.LongBits(message.startTimestampMicros.low >>> 0, message.startTimestampMicros.high >>> 0).toNumber() : message.startTimestampMicros; + if (message.endTimestampMicros != null && message.hasOwnProperty("endTimestampMicros")) + if (typeof message.endTimestampMicros === "number") + object.endTimestampMicros = options.longs === String ? String(message.endTimestampMicros) : message.endTimestampMicros; + else + object.endTimestampMicros = options.longs === String ? $util.Long.prototype.toString.call(message.endTimestampMicros) : options.longs === Number ? new $util.LongBits(message.endTimestampMicros.low >>> 0, message.endTimestampMicros.high >>> 0).toNumber() : message.endTimestampMicros; + return object; + }; + + /** + * Converts this TimestampRange to JSON. + * @function toJSON + * @memberof google.bigtable.v2.TimestampRange + * @instance + * @returns {Object.} JSON object + */ + TimestampRange.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for TimestampRange + * @function getTypeUrl + * @memberof google.bigtable.v2.TimestampRange + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + TimestampRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.TimestampRange"; + }; + + return TimestampRange; + })(); + + v2.ValueRange = (function() { + + /** + * Properties of a ValueRange. + * @memberof google.bigtable.v2 + * @interface IValueRange + * @property {Uint8Array|null} [startValueClosed] ValueRange startValueClosed + * @property {Uint8Array|null} [startValueOpen] ValueRange startValueOpen + * @property {Uint8Array|null} [endValueClosed] ValueRange endValueClosed + * @property {Uint8Array|null} [endValueOpen] ValueRange endValueOpen + */ + + /** + * Constructs a new ValueRange. + * @memberof google.bigtable.v2 + * @classdesc Represents a ValueRange. + * @implements IValueRange + * @constructor + * @param {google.bigtable.v2.IValueRange=} [properties] Properties to set + */ + function ValueRange(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ValueRange startValueClosed. + * @member {Uint8Array|null|undefined} startValueClosed + * @memberof google.bigtable.v2.ValueRange + * @instance + */ + ValueRange.prototype.startValueClosed = null; + + /** + * ValueRange startValueOpen. + * @member {Uint8Array|null|undefined} startValueOpen + * @memberof google.bigtable.v2.ValueRange + * @instance + */ + ValueRange.prototype.startValueOpen = null; + + /** + * ValueRange endValueClosed. + * @member {Uint8Array|null|undefined} endValueClosed + * @memberof google.bigtable.v2.ValueRange + * @instance + */ + ValueRange.prototype.endValueClosed = null; + + /** + * ValueRange endValueOpen. + * @member {Uint8Array|null|undefined} endValueOpen + * @memberof google.bigtable.v2.ValueRange + * @instance + */ + ValueRange.prototype.endValueOpen = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * ValueRange startValue. + * @member {"startValueClosed"|"startValueOpen"|undefined} startValue + * @memberof google.bigtable.v2.ValueRange + * @instance + */ + Object.defineProperty(ValueRange.prototype, "startValue", { + get: $util.oneOfGetter($oneOfFields = ["startValueClosed", "startValueOpen"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * ValueRange endValue. + * @member {"endValueClosed"|"endValueOpen"|undefined} endValue + * @memberof google.bigtable.v2.ValueRange + * @instance + */ + Object.defineProperty(ValueRange.prototype, "endValue", { + get: $util.oneOfGetter($oneOfFields = ["endValueClosed", "endValueOpen"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ValueRange instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.ValueRange + * @static + * @param {google.bigtable.v2.IValueRange=} [properties] Properties to set + * @returns {google.bigtable.v2.ValueRange} ValueRange instance + */ + ValueRange.create = function create(properties) { + return new ValueRange(properties); + }; + + /** + * Encodes the specified ValueRange message. Does not implicitly {@link google.bigtable.v2.ValueRange.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.ValueRange + * @static + * @param {google.bigtable.v2.IValueRange} message ValueRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ValueRange.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.startValueClosed != null && Object.hasOwnProperty.call(message, "startValueClosed")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.startValueClosed); + if (message.startValueOpen != null && Object.hasOwnProperty.call(message, "startValueOpen")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.startValueOpen); + if (message.endValueClosed != null && Object.hasOwnProperty.call(message, "endValueClosed")) + writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.endValueClosed); + if (message.endValueOpen != null && Object.hasOwnProperty.call(message, "endValueOpen")) + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.endValueOpen); + return writer; + }; + + /** + * Encodes the specified ValueRange message, length delimited. Does not implicitly {@link google.bigtable.v2.ValueRange.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.ValueRange + * @static + * @param {google.bigtable.v2.IValueRange} message ValueRange message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ValueRange.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ValueRange message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.ValueRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.ValueRange} ValueRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ValueRange.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.ValueRange(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.startValueClosed = reader.bytes(); + break; + } + case 2: { + message.startValueOpen = reader.bytes(); + break; + } + case 3: { + message.endValueClosed = reader.bytes(); + break; + } + case 4: { + message.endValueOpen = reader.bytes(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ValueRange message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.ValueRange + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.ValueRange} ValueRange + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ValueRange.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ValueRange message. + * @function verify + * @memberof google.bigtable.v2.ValueRange + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ValueRange.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.startValueClosed != null && message.hasOwnProperty("startValueClosed")) { + properties.startValue = 1; + if (!(message.startValueClosed && typeof message.startValueClosed.length === "number" || $util.isString(message.startValueClosed))) + return "startValueClosed: buffer expected"; + } + if (message.startValueOpen != null && message.hasOwnProperty("startValueOpen")) { + if (properties.startValue === 1) + return "startValue: multiple values"; + properties.startValue = 1; + if (!(message.startValueOpen && typeof message.startValueOpen.length === "number" || $util.isString(message.startValueOpen))) + return "startValueOpen: buffer expected"; + } + if (message.endValueClosed != null && message.hasOwnProperty("endValueClosed")) { + properties.endValue = 1; + if (!(message.endValueClosed && typeof message.endValueClosed.length === "number" || $util.isString(message.endValueClosed))) + return "endValueClosed: buffer expected"; + } + if (message.endValueOpen != null && message.hasOwnProperty("endValueOpen")) { + if (properties.endValue === 1) + return "endValue: multiple values"; + properties.endValue = 1; + if (!(message.endValueOpen && typeof message.endValueOpen.length === "number" || $util.isString(message.endValueOpen))) + return "endValueOpen: buffer expected"; + } + return null; + }; + + /** + * Creates a ValueRange message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.ValueRange + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.ValueRange} ValueRange + */ + ValueRange.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.ValueRange) + return object; + var message = new $root.google.bigtable.v2.ValueRange(); + if (object.startValueClosed != null) + if (typeof object.startValueClosed === "string") + $util.base64.decode(object.startValueClosed, message.startValueClosed = $util.newBuffer($util.base64.length(object.startValueClosed)), 0); + else if (object.startValueClosed.length >= 0) + message.startValueClosed = object.startValueClosed; + if (object.startValueOpen != null) + if (typeof object.startValueOpen === "string") + $util.base64.decode(object.startValueOpen, message.startValueOpen = $util.newBuffer($util.base64.length(object.startValueOpen)), 0); + else if (object.startValueOpen.length >= 0) + message.startValueOpen = object.startValueOpen; + if (object.endValueClosed != null) + if (typeof object.endValueClosed === "string") + $util.base64.decode(object.endValueClosed, message.endValueClosed = $util.newBuffer($util.base64.length(object.endValueClosed)), 0); + else if (object.endValueClosed.length >= 0) + message.endValueClosed = object.endValueClosed; + if (object.endValueOpen != null) + if (typeof object.endValueOpen === "string") + $util.base64.decode(object.endValueOpen, message.endValueOpen = $util.newBuffer($util.base64.length(object.endValueOpen)), 0); + else if (object.endValueOpen.length >= 0) + message.endValueOpen = object.endValueOpen; + return message; + }; + + /** + * Creates a plain object from a ValueRange message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.ValueRange + * @static + * @param {google.bigtable.v2.ValueRange} message ValueRange + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ValueRange.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.startValueClosed != null && message.hasOwnProperty("startValueClosed")) { + object.startValueClosed = options.bytes === String ? $util.base64.encode(message.startValueClosed, 0, message.startValueClosed.length) : options.bytes === Array ? Array.prototype.slice.call(message.startValueClosed) : message.startValueClosed; + if (options.oneofs) + object.startValue = "startValueClosed"; + } + if (message.startValueOpen != null && message.hasOwnProperty("startValueOpen")) { + object.startValueOpen = options.bytes === String ? $util.base64.encode(message.startValueOpen, 0, message.startValueOpen.length) : options.bytes === Array ? Array.prototype.slice.call(message.startValueOpen) : message.startValueOpen; + if (options.oneofs) + object.startValue = "startValueOpen"; + } + if (message.endValueClosed != null && message.hasOwnProperty("endValueClosed")) { + object.endValueClosed = options.bytes === String ? $util.base64.encode(message.endValueClosed, 0, message.endValueClosed.length) : options.bytes === Array ? Array.prototype.slice.call(message.endValueClosed) : message.endValueClosed; + if (options.oneofs) + object.endValue = "endValueClosed"; + } + if (message.endValueOpen != null && message.hasOwnProperty("endValueOpen")) { + object.endValueOpen = options.bytes === String ? $util.base64.encode(message.endValueOpen, 0, message.endValueOpen.length) : options.bytes === Array ? Array.prototype.slice.call(message.endValueOpen) : message.endValueOpen; + if (options.oneofs) + object.endValue = "endValueOpen"; + } + return object; + }; + + /** + * Converts this ValueRange to JSON. + * @function toJSON + * @memberof google.bigtable.v2.ValueRange + * @instance + * @returns {Object.} JSON object + */ + ValueRange.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ValueRange + * @function getTypeUrl + * @memberof google.bigtable.v2.ValueRange + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ValueRange.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.ValueRange"; + }; + + return ValueRange; + })(); + + v2.RowFilter = (function() { + + /** + * Properties of a RowFilter. + * @memberof google.bigtable.v2 + * @interface IRowFilter + * @property {google.bigtable.v2.RowFilter.IChain|null} [chain] RowFilter chain + * @property {google.bigtable.v2.RowFilter.IInterleave|null} [interleave] RowFilter interleave + * @property {google.bigtable.v2.RowFilter.ICondition|null} [condition] RowFilter condition + * @property {boolean|null} [sink] RowFilter sink + * @property {boolean|null} [passAllFilter] RowFilter passAllFilter + * @property {boolean|null} [blockAllFilter] RowFilter blockAllFilter + * @property {Uint8Array|null} [rowKeyRegexFilter] RowFilter rowKeyRegexFilter + * @property {number|null} [rowSampleFilter] RowFilter rowSampleFilter + * @property {string|null} [familyNameRegexFilter] RowFilter familyNameRegexFilter + * @property {Uint8Array|null} [columnQualifierRegexFilter] RowFilter columnQualifierRegexFilter + * @property {google.bigtable.v2.IColumnRange|null} [columnRangeFilter] RowFilter columnRangeFilter + * @property {google.bigtable.v2.ITimestampRange|null} [timestampRangeFilter] RowFilter timestampRangeFilter + * @property {Uint8Array|null} [valueRegexFilter] RowFilter valueRegexFilter + * @property {google.bigtable.v2.IValueRange|null} [valueRangeFilter] RowFilter valueRangeFilter + * @property {number|null} [cellsPerRowOffsetFilter] RowFilter cellsPerRowOffsetFilter + * @property {number|null} [cellsPerRowLimitFilter] RowFilter cellsPerRowLimitFilter + * @property {number|null} [cellsPerColumnLimitFilter] RowFilter cellsPerColumnLimitFilter + * @property {boolean|null} [stripValueTransformer] RowFilter stripValueTransformer + * @property {string|null} [applyLabelTransformer] RowFilter applyLabelTransformer + */ + + /** + * Constructs a new RowFilter. + * @memberof google.bigtable.v2 + * @classdesc Represents a RowFilter. + * @implements IRowFilter + * @constructor + * @param {google.bigtable.v2.IRowFilter=} [properties] Properties to set + */ + function RowFilter(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * RowFilter chain. + * @member {google.bigtable.v2.RowFilter.IChain|null|undefined} chain + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.chain = null; + + /** + * RowFilter interleave. + * @member {google.bigtable.v2.RowFilter.IInterleave|null|undefined} interleave + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.interleave = null; + + /** + * RowFilter condition. + * @member {google.bigtable.v2.RowFilter.ICondition|null|undefined} condition + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.condition = null; + + /** + * RowFilter sink. + * @member {boolean|null|undefined} sink + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.sink = null; + + /** + * RowFilter passAllFilter. + * @member {boolean|null|undefined} passAllFilter + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.passAllFilter = null; + + /** + * RowFilter blockAllFilter. + * @member {boolean|null|undefined} blockAllFilter + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.blockAllFilter = null; + + /** + * RowFilter rowKeyRegexFilter. + * @member {Uint8Array|null|undefined} rowKeyRegexFilter + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.rowKeyRegexFilter = null; + + /** + * RowFilter rowSampleFilter. + * @member {number|null|undefined} rowSampleFilter + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.rowSampleFilter = null; + + /** + * RowFilter familyNameRegexFilter. + * @member {string|null|undefined} familyNameRegexFilter + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.familyNameRegexFilter = null; + + /** + * RowFilter columnQualifierRegexFilter. + * @member {Uint8Array|null|undefined} columnQualifierRegexFilter + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.columnQualifierRegexFilter = null; + + /** + * RowFilter columnRangeFilter. + * @member {google.bigtable.v2.IColumnRange|null|undefined} columnRangeFilter + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.columnRangeFilter = null; + + /** + * RowFilter timestampRangeFilter. + * @member {google.bigtable.v2.ITimestampRange|null|undefined} timestampRangeFilter + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.timestampRangeFilter = null; + + /** + * RowFilter valueRegexFilter. + * @member {Uint8Array|null|undefined} valueRegexFilter + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.valueRegexFilter = null; + + /** + * RowFilter valueRangeFilter. + * @member {google.bigtable.v2.IValueRange|null|undefined} valueRangeFilter + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.valueRangeFilter = null; + + /** + * RowFilter cellsPerRowOffsetFilter. + * @member {number|null|undefined} cellsPerRowOffsetFilter + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.cellsPerRowOffsetFilter = null; + + /** + * RowFilter cellsPerRowLimitFilter. + * @member {number|null|undefined} cellsPerRowLimitFilter + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.cellsPerRowLimitFilter = null; + + /** + * RowFilter cellsPerColumnLimitFilter. + * @member {number|null|undefined} cellsPerColumnLimitFilter + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.cellsPerColumnLimitFilter = null; + + /** + * RowFilter stripValueTransformer. + * @member {boolean|null|undefined} stripValueTransformer + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.stripValueTransformer = null; + + /** + * RowFilter applyLabelTransformer. + * @member {string|null|undefined} applyLabelTransformer + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + RowFilter.prototype.applyLabelTransformer = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * RowFilter filter. + * @member {"chain"|"interleave"|"condition"|"sink"|"passAllFilter"|"blockAllFilter"|"rowKeyRegexFilter"|"rowSampleFilter"|"familyNameRegexFilter"|"columnQualifierRegexFilter"|"columnRangeFilter"|"timestampRangeFilter"|"valueRegexFilter"|"valueRangeFilter"|"cellsPerRowOffsetFilter"|"cellsPerRowLimitFilter"|"cellsPerColumnLimitFilter"|"stripValueTransformer"|"applyLabelTransformer"|undefined} filter + * @memberof google.bigtable.v2.RowFilter + * @instance + */ + Object.defineProperty(RowFilter.prototype, "filter", { + get: $util.oneOfGetter($oneOfFields = ["chain", "interleave", "condition", "sink", "passAllFilter", "blockAllFilter", "rowKeyRegexFilter", "rowSampleFilter", "familyNameRegexFilter", "columnQualifierRegexFilter", "columnRangeFilter", "timestampRangeFilter", "valueRegexFilter", "valueRangeFilter", "cellsPerRowOffsetFilter", "cellsPerRowLimitFilter", "cellsPerColumnLimitFilter", "stripValueTransformer", "applyLabelTransformer"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new RowFilter instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.RowFilter + * @static + * @param {google.bigtable.v2.IRowFilter=} [properties] Properties to set + * @returns {google.bigtable.v2.RowFilter} RowFilter instance + */ + RowFilter.create = function create(properties) { + return new RowFilter(properties); + }; + + /** + * Encodes the specified RowFilter message. Does not implicitly {@link google.bigtable.v2.RowFilter.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.RowFilter + * @static + * @param {google.bigtable.v2.IRowFilter} message RowFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RowFilter.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.chain != null && Object.hasOwnProperty.call(message, "chain")) + $root.google.bigtable.v2.RowFilter.Chain.encode(message.chain, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.interleave != null && Object.hasOwnProperty.call(message, "interleave")) + $root.google.bigtable.v2.RowFilter.Interleave.encode(message.interleave, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.condition != null && Object.hasOwnProperty.call(message, "condition")) + $root.google.bigtable.v2.RowFilter.Condition.encode(message.condition, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.rowKeyRegexFilter != null && Object.hasOwnProperty.call(message, "rowKeyRegexFilter")) + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.rowKeyRegexFilter); + if (message.familyNameRegexFilter != null && Object.hasOwnProperty.call(message, "familyNameRegexFilter")) + writer.uint32(/* id 5, wireType 2 =*/42).string(message.familyNameRegexFilter); + if (message.columnQualifierRegexFilter != null && Object.hasOwnProperty.call(message, "columnQualifierRegexFilter")) + writer.uint32(/* id 6, wireType 2 =*/50).bytes(message.columnQualifierRegexFilter); + if (message.columnRangeFilter != null && Object.hasOwnProperty.call(message, "columnRangeFilter")) + $root.google.bigtable.v2.ColumnRange.encode(message.columnRangeFilter, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); + if (message.timestampRangeFilter != null && Object.hasOwnProperty.call(message, "timestampRangeFilter")) + $root.google.bigtable.v2.TimestampRange.encode(message.timestampRangeFilter, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.valueRegexFilter != null && Object.hasOwnProperty.call(message, "valueRegexFilter")) + writer.uint32(/* id 9, wireType 2 =*/74).bytes(message.valueRegexFilter); + if (message.cellsPerRowOffsetFilter != null && Object.hasOwnProperty.call(message, "cellsPerRowOffsetFilter")) + writer.uint32(/* id 10, wireType 0 =*/80).int32(message.cellsPerRowOffsetFilter); + if (message.cellsPerRowLimitFilter != null && Object.hasOwnProperty.call(message, "cellsPerRowLimitFilter")) + writer.uint32(/* id 11, wireType 0 =*/88).int32(message.cellsPerRowLimitFilter); + if (message.cellsPerColumnLimitFilter != null && Object.hasOwnProperty.call(message, "cellsPerColumnLimitFilter")) + writer.uint32(/* id 12, wireType 0 =*/96).int32(message.cellsPerColumnLimitFilter); + if (message.stripValueTransformer != null && Object.hasOwnProperty.call(message, "stripValueTransformer")) + writer.uint32(/* id 13, wireType 0 =*/104).bool(message.stripValueTransformer); + if (message.rowSampleFilter != null && Object.hasOwnProperty.call(message, "rowSampleFilter")) + writer.uint32(/* id 14, wireType 1 =*/113).double(message.rowSampleFilter); + if (message.valueRangeFilter != null && Object.hasOwnProperty.call(message, "valueRangeFilter")) + $root.google.bigtable.v2.ValueRange.encode(message.valueRangeFilter, writer.uint32(/* id 15, wireType 2 =*/122).fork()).ldelim(); + if (message.sink != null && Object.hasOwnProperty.call(message, "sink")) + writer.uint32(/* id 16, wireType 0 =*/128).bool(message.sink); + if (message.passAllFilter != null && Object.hasOwnProperty.call(message, "passAllFilter")) + writer.uint32(/* id 17, wireType 0 =*/136).bool(message.passAllFilter); + if (message.blockAllFilter != null && Object.hasOwnProperty.call(message, "blockAllFilter")) + writer.uint32(/* id 18, wireType 0 =*/144).bool(message.blockAllFilter); + if (message.applyLabelTransformer != null && Object.hasOwnProperty.call(message, "applyLabelTransformer")) + writer.uint32(/* id 19, wireType 2 =*/154).string(message.applyLabelTransformer); + return writer; + }; + + /** + * Encodes the specified RowFilter message, length delimited. Does not implicitly {@link google.bigtable.v2.RowFilter.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.RowFilter + * @static + * @param {google.bigtable.v2.IRowFilter} message RowFilter message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RowFilter.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RowFilter message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.RowFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.RowFilter} RowFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RowFilter.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.RowFilter(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.chain = $root.google.bigtable.v2.RowFilter.Chain.decode(reader, reader.uint32()); + break; + } + case 2: { + message.interleave = $root.google.bigtable.v2.RowFilter.Interleave.decode(reader, reader.uint32()); + break; + } + case 3: { + message.condition = $root.google.bigtable.v2.RowFilter.Condition.decode(reader, reader.uint32()); + break; + } + case 16: { + message.sink = reader.bool(); + break; + } + case 17: { + message.passAllFilter = reader.bool(); + break; + } + case 18: { + message.blockAllFilter = reader.bool(); + break; + } + case 4: { + message.rowKeyRegexFilter = reader.bytes(); + break; + } + case 14: { + message.rowSampleFilter = reader.double(); + break; + } + case 5: { + message.familyNameRegexFilter = reader.string(); + break; + } + case 6: { + message.columnQualifierRegexFilter = reader.bytes(); + break; + } + case 7: { + message.columnRangeFilter = $root.google.bigtable.v2.ColumnRange.decode(reader, reader.uint32()); + break; + } + case 8: { + message.timestampRangeFilter = $root.google.bigtable.v2.TimestampRange.decode(reader, reader.uint32()); + break; + } + case 9: { + message.valueRegexFilter = reader.bytes(); + break; + } + case 15: { + message.valueRangeFilter = $root.google.bigtable.v2.ValueRange.decode(reader, reader.uint32()); + break; + } + case 10: { + message.cellsPerRowOffsetFilter = reader.int32(); + break; + } + case 11: { + message.cellsPerRowLimitFilter = reader.int32(); + break; + } + case 12: { + message.cellsPerColumnLimitFilter = reader.int32(); + break; + } + case 13: { + message.stripValueTransformer = reader.bool(); + break; + } + case 19: { + message.applyLabelTransformer = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RowFilter message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.RowFilter + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.RowFilter} RowFilter + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RowFilter.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RowFilter message. + * @function verify + * @memberof google.bigtable.v2.RowFilter + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RowFilter.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.chain != null && message.hasOwnProperty("chain")) { + properties.filter = 1; + { + var error = $root.google.bigtable.v2.RowFilter.Chain.verify(message.chain); + if (error) + return "chain." + error; + } + } + if (message.interleave != null && message.hasOwnProperty("interleave")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + { + var error = $root.google.bigtable.v2.RowFilter.Interleave.verify(message.interleave); + if (error) + return "interleave." + error; + } + } + if (message.condition != null && message.hasOwnProperty("condition")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + { + var error = $root.google.bigtable.v2.RowFilter.Condition.verify(message.condition); + if (error) + return "condition." + error; + } + } + if (message.sink != null && message.hasOwnProperty("sink")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + if (typeof message.sink !== "boolean") + return "sink: boolean expected"; + } + if (message.passAllFilter != null && message.hasOwnProperty("passAllFilter")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + if (typeof message.passAllFilter !== "boolean") + return "passAllFilter: boolean expected"; + } + if (message.blockAllFilter != null && message.hasOwnProperty("blockAllFilter")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + if (typeof message.blockAllFilter !== "boolean") + return "blockAllFilter: boolean expected"; + } + if (message.rowKeyRegexFilter != null && message.hasOwnProperty("rowKeyRegexFilter")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + if (!(message.rowKeyRegexFilter && typeof message.rowKeyRegexFilter.length === "number" || $util.isString(message.rowKeyRegexFilter))) + return "rowKeyRegexFilter: buffer expected"; + } + if (message.rowSampleFilter != null && message.hasOwnProperty("rowSampleFilter")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + if (typeof message.rowSampleFilter !== "number") + return "rowSampleFilter: number expected"; + } + if (message.familyNameRegexFilter != null && message.hasOwnProperty("familyNameRegexFilter")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + if (!$util.isString(message.familyNameRegexFilter)) + return "familyNameRegexFilter: string expected"; + } + if (message.columnQualifierRegexFilter != null && message.hasOwnProperty("columnQualifierRegexFilter")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + if (!(message.columnQualifierRegexFilter && typeof message.columnQualifierRegexFilter.length === "number" || $util.isString(message.columnQualifierRegexFilter))) + return "columnQualifierRegexFilter: buffer expected"; + } + if (message.columnRangeFilter != null && message.hasOwnProperty("columnRangeFilter")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + { + var error = $root.google.bigtable.v2.ColumnRange.verify(message.columnRangeFilter); + if (error) + return "columnRangeFilter." + error; + } + } + if (message.timestampRangeFilter != null && message.hasOwnProperty("timestampRangeFilter")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + { + var error = $root.google.bigtable.v2.TimestampRange.verify(message.timestampRangeFilter); + if (error) + return "timestampRangeFilter." + error; + } + } + if (message.valueRegexFilter != null && message.hasOwnProperty("valueRegexFilter")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + if (!(message.valueRegexFilter && typeof message.valueRegexFilter.length === "number" || $util.isString(message.valueRegexFilter))) + return "valueRegexFilter: buffer expected"; + } + if (message.valueRangeFilter != null && message.hasOwnProperty("valueRangeFilter")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + { + var error = $root.google.bigtable.v2.ValueRange.verify(message.valueRangeFilter); + if (error) + return "valueRangeFilter." + error; + } + } + if (message.cellsPerRowOffsetFilter != null && message.hasOwnProperty("cellsPerRowOffsetFilter")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + if (!$util.isInteger(message.cellsPerRowOffsetFilter)) + return "cellsPerRowOffsetFilter: integer expected"; + } + if (message.cellsPerRowLimitFilter != null && message.hasOwnProperty("cellsPerRowLimitFilter")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + if (!$util.isInteger(message.cellsPerRowLimitFilter)) + return "cellsPerRowLimitFilter: integer expected"; + } + if (message.cellsPerColumnLimitFilter != null && message.hasOwnProperty("cellsPerColumnLimitFilter")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + if (!$util.isInteger(message.cellsPerColumnLimitFilter)) + return "cellsPerColumnLimitFilter: integer expected"; + } + if (message.stripValueTransformer != null && message.hasOwnProperty("stripValueTransformer")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + if (typeof message.stripValueTransformer !== "boolean") + return "stripValueTransformer: boolean expected"; + } + if (message.applyLabelTransformer != null && message.hasOwnProperty("applyLabelTransformer")) { + if (properties.filter === 1) + return "filter: multiple values"; + properties.filter = 1; + if (!$util.isString(message.applyLabelTransformer)) + return "applyLabelTransformer: string expected"; + } + return null; + }; + + /** + * Creates a RowFilter message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.RowFilter + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.RowFilter} RowFilter + */ + RowFilter.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.RowFilter) + return object; + var message = new $root.google.bigtable.v2.RowFilter(); + if (object.chain != null) { + if (typeof object.chain !== "object") + throw TypeError(".google.bigtable.v2.RowFilter.chain: object expected"); + message.chain = $root.google.bigtable.v2.RowFilter.Chain.fromObject(object.chain); + } + if (object.interleave != null) { + if (typeof object.interleave !== "object") + throw TypeError(".google.bigtable.v2.RowFilter.interleave: object expected"); + message.interleave = $root.google.bigtable.v2.RowFilter.Interleave.fromObject(object.interleave); + } + if (object.condition != null) { + if (typeof object.condition !== "object") + throw TypeError(".google.bigtable.v2.RowFilter.condition: object expected"); + message.condition = $root.google.bigtable.v2.RowFilter.Condition.fromObject(object.condition); + } + if (object.sink != null) + message.sink = Boolean(object.sink); + if (object.passAllFilter != null) + message.passAllFilter = Boolean(object.passAllFilter); + if (object.blockAllFilter != null) + message.blockAllFilter = Boolean(object.blockAllFilter); + if (object.rowKeyRegexFilter != null) + if (typeof object.rowKeyRegexFilter === "string") + $util.base64.decode(object.rowKeyRegexFilter, message.rowKeyRegexFilter = $util.newBuffer($util.base64.length(object.rowKeyRegexFilter)), 0); + else if (object.rowKeyRegexFilter.length >= 0) + message.rowKeyRegexFilter = object.rowKeyRegexFilter; + if (object.rowSampleFilter != null) + message.rowSampleFilter = Number(object.rowSampleFilter); + if (object.familyNameRegexFilter != null) + message.familyNameRegexFilter = String(object.familyNameRegexFilter); + if (object.columnQualifierRegexFilter != null) + if (typeof object.columnQualifierRegexFilter === "string") + $util.base64.decode(object.columnQualifierRegexFilter, message.columnQualifierRegexFilter = $util.newBuffer($util.base64.length(object.columnQualifierRegexFilter)), 0); + else if (object.columnQualifierRegexFilter.length >= 0) + message.columnQualifierRegexFilter = object.columnQualifierRegexFilter; + if (object.columnRangeFilter != null) { + if (typeof object.columnRangeFilter !== "object") + throw TypeError(".google.bigtable.v2.RowFilter.columnRangeFilter: object expected"); + message.columnRangeFilter = $root.google.bigtable.v2.ColumnRange.fromObject(object.columnRangeFilter); + } + if (object.timestampRangeFilter != null) { + if (typeof object.timestampRangeFilter !== "object") + throw TypeError(".google.bigtable.v2.RowFilter.timestampRangeFilter: object expected"); + message.timestampRangeFilter = $root.google.bigtable.v2.TimestampRange.fromObject(object.timestampRangeFilter); + } + if (object.valueRegexFilter != null) + if (typeof object.valueRegexFilter === "string") + $util.base64.decode(object.valueRegexFilter, message.valueRegexFilter = $util.newBuffer($util.base64.length(object.valueRegexFilter)), 0); + else if (object.valueRegexFilter.length >= 0) + message.valueRegexFilter = object.valueRegexFilter; + if (object.valueRangeFilter != null) { + if (typeof object.valueRangeFilter !== "object") + throw TypeError(".google.bigtable.v2.RowFilter.valueRangeFilter: object expected"); + message.valueRangeFilter = $root.google.bigtable.v2.ValueRange.fromObject(object.valueRangeFilter); + } + if (object.cellsPerRowOffsetFilter != null) + message.cellsPerRowOffsetFilter = object.cellsPerRowOffsetFilter | 0; + if (object.cellsPerRowLimitFilter != null) + message.cellsPerRowLimitFilter = object.cellsPerRowLimitFilter | 0; + if (object.cellsPerColumnLimitFilter != null) + message.cellsPerColumnLimitFilter = object.cellsPerColumnLimitFilter | 0; + if (object.stripValueTransformer != null) + message.stripValueTransformer = Boolean(object.stripValueTransformer); + if (object.applyLabelTransformer != null) + message.applyLabelTransformer = String(object.applyLabelTransformer); + return message; + }; + + /** + * Creates a plain object from a RowFilter message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.RowFilter + * @static + * @param {google.bigtable.v2.RowFilter} message RowFilter + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RowFilter.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.chain != null && message.hasOwnProperty("chain")) { + object.chain = $root.google.bigtable.v2.RowFilter.Chain.toObject(message.chain, options); + if (options.oneofs) + object.filter = "chain"; + } + if (message.interleave != null && message.hasOwnProperty("interleave")) { + object.interleave = $root.google.bigtable.v2.RowFilter.Interleave.toObject(message.interleave, options); + if (options.oneofs) + object.filter = "interleave"; + } + if (message.condition != null && message.hasOwnProperty("condition")) { + object.condition = $root.google.bigtable.v2.RowFilter.Condition.toObject(message.condition, options); + if (options.oneofs) + object.filter = "condition"; + } + if (message.rowKeyRegexFilter != null && message.hasOwnProperty("rowKeyRegexFilter")) { + object.rowKeyRegexFilter = options.bytes === String ? $util.base64.encode(message.rowKeyRegexFilter, 0, message.rowKeyRegexFilter.length) : options.bytes === Array ? Array.prototype.slice.call(message.rowKeyRegexFilter) : message.rowKeyRegexFilter; + if (options.oneofs) + object.filter = "rowKeyRegexFilter"; + } + if (message.familyNameRegexFilter != null && message.hasOwnProperty("familyNameRegexFilter")) { + object.familyNameRegexFilter = message.familyNameRegexFilter; + if (options.oneofs) + object.filter = "familyNameRegexFilter"; + } + if (message.columnQualifierRegexFilter != null && message.hasOwnProperty("columnQualifierRegexFilter")) { + object.columnQualifierRegexFilter = options.bytes === String ? $util.base64.encode(message.columnQualifierRegexFilter, 0, message.columnQualifierRegexFilter.length) : options.bytes === Array ? Array.prototype.slice.call(message.columnQualifierRegexFilter) : message.columnQualifierRegexFilter; + if (options.oneofs) + object.filter = "columnQualifierRegexFilter"; + } + if (message.columnRangeFilter != null && message.hasOwnProperty("columnRangeFilter")) { + object.columnRangeFilter = $root.google.bigtable.v2.ColumnRange.toObject(message.columnRangeFilter, options); + if (options.oneofs) + object.filter = "columnRangeFilter"; + } + if (message.timestampRangeFilter != null && message.hasOwnProperty("timestampRangeFilter")) { + object.timestampRangeFilter = $root.google.bigtable.v2.TimestampRange.toObject(message.timestampRangeFilter, options); + if (options.oneofs) + object.filter = "timestampRangeFilter"; + } + if (message.valueRegexFilter != null && message.hasOwnProperty("valueRegexFilter")) { + object.valueRegexFilter = options.bytes === String ? $util.base64.encode(message.valueRegexFilter, 0, message.valueRegexFilter.length) : options.bytes === Array ? Array.prototype.slice.call(message.valueRegexFilter) : message.valueRegexFilter; + if (options.oneofs) + object.filter = "valueRegexFilter"; + } + if (message.cellsPerRowOffsetFilter != null && message.hasOwnProperty("cellsPerRowOffsetFilter")) { + object.cellsPerRowOffsetFilter = message.cellsPerRowOffsetFilter; + if (options.oneofs) + object.filter = "cellsPerRowOffsetFilter"; + } + if (message.cellsPerRowLimitFilter != null && message.hasOwnProperty("cellsPerRowLimitFilter")) { + object.cellsPerRowLimitFilter = message.cellsPerRowLimitFilter; + if (options.oneofs) + object.filter = "cellsPerRowLimitFilter"; + } + if (message.cellsPerColumnLimitFilter != null && message.hasOwnProperty("cellsPerColumnLimitFilter")) { + object.cellsPerColumnLimitFilter = message.cellsPerColumnLimitFilter; + if (options.oneofs) + object.filter = "cellsPerColumnLimitFilter"; + } + if (message.stripValueTransformer != null && message.hasOwnProperty("stripValueTransformer")) { + object.stripValueTransformer = message.stripValueTransformer; + if (options.oneofs) + object.filter = "stripValueTransformer"; + } + if (message.rowSampleFilter != null && message.hasOwnProperty("rowSampleFilter")) { + object.rowSampleFilter = options.json && !isFinite(message.rowSampleFilter) ? String(message.rowSampleFilter) : message.rowSampleFilter; + if (options.oneofs) + object.filter = "rowSampleFilter"; + } + if (message.valueRangeFilter != null && message.hasOwnProperty("valueRangeFilter")) { + object.valueRangeFilter = $root.google.bigtable.v2.ValueRange.toObject(message.valueRangeFilter, options); + if (options.oneofs) + object.filter = "valueRangeFilter"; + } + if (message.sink != null && message.hasOwnProperty("sink")) { + object.sink = message.sink; + if (options.oneofs) + object.filter = "sink"; + } + if (message.passAllFilter != null && message.hasOwnProperty("passAllFilter")) { + object.passAllFilter = message.passAllFilter; + if (options.oneofs) + object.filter = "passAllFilter"; + } + if (message.blockAllFilter != null && message.hasOwnProperty("blockAllFilter")) { + object.blockAllFilter = message.blockAllFilter; + if (options.oneofs) + object.filter = "blockAllFilter"; + } + if (message.applyLabelTransformer != null && message.hasOwnProperty("applyLabelTransformer")) { + object.applyLabelTransformer = message.applyLabelTransformer; + if (options.oneofs) + object.filter = "applyLabelTransformer"; + } + return object; + }; + + /** + * Converts this RowFilter to JSON. + * @function toJSON + * @memberof google.bigtable.v2.RowFilter + * @instance + * @returns {Object.} JSON object + */ + RowFilter.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for RowFilter + * @function getTypeUrl + * @memberof google.bigtable.v2.RowFilter + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + RowFilter.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.RowFilter"; + }; + + RowFilter.Chain = (function() { + + /** + * Properties of a Chain. + * @memberof google.bigtable.v2.RowFilter + * @interface IChain + * @property {Array.|null} [filters] Chain filters + */ + + /** + * Constructs a new Chain. + * @memberof google.bigtable.v2.RowFilter + * @classdesc Represents a Chain. + * @implements IChain + * @constructor + * @param {google.bigtable.v2.RowFilter.IChain=} [properties] Properties to set + */ + function Chain(properties) { + this.filters = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Chain filters. + * @member {Array.} filters + * @memberof google.bigtable.v2.RowFilter.Chain + * @instance + */ + Chain.prototype.filters = $util.emptyArray; + + /** + * Creates a new Chain instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.RowFilter.Chain + * @static + * @param {google.bigtable.v2.RowFilter.IChain=} [properties] Properties to set + * @returns {google.bigtable.v2.RowFilter.Chain} Chain instance + */ + Chain.create = function create(properties) { + return new Chain(properties); + }; + + /** + * Encodes the specified Chain message. Does not implicitly {@link google.bigtable.v2.RowFilter.Chain.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.RowFilter.Chain + * @static + * @param {google.bigtable.v2.RowFilter.IChain} message Chain message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Chain.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.filters != null && message.filters.length) + for (var i = 0; i < message.filters.length; ++i) + $root.google.bigtable.v2.RowFilter.encode(message.filters[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Chain message, length delimited. Does not implicitly {@link google.bigtable.v2.RowFilter.Chain.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.RowFilter.Chain + * @static + * @param {google.bigtable.v2.RowFilter.IChain} message Chain message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Chain.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Chain message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.RowFilter.Chain + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.RowFilter.Chain} Chain + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Chain.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.RowFilter.Chain(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (!(message.filters && message.filters.length)) + message.filters = []; + message.filters.push($root.google.bigtable.v2.RowFilter.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Chain message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.RowFilter.Chain + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.RowFilter.Chain} Chain + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Chain.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Chain message. + * @function verify + * @memberof google.bigtable.v2.RowFilter.Chain + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Chain.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.filters != null && message.hasOwnProperty("filters")) { + if (!Array.isArray(message.filters)) + return "filters: array expected"; + for (var i = 0; i < message.filters.length; ++i) { + var error = $root.google.bigtable.v2.RowFilter.verify(message.filters[i]); + if (error) + return "filters." + error; + } + } + return null; + }; + + /** + * Creates a Chain message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.RowFilter.Chain + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.RowFilter.Chain} Chain + */ + Chain.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.RowFilter.Chain) + return object; + var message = new $root.google.bigtable.v2.RowFilter.Chain(); + if (object.filters) { + if (!Array.isArray(object.filters)) + throw TypeError(".google.bigtable.v2.RowFilter.Chain.filters: array expected"); + message.filters = []; + for (var i = 0; i < object.filters.length; ++i) { + if (typeof object.filters[i] !== "object") + throw TypeError(".google.bigtable.v2.RowFilter.Chain.filters: object expected"); + message.filters[i] = $root.google.bigtable.v2.RowFilter.fromObject(object.filters[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a Chain message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.RowFilter.Chain + * @static + * @param {google.bigtable.v2.RowFilter.Chain} message Chain + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Chain.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.filters = []; + if (message.filters && message.filters.length) { + object.filters = []; + for (var j = 0; j < message.filters.length; ++j) + object.filters[j] = $root.google.bigtable.v2.RowFilter.toObject(message.filters[j], options); + } + return object; + }; + + /** + * Converts this Chain to JSON. + * @function toJSON + * @memberof google.bigtable.v2.RowFilter.Chain + * @instance + * @returns {Object.} JSON object + */ + Chain.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Chain + * @function getTypeUrl + * @memberof google.bigtable.v2.RowFilter.Chain + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Chain.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.RowFilter.Chain"; + }; + + return Chain; + })(); + + RowFilter.Interleave = (function() { + + /** + * Properties of an Interleave. + * @memberof google.bigtable.v2.RowFilter + * @interface IInterleave + * @property {Array.|null} [filters] Interleave filters + */ + + /** + * Constructs a new Interleave. + * @memberof google.bigtable.v2.RowFilter + * @classdesc Represents an Interleave. + * @implements IInterleave + * @constructor + * @param {google.bigtable.v2.RowFilter.IInterleave=} [properties] Properties to set + */ + function Interleave(properties) { + this.filters = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Interleave filters. + * @member {Array.} filters + * @memberof google.bigtable.v2.RowFilter.Interleave + * @instance + */ + Interleave.prototype.filters = $util.emptyArray; + + /** + * Creates a new Interleave instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.RowFilter.Interleave + * @static + * @param {google.bigtable.v2.RowFilter.IInterleave=} [properties] Properties to set + * @returns {google.bigtable.v2.RowFilter.Interleave} Interleave instance + */ + Interleave.create = function create(properties) { + return new Interleave(properties); + }; + + /** + * Encodes the specified Interleave message. Does not implicitly {@link google.bigtable.v2.RowFilter.Interleave.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.RowFilter.Interleave + * @static + * @param {google.bigtable.v2.RowFilter.IInterleave} message Interleave message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Interleave.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.filters != null && message.filters.length) + for (var i = 0; i < message.filters.length; ++i) + $root.google.bigtable.v2.RowFilter.encode(message.filters[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Interleave message, length delimited. Does not implicitly {@link google.bigtable.v2.RowFilter.Interleave.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.RowFilter.Interleave + * @static + * @param {google.bigtable.v2.RowFilter.IInterleave} message Interleave message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Interleave.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an Interleave message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.RowFilter.Interleave + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.RowFilter.Interleave} Interleave + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Interleave.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.RowFilter.Interleave(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (!(message.filters && message.filters.length)) + message.filters = []; + message.filters.push($root.google.bigtable.v2.RowFilter.decode(reader, reader.uint32())); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an Interleave message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.RowFilter.Interleave + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.RowFilter.Interleave} Interleave + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Interleave.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an Interleave message. + * @function verify + * @memberof google.bigtable.v2.RowFilter.Interleave + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Interleave.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.filters != null && message.hasOwnProperty("filters")) { + if (!Array.isArray(message.filters)) + return "filters: array expected"; + for (var i = 0; i < message.filters.length; ++i) { + var error = $root.google.bigtable.v2.RowFilter.verify(message.filters[i]); + if (error) + return "filters." + error; + } + } + return null; + }; + + /** + * Creates an Interleave message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.RowFilter.Interleave + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.RowFilter.Interleave} Interleave + */ + Interleave.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.RowFilter.Interleave) + return object; + var message = new $root.google.bigtable.v2.RowFilter.Interleave(); + if (object.filters) { + if (!Array.isArray(object.filters)) + throw TypeError(".google.bigtable.v2.RowFilter.Interleave.filters: array expected"); + message.filters = []; + for (var i = 0; i < object.filters.length; ++i) { + if (typeof object.filters[i] !== "object") + throw TypeError(".google.bigtable.v2.RowFilter.Interleave.filters: object expected"); + message.filters[i] = $root.google.bigtable.v2.RowFilter.fromObject(object.filters[i]); + } + } + return message; + }; + + /** + * Creates a plain object from an Interleave message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.RowFilter.Interleave + * @static + * @param {google.bigtable.v2.RowFilter.Interleave} message Interleave + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Interleave.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.filters = []; + if (message.filters && message.filters.length) { + object.filters = []; + for (var j = 0; j < message.filters.length; ++j) + object.filters[j] = $root.google.bigtable.v2.RowFilter.toObject(message.filters[j], options); + } + return object; + }; + + /** + * Converts this Interleave to JSON. + * @function toJSON + * @memberof google.bigtable.v2.RowFilter.Interleave + * @instance + * @returns {Object.} JSON object + */ + Interleave.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Interleave + * @function getTypeUrl + * @memberof google.bigtable.v2.RowFilter.Interleave + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Interleave.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.RowFilter.Interleave"; + }; + + return Interleave; + })(); + + RowFilter.Condition = (function() { + + /** + * Properties of a Condition. + * @memberof google.bigtable.v2.RowFilter + * @interface ICondition + * @property {google.bigtable.v2.IRowFilter|null} [predicateFilter] Condition predicateFilter + * @property {google.bigtable.v2.IRowFilter|null} [trueFilter] Condition trueFilter + * @property {google.bigtable.v2.IRowFilter|null} [falseFilter] Condition falseFilter + */ + + /** * Constructs a new Condition. * @memberof google.bigtable.v2.RowFilter * @classdesc Represents a Condition. * @implements ICondition * @constructor - * @param {google.bigtable.v2.RowFilter.ICondition=} [properties] Properties to set + * @param {google.bigtable.v2.RowFilter.ICondition=} [properties] Properties to set + */ + function Condition(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Condition predicateFilter. + * @member {google.bigtable.v2.IRowFilter|null|undefined} predicateFilter + * @memberof google.bigtable.v2.RowFilter.Condition + * @instance + */ + Condition.prototype.predicateFilter = null; + + /** + * Condition trueFilter. + * @member {google.bigtable.v2.IRowFilter|null|undefined} trueFilter + * @memberof google.bigtable.v2.RowFilter.Condition + * @instance + */ + Condition.prototype.trueFilter = null; + + /** + * Condition falseFilter. + * @member {google.bigtable.v2.IRowFilter|null|undefined} falseFilter + * @memberof google.bigtable.v2.RowFilter.Condition + * @instance + */ + Condition.prototype.falseFilter = null; + + /** + * Creates a new Condition instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.RowFilter.Condition + * @static + * @param {google.bigtable.v2.RowFilter.ICondition=} [properties] Properties to set + * @returns {google.bigtable.v2.RowFilter.Condition} Condition instance + */ + Condition.create = function create(properties) { + return new Condition(properties); + }; + + /** + * Encodes the specified Condition message. Does not implicitly {@link google.bigtable.v2.RowFilter.Condition.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.RowFilter.Condition + * @static + * @param {google.bigtable.v2.RowFilter.ICondition} message Condition message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Condition.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.predicateFilter != null && Object.hasOwnProperty.call(message, "predicateFilter")) + $root.google.bigtable.v2.RowFilter.encode(message.predicateFilter, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.trueFilter != null && Object.hasOwnProperty.call(message, "trueFilter")) + $root.google.bigtable.v2.RowFilter.encode(message.trueFilter, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.falseFilter != null && Object.hasOwnProperty.call(message, "falseFilter")) + $root.google.bigtable.v2.RowFilter.encode(message.falseFilter, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Condition message, length delimited. Does not implicitly {@link google.bigtable.v2.RowFilter.Condition.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.RowFilter.Condition + * @static + * @param {google.bigtable.v2.RowFilter.ICondition} message Condition message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Condition.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Condition message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.RowFilter.Condition + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.RowFilter.Condition} Condition + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Condition.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.RowFilter.Condition(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.predicateFilter = $root.google.bigtable.v2.RowFilter.decode(reader, reader.uint32()); + break; + } + case 2: { + message.trueFilter = $root.google.bigtable.v2.RowFilter.decode(reader, reader.uint32()); + break; + } + case 3: { + message.falseFilter = $root.google.bigtable.v2.RowFilter.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Condition message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.RowFilter.Condition + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.RowFilter.Condition} Condition + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Condition.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Condition message. + * @function verify + * @memberof google.bigtable.v2.RowFilter.Condition + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Condition.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.predicateFilter != null && message.hasOwnProperty("predicateFilter")) { + var error = $root.google.bigtable.v2.RowFilter.verify(message.predicateFilter); + if (error) + return "predicateFilter." + error; + } + if (message.trueFilter != null && message.hasOwnProperty("trueFilter")) { + var error = $root.google.bigtable.v2.RowFilter.verify(message.trueFilter); + if (error) + return "trueFilter." + error; + } + if (message.falseFilter != null && message.hasOwnProperty("falseFilter")) { + var error = $root.google.bigtable.v2.RowFilter.verify(message.falseFilter); + if (error) + return "falseFilter." + error; + } + return null; + }; + + /** + * Creates a Condition message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.RowFilter.Condition + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.RowFilter.Condition} Condition + */ + Condition.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.RowFilter.Condition) + return object; + var message = new $root.google.bigtable.v2.RowFilter.Condition(); + if (object.predicateFilter != null) { + if (typeof object.predicateFilter !== "object") + throw TypeError(".google.bigtable.v2.RowFilter.Condition.predicateFilter: object expected"); + message.predicateFilter = $root.google.bigtable.v2.RowFilter.fromObject(object.predicateFilter); + } + if (object.trueFilter != null) { + if (typeof object.trueFilter !== "object") + throw TypeError(".google.bigtable.v2.RowFilter.Condition.trueFilter: object expected"); + message.trueFilter = $root.google.bigtable.v2.RowFilter.fromObject(object.trueFilter); + } + if (object.falseFilter != null) { + if (typeof object.falseFilter !== "object") + throw TypeError(".google.bigtable.v2.RowFilter.Condition.falseFilter: object expected"); + message.falseFilter = $root.google.bigtable.v2.RowFilter.fromObject(object.falseFilter); + } + return message; + }; + + /** + * Creates a plain object from a Condition message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.RowFilter.Condition + * @static + * @param {google.bigtable.v2.RowFilter.Condition} message Condition + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Condition.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.predicateFilter = null; + object.trueFilter = null; + object.falseFilter = null; + } + if (message.predicateFilter != null && message.hasOwnProperty("predicateFilter")) + object.predicateFilter = $root.google.bigtable.v2.RowFilter.toObject(message.predicateFilter, options); + if (message.trueFilter != null && message.hasOwnProperty("trueFilter")) + object.trueFilter = $root.google.bigtable.v2.RowFilter.toObject(message.trueFilter, options); + if (message.falseFilter != null && message.hasOwnProperty("falseFilter")) + object.falseFilter = $root.google.bigtable.v2.RowFilter.toObject(message.falseFilter, options); + return object; + }; + + /** + * Converts this Condition to JSON. + * @function toJSON + * @memberof google.bigtable.v2.RowFilter.Condition + * @instance + * @returns {Object.} JSON object + */ + Condition.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Condition + * @function getTypeUrl + * @memberof google.bigtable.v2.RowFilter.Condition + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Condition.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.RowFilter.Condition"; + }; + + return Condition; + })(); + + return RowFilter; + })(); + + v2.Mutation = (function() { + + /** + * Properties of a Mutation. + * @memberof google.bigtable.v2 + * @interface IMutation + * @property {google.bigtable.v2.Mutation.ISetCell|null} [setCell] Mutation setCell + * @property {google.bigtable.v2.Mutation.IDeleteFromColumn|null} [deleteFromColumn] Mutation deleteFromColumn + * @property {google.bigtable.v2.Mutation.IDeleteFromFamily|null} [deleteFromFamily] Mutation deleteFromFamily + * @property {google.bigtable.v2.Mutation.IDeleteFromRow|null} [deleteFromRow] Mutation deleteFromRow + */ + + /** + * Constructs a new Mutation. + * @memberof google.bigtable.v2 + * @classdesc Represents a Mutation. + * @implements IMutation + * @constructor + * @param {google.bigtable.v2.IMutation=} [properties] Properties to set + */ + function Mutation(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Mutation setCell. + * @member {google.bigtable.v2.Mutation.ISetCell|null|undefined} setCell + * @memberof google.bigtable.v2.Mutation + * @instance + */ + Mutation.prototype.setCell = null; + + /** + * Mutation deleteFromColumn. + * @member {google.bigtable.v2.Mutation.IDeleteFromColumn|null|undefined} deleteFromColumn + * @memberof google.bigtable.v2.Mutation + * @instance + */ + Mutation.prototype.deleteFromColumn = null; + + /** + * Mutation deleteFromFamily. + * @member {google.bigtable.v2.Mutation.IDeleteFromFamily|null|undefined} deleteFromFamily + * @memberof google.bigtable.v2.Mutation + * @instance + */ + Mutation.prototype.deleteFromFamily = null; + + /** + * Mutation deleteFromRow. + * @member {google.bigtable.v2.Mutation.IDeleteFromRow|null|undefined} deleteFromRow + * @memberof google.bigtable.v2.Mutation + * @instance + */ + Mutation.prototype.deleteFromRow = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * Mutation mutation. + * @member {"setCell"|"deleteFromColumn"|"deleteFromFamily"|"deleteFromRow"|undefined} mutation + * @memberof google.bigtable.v2.Mutation + * @instance + */ + Object.defineProperty(Mutation.prototype, "mutation", { + get: $util.oneOfGetter($oneOfFields = ["setCell", "deleteFromColumn", "deleteFromFamily", "deleteFromRow"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new Mutation instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.Mutation + * @static + * @param {google.bigtable.v2.IMutation=} [properties] Properties to set + * @returns {google.bigtable.v2.Mutation} Mutation instance + */ + Mutation.create = function create(properties) { + return new Mutation(properties); + }; + + /** + * Encodes the specified Mutation message. Does not implicitly {@link google.bigtable.v2.Mutation.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.Mutation + * @static + * @param {google.bigtable.v2.IMutation} message Mutation message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Mutation.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.setCell != null && Object.hasOwnProperty.call(message, "setCell")) + $root.google.bigtable.v2.Mutation.SetCell.encode(message.setCell, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.deleteFromColumn != null && Object.hasOwnProperty.call(message, "deleteFromColumn")) + $root.google.bigtable.v2.Mutation.DeleteFromColumn.encode(message.deleteFromColumn, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.deleteFromFamily != null && Object.hasOwnProperty.call(message, "deleteFromFamily")) + $root.google.bigtable.v2.Mutation.DeleteFromFamily.encode(message.deleteFromFamily, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.deleteFromRow != null && Object.hasOwnProperty.call(message, "deleteFromRow")) + $root.google.bigtable.v2.Mutation.DeleteFromRow.encode(message.deleteFromRow, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified Mutation message, length delimited. Does not implicitly {@link google.bigtable.v2.Mutation.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.Mutation + * @static + * @param {google.bigtable.v2.IMutation} message Mutation message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Mutation.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Mutation message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.Mutation + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.Mutation} Mutation + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Mutation.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Mutation(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.setCell = $root.google.bigtable.v2.Mutation.SetCell.decode(reader, reader.uint32()); + break; + } + case 2: { + message.deleteFromColumn = $root.google.bigtable.v2.Mutation.DeleteFromColumn.decode(reader, reader.uint32()); + break; + } + case 3: { + message.deleteFromFamily = $root.google.bigtable.v2.Mutation.DeleteFromFamily.decode(reader, reader.uint32()); + break; + } + case 4: { + message.deleteFromRow = $root.google.bigtable.v2.Mutation.DeleteFromRow.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Mutation message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.Mutation + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.Mutation} Mutation + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Mutation.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Mutation message. + * @function verify + * @memberof google.bigtable.v2.Mutation + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Mutation.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.setCell != null && message.hasOwnProperty("setCell")) { + properties.mutation = 1; + { + var error = $root.google.bigtable.v2.Mutation.SetCell.verify(message.setCell); + if (error) + return "setCell." + error; + } + } + if (message.deleteFromColumn != null && message.hasOwnProperty("deleteFromColumn")) { + if (properties.mutation === 1) + return "mutation: multiple values"; + properties.mutation = 1; + { + var error = $root.google.bigtable.v2.Mutation.DeleteFromColumn.verify(message.deleteFromColumn); + if (error) + return "deleteFromColumn." + error; + } + } + if (message.deleteFromFamily != null && message.hasOwnProperty("deleteFromFamily")) { + if (properties.mutation === 1) + return "mutation: multiple values"; + properties.mutation = 1; + { + var error = $root.google.bigtable.v2.Mutation.DeleteFromFamily.verify(message.deleteFromFamily); + if (error) + return "deleteFromFamily." + error; + } + } + if (message.deleteFromRow != null && message.hasOwnProperty("deleteFromRow")) { + if (properties.mutation === 1) + return "mutation: multiple values"; + properties.mutation = 1; + { + var error = $root.google.bigtable.v2.Mutation.DeleteFromRow.verify(message.deleteFromRow); + if (error) + return "deleteFromRow." + error; + } + } + return null; + }; + + /** + * Creates a Mutation message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.Mutation + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.Mutation} Mutation + */ + Mutation.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.Mutation) + return object; + var message = new $root.google.bigtable.v2.Mutation(); + if (object.setCell != null) { + if (typeof object.setCell !== "object") + throw TypeError(".google.bigtable.v2.Mutation.setCell: object expected"); + message.setCell = $root.google.bigtable.v2.Mutation.SetCell.fromObject(object.setCell); + } + if (object.deleteFromColumn != null) { + if (typeof object.deleteFromColumn !== "object") + throw TypeError(".google.bigtable.v2.Mutation.deleteFromColumn: object expected"); + message.deleteFromColumn = $root.google.bigtable.v2.Mutation.DeleteFromColumn.fromObject(object.deleteFromColumn); + } + if (object.deleteFromFamily != null) { + if (typeof object.deleteFromFamily !== "object") + throw TypeError(".google.bigtable.v2.Mutation.deleteFromFamily: object expected"); + message.deleteFromFamily = $root.google.bigtable.v2.Mutation.DeleteFromFamily.fromObject(object.deleteFromFamily); + } + if (object.deleteFromRow != null) { + if (typeof object.deleteFromRow !== "object") + throw TypeError(".google.bigtable.v2.Mutation.deleteFromRow: object expected"); + message.deleteFromRow = $root.google.bigtable.v2.Mutation.DeleteFromRow.fromObject(object.deleteFromRow); + } + return message; + }; + + /** + * Creates a plain object from a Mutation message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.Mutation + * @static + * @param {google.bigtable.v2.Mutation} message Mutation + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Mutation.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (message.setCell != null && message.hasOwnProperty("setCell")) { + object.setCell = $root.google.bigtable.v2.Mutation.SetCell.toObject(message.setCell, options); + if (options.oneofs) + object.mutation = "setCell"; + } + if (message.deleteFromColumn != null && message.hasOwnProperty("deleteFromColumn")) { + object.deleteFromColumn = $root.google.bigtable.v2.Mutation.DeleteFromColumn.toObject(message.deleteFromColumn, options); + if (options.oneofs) + object.mutation = "deleteFromColumn"; + } + if (message.deleteFromFamily != null && message.hasOwnProperty("deleteFromFamily")) { + object.deleteFromFamily = $root.google.bigtable.v2.Mutation.DeleteFromFamily.toObject(message.deleteFromFamily, options); + if (options.oneofs) + object.mutation = "deleteFromFamily"; + } + if (message.deleteFromRow != null && message.hasOwnProperty("deleteFromRow")) { + object.deleteFromRow = $root.google.bigtable.v2.Mutation.DeleteFromRow.toObject(message.deleteFromRow, options); + if (options.oneofs) + object.mutation = "deleteFromRow"; + } + return object; + }; + + /** + * Converts this Mutation to JSON. + * @function toJSON + * @memberof google.bigtable.v2.Mutation + * @instance + * @returns {Object.} JSON object + */ + Mutation.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Mutation + * @function getTypeUrl + * @memberof google.bigtable.v2.Mutation + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Mutation.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.Mutation"; + }; + + Mutation.SetCell = (function() { + + /** + * Properties of a SetCell. + * @memberof google.bigtable.v2.Mutation + * @interface ISetCell + * @property {string|null} [familyName] SetCell familyName + * @property {Uint8Array|null} [columnQualifier] SetCell columnQualifier + * @property {number|Long|null} [timestampMicros] SetCell timestampMicros + * @property {Uint8Array|null} [value] SetCell value + */ + + /** + * Constructs a new SetCell. + * @memberof google.bigtable.v2.Mutation + * @classdesc Represents a SetCell. + * @implements ISetCell + * @constructor + * @param {google.bigtable.v2.Mutation.ISetCell=} [properties] Properties to set */ - function Condition(properties) { + function SetCell(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -32828,103 +36071,117 @@ } /** - * Condition predicateFilter. - * @member {google.bigtable.v2.IRowFilter|null|undefined} predicateFilter - * @memberof google.bigtable.v2.RowFilter.Condition + * SetCell familyName. + * @member {string} familyName + * @memberof google.bigtable.v2.Mutation.SetCell * @instance */ - Condition.prototype.predicateFilter = null; + SetCell.prototype.familyName = ""; /** - * Condition trueFilter. - * @member {google.bigtable.v2.IRowFilter|null|undefined} trueFilter - * @memberof google.bigtable.v2.RowFilter.Condition + * SetCell columnQualifier. + * @member {Uint8Array} columnQualifier + * @memberof google.bigtable.v2.Mutation.SetCell * @instance */ - Condition.prototype.trueFilter = null; + SetCell.prototype.columnQualifier = $util.newBuffer([]); /** - * Condition falseFilter. - * @member {google.bigtable.v2.IRowFilter|null|undefined} falseFilter - * @memberof google.bigtable.v2.RowFilter.Condition + * SetCell timestampMicros. + * @member {number|Long} timestampMicros + * @memberof google.bigtable.v2.Mutation.SetCell * @instance */ - Condition.prototype.falseFilter = null; + SetCell.prototype.timestampMicros = $util.Long ? $util.Long.fromBits(0,0,false) : 0; /** - * Creates a new Condition instance using the specified properties. + * SetCell value. + * @member {Uint8Array} value + * @memberof google.bigtable.v2.Mutation.SetCell + * @instance + */ + SetCell.prototype.value = $util.newBuffer([]); + + /** + * Creates a new SetCell instance using the specified properties. * @function create - * @memberof google.bigtable.v2.RowFilter.Condition + * @memberof google.bigtable.v2.Mutation.SetCell * @static - * @param {google.bigtable.v2.RowFilter.ICondition=} [properties] Properties to set - * @returns {google.bigtable.v2.RowFilter.Condition} Condition instance + * @param {google.bigtable.v2.Mutation.ISetCell=} [properties] Properties to set + * @returns {google.bigtable.v2.Mutation.SetCell} SetCell instance */ - Condition.create = function create(properties) { - return new Condition(properties); + SetCell.create = function create(properties) { + return new SetCell(properties); }; /** - * Encodes the specified Condition message. Does not implicitly {@link google.bigtable.v2.RowFilter.Condition.verify|verify} messages. + * Encodes the specified SetCell message. Does not implicitly {@link google.bigtable.v2.Mutation.SetCell.verify|verify} messages. * @function encode - * @memberof google.bigtable.v2.RowFilter.Condition + * @memberof google.bigtable.v2.Mutation.SetCell * @static - * @param {google.bigtable.v2.RowFilter.ICondition} message Condition message or plain object to encode + * @param {google.bigtable.v2.Mutation.ISetCell} message SetCell message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer - */ - Condition.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.predicateFilter != null && Object.hasOwnProperty.call(message, "predicateFilter")) - $root.google.bigtable.v2.RowFilter.encode(message.predicateFilter, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.trueFilter != null && Object.hasOwnProperty.call(message, "trueFilter")) - $root.google.bigtable.v2.RowFilter.encode(message.trueFilter, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.falseFilter != null && Object.hasOwnProperty.call(message, "falseFilter")) - $root.google.bigtable.v2.RowFilter.encode(message.falseFilter, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + */ + SetCell.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.familyName != null && Object.hasOwnProperty.call(message, "familyName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.familyName); + if (message.columnQualifier != null && Object.hasOwnProperty.call(message, "columnQualifier")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.columnQualifier); + if (message.timestampMicros != null && Object.hasOwnProperty.call(message, "timestampMicros")) + writer.uint32(/* id 3, wireType 0 =*/24).int64(message.timestampMicros); + if (message.value != null && Object.hasOwnProperty.call(message, "value")) + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.value); return writer; }; /** - * Encodes the specified Condition message, length delimited. Does not implicitly {@link google.bigtable.v2.RowFilter.Condition.verify|verify} messages. + * Encodes the specified SetCell message, length delimited. Does not implicitly {@link google.bigtable.v2.Mutation.SetCell.verify|verify} messages. * @function encodeDelimited - * @memberof google.bigtable.v2.RowFilter.Condition + * @memberof google.bigtable.v2.Mutation.SetCell * @static - * @param {google.bigtable.v2.RowFilter.ICondition} message Condition message or plain object to encode + * @param {google.bigtable.v2.Mutation.ISetCell} message SetCell message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - Condition.encodeDelimited = function encodeDelimited(message, writer) { + SetCell.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a Condition message from the specified reader or buffer. + * Decodes a SetCell message from the specified reader or buffer. * @function decode - * @memberof google.bigtable.v2.RowFilter.Condition + * @memberof google.bigtable.v2.Mutation.SetCell * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.RowFilter.Condition} Condition + * @returns {google.bigtable.v2.Mutation.SetCell} SetCell * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Condition.decode = function decode(reader, length) { + SetCell.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.RowFilter.Condition(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Mutation.SetCell(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.predicateFilter = $root.google.bigtable.v2.RowFilter.decode(reader, reader.uint32()); + message.familyName = reader.string(); break; } case 2: { - message.trueFilter = $root.google.bigtable.v2.RowFilter.decode(reader, reader.uint32()); + message.columnQualifier = reader.bytes(); break; } case 3: { - message.falseFilter = $root.google.bigtable.v2.RowFilter.decode(reader, reader.uint32()); + message.timestampMicros = reader.int64(); + break; + } + case 4: { + message.value = reader.bytes(); break; } default: @@ -32936,489 +36193,443 @@ }; /** - * Decodes a Condition message from the specified reader or buffer, length delimited. + * Decodes a SetCell message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.bigtable.v2.RowFilter.Condition + * @memberof google.bigtable.v2.Mutation.SetCell * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.RowFilter.Condition} Condition + * @returns {google.bigtable.v2.Mutation.SetCell} SetCell * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - Condition.decodeDelimited = function decodeDelimited(reader) { + SetCell.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a Condition message. + * Verifies a SetCell message. * @function verify - * @memberof google.bigtable.v2.RowFilter.Condition + * @memberof google.bigtable.v2.Mutation.SetCell * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - Condition.verify = function verify(message) { + SetCell.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.predicateFilter != null && message.hasOwnProperty("predicateFilter")) { - var error = $root.google.bigtable.v2.RowFilter.verify(message.predicateFilter); - if (error) - return "predicateFilter." + error; - } - if (message.trueFilter != null && message.hasOwnProperty("trueFilter")) { - var error = $root.google.bigtable.v2.RowFilter.verify(message.trueFilter); - if (error) - return "trueFilter." + error; - } - if (message.falseFilter != null && message.hasOwnProperty("falseFilter")) { - var error = $root.google.bigtable.v2.RowFilter.verify(message.falseFilter); - if (error) - return "falseFilter." + error; - } + if (message.familyName != null && message.hasOwnProperty("familyName")) + if (!$util.isString(message.familyName)) + return "familyName: string expected"; + if (message.columnQualifier != null && message.hasOwnProperty("columnQualifier")) + if (!(message.columnQualifier && typeof message.columnQualifier.length === "number" || $util.isString(message.columnQualifier))) + return "columnQualifier: buffer expected"; + if (message.timestampMicros != null && message.hasOwnProperty("timestampMicros")) + if (!$util.isInteger(message.timestampMicros) && !(message.timestampMicros && $util.isInteger(message.timestampMicros.low) && $util.isInteger(message.timestampMicros.high))) + return "timestampMicros: integer|Long expected"; + if (message.value != null && message.hasOwnProperty("value")) + if (!(message.value && typeof message.value.length === "number" || $util.isString(message.value))) + return "value: buffer expected"; return null; }; /** - * Creates a Condition message from a plain object. Also converts values to their respective internal types. + * Creates a SetCell message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.bigtable.v2.RowFilter.Condition + * @memberof google.bigtable.v2.Mutation.SetCell * @static * @param {Object.} object Plain object - * @returns {google.bigtable.v2.RowFilter.Condition} Condition + * @returns {google.bigtable.v2.Mutation.SetCell} SetCell */ - Condition.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.RowFilter.Condition) + SetCell.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.Mutation.SetCell) return object; - var message = new $root.google.bigtable.v2.RowFilter.Condition(); - if (object.predicateFilter != null) { - if (typeof object.predicateFilter !== "object") - throw TypeError(".google.bigtable.v2.RowFilter.Condition.predicateFilter: object expected"); - message.predicateFilter = $root.google.bigtable.v2.RowFilter.fromObject(object.predicateFilter); - } - if (object.trueFilter != null) { - if (typeof object.trueFilter !== "object") - throw TypeError(".google.bigtable.v2.RowFilter.Condition.trueFilter: object expected"); - message.trueFilter = $root.google.bigtable.v2.RowFilter.fromObject(object.trueFilter); - } - if (object.falseFilter != null) { - if (typeof object.falseFilter !== "object") - throw TypeError(".google.bigtable.v2.RowFilter.Condition.falseFilter: object expected"); - message.falseFilter = $root.google.bigtable.v2.RowFilter.fromObject(object.falseFilter); - } + var message = new $root.google.bigtable.v2.Mutation.SetCell(); + if (object.familyName != null) + message.familyName = String(object.familyName); + if (object.columnQualifier != null) + if (typeof object.columnQualifier === "string") + $util.base64.decode(object.columnQualifier, message.columnQualifier = $util.newBuffer($util.base64.length(object.columnQualifier)), 0); + else if (object.columnQualifier.length >= 0) + message.columnQualifier = object.columnQualifier; + if (object.timestampMicros != null) + if ($util.Long) + (message.timestampMicros = $util.Long.fromValue(object.timestampMicros)).unsigned = false; + else if (typeof object.timestampMicros === "string") + message.timestampMicros = parseInt(object.timestampMicros, 10); + else if (typeof object.timestampMicros === "number") + message.timestampMicros = object.timestampMicros; + else if (typeof object.timestampMicros === "object") + message.timestampMicros = new $util.LongBits(object.timestampMicros.low >>> 0, object.timestampMicros.high >>> 0).toNumber(); + if (object.value != null) + if (typeof object.value === "string") + $util.base64.decode(object.value, message.value = $util.newBuffer($util.base64.length(object.value)), 0); + else if (object.value.length >= 0) + message.value = object.value; return message; }; /** - * Creates a plain object from a Condition message. Also converts values to other types if specified. + * Creates a plain object from a SetCell message. Also converts values to other types if specified. * @function toObject - * @memberof google.bigtable.v2.RowFilter.Condition + * @memberof google.bigtable.v2.Mutation.SetCell * @static - * @param {google.bigtable.v2.RowFilter.Condition} message Condition + * @param {google.bigtable.v2.Mutation.SetCell} message SetCell * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - Condition.toObject = function toObject(message, options) { + SetCell.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.predicateFilter = null; - object.trueFilter = null; - object.falseFilter = null; + object.familyName = ""; + if (options.bytes === String) + object.columnQualifier = ""; + else { + object.columnQualifier = []; + if (options.bytes !== Array) + object.columnQualifier = $util.newBuffer(object.columnQualifier); + } + if ($util.Long) { + var long = new $util.Long(0, 0, false); + object.timestampMicros = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.timestampMicros = options.longs === String ? "0" : 0; + if (options.bytes === String) + object.value = ""; + else { + object.value = []; + if (options.bytes !== Array) + object.value = $util.newBuffer(object.value); + } } - if (message.predicateFilter != null && message.hasOwnProperty("predicateFilter")) - object.predicateFilter = $root.google.bigtable.v2.RowFilter.toObject(message.predicateFilter, options); - if (message.trueFilter != null && message.hasOwnProperty("trueFilter")) - object.trueFilter = $root.google.bigtable.v2.RowFilter.toObject(message.trueFilter, options); - if (message.falseFilter != null && message.hasOwnProperty("falseFilter")) - object.falseFilter = $root.google.bigtable.v2.RowFilter.toObject(message.falseFilter, options); + if (message.familyName != null && message.hasOwnProperty("familyName")) + object.familyName = message.familyName; + if (message.columnQualifier != null && message.hasOwnProperty("columnQualifier")) + object.columnQualifier = options.bytes === String ? $util.base64.encode(message.columnQualifier, 0, message.columnQualifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.columnQualifier) : message.columnQualifier; + if (message.timestampMicros != null && message.hasOwnProperty("timestampMicros")) + if (typeof message.timestampMicros === "number") + object.timestampMicros = options.longs === String ? String(message.timestampMicros) : message.timestampMicros; + else + object.timestampMicros = options.longs === String ? $util.Long.prototype.toString.call(message.timestampMicros) : options.longs === Number ? new $util.LongBits(message.timestampMicros.low >>> 0, message.timestampMicros.high >>> 0).toNumber() : message.timestampMicros; + if (message.value != null && message.hasOwnProperty("value")) + object.value = options.bytes === String ? $util.base64.encode(message.value, 0, message.value.length) : options.bytes === Array ? Array.prototype.slice.call(message.value) : message.value; return object; }; /** - * Converts this Condition to JSON. + * Converts this SetCell to JSON. * @function toJSON - * @memberof google.bigtable.v2.RowFilter.Condition + * @memberof google.bigtable.v2.Mutation.SetCell * @instance * @returns {Object.} JSON object */ - Condition.prototype.toJSON = function toJSON() { + SetCell.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for Condition + * Gets the default type url for SetCell * @function getTypeUrl - * @memberof google.bigtable.v2.RowFilter.Condition + * @memberof google.bigtable.v2.Mutation.SetCell * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - Condition.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + SetCell.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.bigtable.v2.RowFilter.Condition"; + return typeUrlPrefix + "/google.bigtable.v2.Mutation.SetCell"; }; - return Condition; - })(); - - return RowFilter; - })(); - - v2.Mutation = (function() { - - /** - * Properties of a Mutation. - * @memberof google.bigtable.v2 - * @interface IMutation - * @property {google.bigtable.v2.Mutation.ISetCell|null} [setCell] Mutation setCell - * @property {google.bigtable.v2.Mutation.IDeleteFromColumn|null} [deleteFromColumn] Mutation deleteFromColumn - * @property {google.bigtable.v2.Mutation.IDeleteFromFamily|null} [deleteFromFamily] Mutation deleteFromFamily - * @property {google.bigtable.v2.Mutation.IDeleteFromRow|null} [deleteFromRow] Mutation deleteFromRow - */ - - /** - * Constructs a new Mutation. - * @memberof google.bigtable.v2 - * @classdesc Represents a Mutation. - * @implements IMutation - * @constructor - * @param {google.bigtable.v2.IMutation=} [properties] Properties to set - */ - function Mutation(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * Mutation setCell. - * @member {google.bigtable.v2.Mutation.ISetCell|null|undefined} setCell - * @memberof google.bigtable.v2.Mutation - * @instance - */ - Mutation.prototype.setCell = null; - - /** - * Mutation deleteFromColumn. - * @member {google.bigtable.v2.Mutation.IDeleteFromColumn|null|undefined} deleteFromColumn - * @memberof google.bigtable.v2.Mutation - * @instance - */ - Mutation.prototype.deleteFromColumn = null; - - /** - * Mutation deleteFromFamily. - * @member {google.bigtable.v2.Mutation.IDeleteFromFamily|null|undefined} deleteFromFamily - * @memberof google.bigtable.v2.Mutation - * @instance - */ - Mutation.prototype.deleteFromFamily = null; - - /** - * Mutation deleteFromRow. - * @member {google.bigtable.v2.Mutation.IDeleteFromRow|null|undefined} deleteFromRow - * @memberof google.bigtable.v2.Mutation - * @instance - */ - Mutation.prototype.deleteFromRow = null; + return SetCell; + })(); - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + Mutation.DeleteFromColumn = (function() { - /** - * Mutation mutation. - * @member {"setCell"|"deleteFromColumn"|"deleteFromFamily"|"deleteFromRow"|undefined} mutation - * @memberof google.bigtable.v2.Mutation - * @instance - */ - Object.defineProperty(Mutation.prototype, "mutation", { - get: $util.oneOfGetter($oneOfFields = ["setCell", "deleteFromColumn", "deleteFromFamily", "deleteFromRow"]), - set: $util.oneOfSetter($oneOfFields) - }); + /** + * Properties of a DeleteFromColumn. + * @memberof google.bigtable.v2.Mutation + * @interface IDeleteFromColumn + * @property {string|null} [familyName] DeleteFromColumn familyName + * @property {Uint8Array|null} [columnQualifier] DeleteFromColumn columnQualifier + * @property {google.bigtable.v2.ITimestampRange|null} [timeRange] DeleteFromColumn timeRange + */ - /** - * Creates a new Mutation instance using the specified properties. - * @function create - * @memberof google.bigtable.v2.Mutation - * @static - * @param {google.bigtable.v2.IMutation=} [properties] Properties to set - * @returns {google.bigtable.v2.Mutation} Mutation instance - */ - Mutation.create = function create(properties) { - return new Mutation(properties); - }; + /** + * Constructs a new DeleteFromColumn. + * @memberof google.bigtable.v2.Mutation + * @classdesc Represents a DeleteFromColumn. + * @implements IDeleteFromColumn + * @constructor + * @param {google.bigtable.v2.Mutation.IDeleteFromColumn=} [properties] Properties to set + */ + function DeleteFromColumn(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Encodes the specified Mutation message. Does not implicitly {@link google.bigtable.v2.Mutation.verify|verify} messages. - * @function encode - * @memberof google.bigtable.v2.Mutation - * @static - * @param {google.bigtable.v2.IMutation} message Mutation message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Mutation.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.setCell != null && Object.hasOwnProperty.call(message, "setCell")) - $root.google.bigtable.v2.Mutation.SetCell.encode(message.setCell, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); - if (message.deleteFromColumn != null && Object.hasOwnProperty.call(message, "deleteFromColumn")) - $root.google.bigtable.v2.Mutation.DeleteFromColumn.encode(message.deleteFromColumn, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); - if (message.deleteFromFamily != null && Object.hasOwnProperty.call(message, "deleteFromFamily")) - $root.google.bigtable.v2.Mutation.DeleteFromFamily.encode(message.deleteFromFamily, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); - if (message.deleteFromRow != null && Object.hasOwnProperty.call(message, "deleteFromRow")) - $root.google.bigtable.v2.Mutation.DeleteFromRow.encode(message.deleteFromRow, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); - return writer; - }; + /** + * DeleteFromColumn familyName. + * @member {string} familyName + * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @instance + */ + DeleteFromColumn.prototype.familyName = ""; - /** - * Encodes the specified Mutation message, length delimited. Does not implicitly {@link google.bigtable.v2.Mutation.verify|verify} messages. - * @function encodeDelimited - * @memberof google.bigtable.v2.Mutation - * @static - * @param {google.bigtable.v2.IMutation} message Mutation message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Mutation.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * DeleteFromColumn columnQualifier. + * @member {Uint8Array} columnQualifier + * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @instance + */ + DeleteFromColumn.prototype.columnQualifier = $util.newBuffer([]); - /** - * Decodes a Mutation message from the specified reader or buffer. - * @function decode - * @memberof google.bigtable.v2.Mutation - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.Mutation} Mutation - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Mutation.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Mutation(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - message.setCell = $root.google.bigtable.v2.Mutation.SetCell.decode(reader, reader.uint32()); - break; - } - case 2: { - message.deleteFromColumn = $root.google.bigtable.v2.Mutation.DeleteFromColumn.decode(reader, reader.uint32()); - break; - } - case 3: { - message.deleteFromFamily = $root.google.bigtable.v2.Mutation.DeleteFromFamily.decode(reader, reader.uint32()); - break; - } - case 4: { - message.deleteFromRow = $root.google.bigtable.v2.Mutation.DeleteFromRow.decode(reader, reader.uint32()); - break; - } - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; + /** + * DeleteFromColumn timeRange. + * @member {google.bigtable.v2.ITimestampRange|null|undefined} timeRange + * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @instance + */ + DeleteFromColumn.prototype.timeRange = null; - /** - * Decodes a Mutation message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.bigtable.v2.Mutation - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.Mutation} Mutation - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Mutation.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + /** + * Creates a new DeleteFromColumn instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @static + * @param {google.bigtable.v2.Mutation.IDeleteFromColumn=} [properties] Properties to set + * @returns {google.bigtable.v2.Mutation.DeleteFromColumn} DeleteFromColumn instance + */ + DeleteFromColumn.create = function create(properties) { + return new DeleteFromColumn(properties); + }; - /** - * Verifies a Mutation message. - * @function verify - * @memberof google.bigtable.v2.Mutation - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - Mutation.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - var properties = {}; - if (message.setCell != null && message.hasOwnProperty("setCell")) { - properties.mutation = 1; - { - var error = $root.google.bigtable.v2.Mutation.SetCell.verify(message.setCell); - if (error) - return "setCell." + error; - } - } - if (message.deleteFromColumn != null && message.hasOwnProperty("deleteFromColumn")) { - if (properties.mutation === 1) - return "mutation: multiple values"; - properties.mutation = 1; - { - var error = $root.google.bigtable.v2.Mutation.DeleteFromColumn.verify(message.deleteFromColumn); - if (error) - return "deleteFromColumn." + error; + /** + * Encodes the specified DeleteFromColumn message. Does not implicitly {@link google.bigtable.v2.Mutation.DeleteFromColumn.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @static + * @param {google.bigtable.v2.Mutation.IDeleteFromColumn} message DeleteFromColumn message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DeleteFromColumn.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.familyName != null && Object.hasOwnProperty.call(message, "familyName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.familyName); + if (message.columnQualifier != null && Object.hasOwnProperty.call(message, "columnQualifier")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.columnQualifier); + if (message.timeRange != null && Object.hasOwnProperty.call(message, "timeRange")) + $root.google.bigtable.v2.TimestampRange.encode(message.timeRange, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified DeleteFromColumn message, length delimited. Does not implicitly {@link google.bigtable.v2.Mutation.DeleteFromColumn.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @static + * @param {google.bigtable.v2.Mutation.IDeleteFromColumn} message DeleteFromColumn message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DeleteFromColumn.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DeleteFromColumn message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.Mutation.DeleteFromColumn} DeleteFromColumn + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DeleteFromColumn.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Mutation.DeleteFromColumn(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.familyName = reader.string(); + break; + } + case 2: { + message.columnQualifier = reader.bytes(); + break; + } + case 3: { + message.timeRange = $root.google.bigtable.v2.TimestampRange.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } } - } - if (message.deleteFromFamily != null && message.hasOwnProperty("deleteFromFamily")) { - if (properties.mutation === 1) - return "mutation: multiple values"; - properties.mutation = 1; - { - var error = $root.google.bigtable.v2.Mutation.DeleteFromFamily.verify(message.deleteFromFamily); + return message; + }; + + /** + * Decodes a DeleteFromColumn message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.Mutation.DeleteFromColumn} DeleteFromColumn + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DeleteFromColumn.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DeleteFromColumn message. + * @function verify + * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DeleteFromColumn.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.familyName != null && message.hasOwnProperty("familyName")) + if (!$util.isString(message.familyName)) + return "familyName: string expected"; + if (message.columnQualifier != null && message.hasOwnProperty("columnQualifier")) + if (!(message.columnQualifier && typeof message.columnQualifier.length === "number" || $util.isString(message.columnQualifier))) + return "columnQualifier: buffer expected"; + if (message.timeRange != null && message.hasOwnProperty("timeRange")) { + var error = $root.google.bigtable.v2.TimestampRange.verify(message.timeRange); if (error) - return "deleteFromFamily." + error; + return "timeRange." + error; } - } - if (message.deleteFromRow != null && message.hasOwnProperty("deleteFromRow")) { - if (properties.mutation === 1) - return "mutation: multiple values"; - properties.mutation = 1; - { - var error = $root.google.bigtable.v2.Mutation.DeleteFromRow.verify(message.deleteFromRow); - if (error) - return "deleteFromRow." + error; + return null; + }; + + /** + * Creates a DeleteFromColumn message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.Mutation.DeleteFromColumn} DeleteFromColumn + */ + DeleteFromColumn.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.Mutation.DeleteFromColumn) + return object; + var message = new $root.google.bigtable.v2.Mutation.DeleteFromColumn(); + if (object.familyName != null) + message.familyName = String(object.familyName); + if (object.columnQualifier != null) + if (typeof object.columnQualifier === "string") + $util.base64.decode(object.columnQualifier, message.columnQualifier = $util.newBuffer($util.base64.length(object.columnQualifier)), 0); + else if (object.columnQualifier.length >= 0) + message.columnQualifier = object.columnQualifier; + if (object.timeRange != null) { + if (typeof object.timeRange !== "object") + throw TypeError(".google.bigtable.v2.Mutation.DeleteFromColumn.timeRange: object expected"); + message.timeRange = $root.google.bigtable.v2.TimestampRange.fromObject(object.timeRange); } - } - return null; - }; + return message; + }; - /** - * Creates a Mutation message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.bigtable.v2.Mutation - * @static - * @param {Object.} object Plain object - * @returns {google.bigtable.v2.Mutation} Mutation - */ - Mutation.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.Mutation) + /** + * Creates a plain object from a DeleteFromColumn message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @static + * @param {google.bigtable.v2.Mutation.DeleteFromColumn} message DeleteFromColumn + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DeleteFromColumn.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.familyName = ""; + if (options.bytes === String) + object.columnQualifier = ""; + else { + object.columnQualifier = []; + if (options.bytes !== Array) + object.columnQualifier = $util.newBuffer(object.columnQualifier); + } + object.timeRange = null; + } + if (message.familyName != null && message.hasOwnProperty("familyName")) + object.familyName = message.familyName; + if (message.columnQualifier != null && message.hasOwnProperty("columnQualifier")) + object.columnQualifier = options.bytes === String ? $util.base64.encode(message.columnQualifier, 0, message.columnQualifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.columnQualifier) : message.columnQualifier; + if (message.timeRange != null && message.hasOwnProperty("timeRange")) + object.timeRange = $root.google.bigtable.v2.TimestampRange.toObject(message.timeRange, options); return object; - var message = new $root.google.bigtable.v2.Mutation(); - if (object.setCell != null) { - if (typeof object.setCell !== "object") - throw TypeError(".google.bigtable.v2.Mutation.setCell: object expected"); - message.setCell = $root.google.bigtable.v2.Mutation.SetCell.fromObject(object.setCell); - } - if (object.deleteFromColumn != null) { - if (typeof object.deleteFromColumn !== "object") - throw TypeError(".google.bigtable.v2.Mutation.deleteFromColumn: object expected"); - message.deleteFromColumn = $root.google.bigtable.v2.Mutation.DeleteFromColumn.fromObject(object.deleteFromColumn); - } - if (object.deleteFromFamily != null) { - if (typeof object.deleteFromFamily !== "object") - throw TypeError(".google.bigtable.v2.Mutation.deleteFromFamily: object expected"); - message.deleteFromFamily = $root.google.bigtable.v2.Mutation.DeleteFromFamily.fromObject(object.deleteFromFamily); - } - if (object.deleteFromRow != null) { - if (typeof object.deleteFromRow !== "object") - throw TypeError(".google.bigtable.v2.Mutation.deleteFromRow: object expected"); - message.deleteFromRow = $root.google.bigtable.v2.Mutation.DeleteFromRow.fromObject(object.deleteFromRow); - } - return message; - }; - - /** - * Creates a plain object from a Mutation message. Also converts values to other types if specified. - * @function toObject - * @memberof google.bigtable.v2.Mutation - * @static - * @param {google.bigtable.v2.Mutation} message Mutation - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - Mutation.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (message.setCell != null && message.hasOwnProperty("setCell")) { - object.setCell = $root.google.bigtable.v2.Mutation.SetCell.toObject(message.setCell, options); - if (options.oneofs) - object.mutation = "setCell"; - } - if (message.deleteFromColumn != null && message.hasOwnProperty("deleteFromColumn")) { - object.deleteFromColumn = $root.google.bigtable.v2.Mutation.DeleteFromColumn.toObject(message.deleteFromColumn, options); - if (options.oneofs) - object.mutation = "deleteFromColumn"; - } - if (message.deleteFromFamily != null && message.hasOwnProperty("deleteFromFamily")) { - object.deleteFromFamily = $root.google.bigtable.v2.Mutation.DeleteFromFamily.toObject(message.deleteFromFamily, options); - if (options.oneofs) - object.mutation = "deleteFromFamily"; - } - if (message.deleteFromRow != null && message.hasOwnProperty("deleteFromRow")) { - object.deleteFromRow = $root.google.bigtable.v2.Mutation.DeleteFromRow.toObject(message.deleteFromRow, options); - if (options.oneofs) - object.mutation = "deleteFromRow"; - } - return object; - }; + }; - /** - * Converts this Mutation to JSON. - * @function toJSON - * @memberof google.bigtable.v2.Mutation - * @instance - * @returns {Object.} JSON object - */ - Mutation.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Converts this DeleteFromColumn to JSON. + * @function toJSON + * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @instance + * @returns {Object.} JSON object + */ + DeleteFromColumn.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Gets the default type url for Mutation - * @function getTypeUrl - * @memberof google.bigtable.v2.Mutation - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - Mutation.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.bigtable.v2.Mutation"; - }; + /** + * Gets the default type url for DeleteFromColumn + * @function getTypeUrl + * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DeleteFromColumn.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.Mutation.DeleteFromColumn"; + }; - Mutation.SetCell = (function() { + return DeleteFromColumn; + })(); - /** - * Properties of a SetCell. - * @memberof google.bigtable.v2.Mutation - * @interface ISetCell - * @property {string|null} [familyName] SetCell familyName - * @property {Uint8Array|null} [columnQualifier] SetCell columnQualifier - * @property {number|Long|null} [timestampMicros] SetCell timestampMicros - * @property {Uint8Array|null} [value] SetCell value + Mutation.DeleteFromFamily = (function() { + + /** + * Properties of a DeleteFromFamily. + * @memberof google.bigtable.v2.Mutation + * @interface IDeleteFromFamily + * @property {string|null} [familyName] DeleteFromFamily familyName */ /** - * Constructs a new SetCell. + * Constructs a new DeleteFromFamily. * @memberof google.bigtable.v2.Mutation - * @classdesc Represents a SetCell. - * @implements ISetCell + * @classdesc Represents a DeleteFromFamily. + * @implements IDeleteFromFamily * @constructor - * @param {google.bigtable.v2.Mutation.ISetCell=} [properties] Properties to set + * @param {google.bigtable.v2.Mutation.IDeleteFromFamily=} [properties] Properties to set */ - function SetCell(properties) { + function DeleteFromFamily(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -33426,100 +36637,70 @@ } /** - * SetCell familyName. + * DeleteFromFamily familyName. * @member {string} familyName - * @memberof google.bigtable.v2.Mutation.SetCell - * @instance - */ - SetCell.prototype.familyName = ""; - - /** - * SetCell columnQualifier. - * @member {Uint8Array} columnQualifier - * @memberof google.bigtable.v2.Mutation.SetCell - * @instance - */ - SetCell.prototype.columnQualifier = $util.newBuffer([]); - - /** - * SetCell timestampMicros. - * @member {number|Long} timestampMicros - * @memberof google.bigtable.v2.Mutation.SetCell - * @instance - */ - SetCell.prototype.timestampMicros = $util.Long ? $util.Long.fromBits(0,0,false) : 0; - - /** - * SetCell value. - * @member {Uint8Array} value - * @memberof google.bigtable.v2.Mutation.SetCell + * @memberof google.bigtable.v2.Mutation.DeleteFromFamily * @instance */ - SetCell.prototype.value = $util.newBuffer([]); + DeleteFromFamily.prototype.familyName = ""; /** - * Creates a new SetCell instance using the specified properties. + * Creates a new DeleteFromFamily instance using the specified properties. * @function create - * @memberof google.bigtable.v2.Mutation.SetCell + * @memberof google.bigtable.v2.Mutation.DeleteFromFamily * @static - * @param {google.bigtable.v2.Mutation.ISetCell=} [properties] Properties to set - * @returns {google.bigtable.v2.Mutation.SetCell} SetCell instance + * @param {google.bigtable.v2.Mutation.IDeleteFromFamily=} [properties] Properties to set + * @returns {google.bigtable.v2.Mutation.DeleteFromFamily} DeleteFromFamily instance */ - SetCell.create = function create(properties) { - return new SetCell(properties); + DeleteFromFamily.create = function create(properties) { + return new DeleteFromFamily(properties); }; /** - * Encodes the specified SetCell message. Does not implicitly {@link google.bigtable.v2.Mutation.SetCell.verify|verify} messages. + * Encodes the specified DeleteFromFamily message. Does not implicitly {@link google.bigtable.v2.Mutation.DeleteFromFamily.verify|verify} messages. * @function encode - * @memberof google.bigtable.v2.Mutation.SetCell + * @memberof google.bigtable.v2.Mutation.DeleteFromFamily * @static - * @param {google.bigtable.v2.Mutation.ISetCell} message SetCell message or plain object to encode + * @param {google.bigtable.v2.Mutation.IDeleteFromFamily} message DeleteFromFamily message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SetCell.encode = function encode(message, writer) { + DeleteFromFamily.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); if (message.familyName != null && Object.hasOwnProperty.call(message, "familyName")) writer.uint32(/* id 1, wireType 2 =*/10).string(message.familyName); - if (message.columnQualifier != null && Object.hasOwnProperty.call(message, "columnQualifier")) - writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.columnQualifier); - if (message.timestampMicros != null && Object.hasOwnProperty.call(message, "timestampMicros")) - writer.uint32(/* id 3, wireType 0 =*/24).int64(message.timestampMicros); - if (message.value != null && Object.hasOwnProperty.call(message, "value")) - writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.value); return writer; }; /** - * Encodes the specified SetCell message, length delimited. Does not implicitly {@link google.bigtable.v2.Mutation.SetCell.verify|verify} messages. + * Encodes the specified DeleteFromFamily message, length delimited. Does not implicitly {@link google.bigtable.v2.Mutation.DeleteFromFamily.verify|verify} messages. * @function encodeDelimited - * @memberof google.bigtable.v2.Mutation.SetCell + * @memberof google.bigtable.v2.Mutation.DeleteFromFamily * @static - * @param {google.bigtable.v2.Mutation.ISetCell} message SetCell message or plain object to encode + * @param {google.bigtable.v2.Mutation.IDeleteFromFamily} message DeleteFromFamily message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - SetCell.encodeDelimited = function encodeDelimited(message, writer) { + DeleteFromFamily.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a SetCell message from the specified reader or buffer. + * Decodes a DeleteFromFamily message from the specified reader or buffer. * @function decode - * @memberof google.bigtable.v2.Mutation.SetCell + * @memberof google.bigtable.v2.Mutation.DeleteFromFamily * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.Mutation.SetCell} SetCell + * @returns {google.bigtable.v2.Mutation.DeleteFromFamily} DeleteFromFamily * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SetCell.decode = function decode(reader, length) { + DeleteFromFamily.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Mutation.SetCell(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Mutation.DeleteFromFamily(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { @@ -33527,18 +36708,6 @@ message.familyName = reader.string(); break; } - case 2: { - message.columnQualifier = reader.bytes(); - break; - } - case 3: { - message.timestampMicros = reader.int64(); - break; - } - case 4: { - message.value = reader.bytes(); - break; - } default: reader.skipType(tag & 7); break; @@ -33548,181 +36717,121 @@ }; /** - * Decodes a SetCell message from the specified reader or buffer, length delimited. + * Decodes a DeleteFromFamily message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.bigtable.v2.Mutation.SetCell + * @memberof google.bigtable.v2.Mutation.DeleteFromFamily * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.Mutation.SetCell} SetCell + * @returns {google.bigtable.v2.Mutation.DeleteFromFamily} DeleteFromFamily * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - SetCell.decodeDelimited = function decodeDelimited(reader) { + DeleteFromFamily.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a SetCell message. + * Verifies a DeleteFromFamily message. * @function verify - * @memberof google.bigtable.v2.Mutation.SetCell + * @memberof google.bigtable.v2.Mutation.DeleteFromFamily * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - SetCell.verify = function verify(message) { + DeleteFromFamily.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; if (message.familyName != null && message.hasOwnProperty("familyName")) if (!$util.isString(message.familyName)) return "familyName: string expected"; - if (message.columnQualifier != null && message.hasOwnProperty("columnQualifier")) - if (!(message.columnQualifier && typeof message.columnQualifier.length === "number" || $util.isString(message.columnQualifier))) - return "columnQualifier: buffer expected"; - if (message.timestampMicros != null && message.hasOwnProperty("timestampMicros")) - if (!$util.isInteger(message.timestampMicros) && !(message.timestampMicros && $util.isInteger(message.timestampMicros.low) && $util.isInteger(message.timestampMicros.high))) - return "timestampMicros: integer|Long expected"; - if (message.value != null && message.hasOwnProperty("value")) - if (!(message.value && typeof message.value.length === "number" || $util.isString(message.value))) - return "value: buffer expected"; return null; }; /** - * Creates a SetCell message from a plain object. Also converts values to their respective internal types. + * Creates a DeleteFromFamily message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.bigtable.v2.Mutation.SetCell + * @memberof google.bigtable.v2.Mutation.DeleteFromFamily * @static * @param {Object.} object Plain object - * @returns {google.bigtable.v2.Mutation.SetCell} SetCell + * @returns {google.bigtable.v2.Mutation.DeleteFromFamily} DeleteFromFamily */ - SetCell.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.Mutation.SetCell) + DeleteFromFamily.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.Mutation.DeleteFromFamily) return object; - var message = new $root.google.bigtable.v2.Mutation.SetCell(); + var message = new $root.google.bigtable.v2.Mutation.DeleteFromFamily(); if (object.familyName != null) message.familyName = String(object.familyName); - if (object.columnQualifier != null) - if (typeof object.columnQualifier === "string") - $util.base64.decode(object.columnQualifier, message.columnQualifier = $util.newBuffer($util.base64.length(object.columnQualifier)), 0); - else if (object.columnQualifier.length >= 0) - message.columnQualifier = object.columnQualifier; - if (object.timestampMicros != null) - if ($util.Long) - (message.timestampMicros = $util.Long.fromValue(object.timestampMicros)).unsigned = false; - else if (typeof object.timestampMicros === "string") - message.timestampMicros = parseInt(object.timestampMicros, 10); - else if (typeof object.timestampMicros === "number") - message.timestampMicros = object.timestampMicros; - else if (typeof object.timestampMicros === "object") - message.timestampMicros = new $util.LongBits(object.timestampMicros.low >>> 0, object.timestampMicros.high >>> 0).toNumber(); - if (object.value != null) - if (typeof object.value === "string") - $util.base64.decode(object.value, message.value = $util.newBuffer($util.base64.length(object.value)), 0); - else if (object.value.length >= 0) - message.value = object.value; return message; }; /** - * Creates a plain object from a SetCell message. Also converts values to other types if specified. + * Creates a plain object from a DeleteFromFamily message. Also converts values to other types if specified. * @function toObject - * @memberof google.bigtable.v2.Mutation.SetCell + * @memberof google.bigtable.v2.Mutation.DeleteFromFamily * @static - * @param {google.bigtable.v2.Mutation.SetCell} message SetCell + * @param {google.bigtable.v2.Mutation.DeleteFromFamily} message DeleteFromFamily * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - SetCell.toObject = function toObject(message, options) { + DeleteFromFamily.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; - if (options.defaults) { + if (options.defaults) object.familyName = ""; - if (options.bytes === String) - object.columnQualifier = ""; - else { - object.columnQualifier = []; - if (options.bytes !== Array) - object.columnQualifier = $util.newBuffer(object.columnQualifier); - } - if ($util.Long) { - var long = new $util.Long(0, 0, false); - object.timestampMicros = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; - } else - object.timestampMicros = options.longs === String ? "0" : 0; - if (options.bytes === String) - object.value = ""; - else { - object.value = []; - if (options.bytes !== Array) - object.value = $util.newBuffer(object.value); - } - } if (message.familyName != null && message.hasOwnProperty("familyName")) object.familyName = message.familyName; - if (message.columnQualifier != null && message.hasOwnProperty("columnQualifier")) - object.columnQualifier = options.bytes === String ? $util.base64.encode(message.columnQualifier, 0, message.columnQualifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.columnQualifier) : message.columnQualifier; - if (message.timestampMicros != null && message.hasOwnProperty("timestampMicros")) - if (typeof message.timestampMicros === "number") - object.timestampMicros = options.longs === String ? String(message.timestampMicros) : message.timestampMicros; - else - object.timestampMicros = options.longs === String ? $util.Long.prototype.toString.call(message.timestampMicros) : options.longs === Number ? new $util.LongBits(message.timestampMicros.low >>> 0, message.timestampMicros.high >>> 0).toNumber() : message.timestampMicros; - if (message.value != null && message.hasOwnProperty("value")) - object.value = options.bytes === String ? $util.base64.encode(message.value, 0, message.value.length) : options.bytes === Array ? Array.prototype.slice.call(message.value) : message.value; return object; }; /** - * Converts this SetCell to JSON. + * Converts this DeleteFromFamily to JSON. * @function toJSON - * @memberof google.bigtable.v2.Mutation.SetCell + * @memberof google.bigtable.v2.Mutation.DeleteFromFamily * @instance * @returns {Object.} JSON object */ - SetCell.prototype.toJSON = function toJSON() { + DeleteFromFamily.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for SetCell + * Gets the default type url for DeleteFromFamily * @function getTypeUrl - * @memberof google.bigtable.v2.Mutation.SetCell + * @memberof google.bigtable.v2.Mutation.DeleteFromFamily * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - SetCell.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + DeleteFromFamily.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.bigtable.v2.Mutation.SetCell"; + return typeUrlPrefix + "/google.bigtable.v2.Mutation.DeleteFromFamily"; }; - return SetCell; + return DeleteFromFamily; })(); - Mutation.DeleteFromColumn = (function() { + Mutation.DeleteFromRow = (function() { /** - * Properties of a DeleteFromColumn. + * Properties of a DeleteFromRow. * @memberof google.bigtable.v2.Mutation - * @interface IDeleteFromColumn - * @property {string|null} [familyName] DeleteFromColumn familyName - * @property {Uint8Array|null} [columnQualifier] DeleteFromColumn columnQualifier - * @property {google.bigtable.v2.ITimestampRange|null} [timeRange] DeleteFromColumn timeRange + * @interface IDeleteFromRow */ /** - * Constructs a new DeleteFromColumn. + * Constructs a new DeleteFromRow. * @memberof google.bigtable.v2.Mutation - * @classdesc Represents a DeleteFromColumn. - * @implements IDeleteFromColumn + * @classdesc Represents a DeleteFromRow. + * @implements IDeleteFromRow * @constructor - * @param {google.bigtable.v2.Mutation.IDeleteFromColumn=} [properties] Properties to set + * @param {google.bigtable.v2.Mutation.IDeleteFromRow=} [properties] Properties to set */ - function DeleteFromColumn(properties) { + function DeleteFromRow(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -33730,105 +36839,63 @@ } /** - * DeleteFromColumn familyName. - * @member {string} familyName - * @memberof google.bigtable.v2.Mutation.DeleteFromColumn - * @instance - */ - DeleteFromColumn.prototype.familyName = ""; - - /** - * DeleteFromColumn columnQualifier. - * @member {Uint8Array} columnQualifier - * @memberof google.bigtable.v2.Mutation.DeleteFromColumn - * @instance - */ - DeleteFromColumn.prototype.columnQualifier = $util.newBuffer([]); - - /** - * DeleteFromColumn timeRange. - * @member {google.bigtable.v2.ITimestampRange|null|undefined} timeRange - * @memberof google.bigtable.v2.Mutation.DeleteFromColumn - * @instance - */ - DeleteFromColumn.prototype.timeRange = null; - - /** - * Creates a new DeleteFromColumn instance using the specified properties. + * Creates a new DeleteFromRow instance using the specified properties. * @function create - * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @memberof google.bigtable.v2.Mutation.DeleteFromRow * @static - * @param {google.bigtable.v2.Mutation.IDeleteFromColumn=} [properties] Properties to set - * @returns {google.bigtable.v2.Mutation.DeleteFromColumn} DeleteFromColumn instance + * @param {google.bigtable.v2.Mutation.IDeleteFromRow=} [properties] Properties to set + * @returns {google.bigtable.v2.Mutation.DeleteFromRow} DeleteFromRow instance */ - DeleteFromColumn.create = function create(properties) { - return new DeleteFromColumn(properties); + DeleteFromRow.create = function create(properties) { + return new DeleteFromRow(properties); }; /** - * Encodes the specified DeleteFromColumn message. Does not implicitly {@link google.bigtable.v2.Mutation.DeleteFromColumn.verify|verify} messages. + * Encodes the specified DeleteFromRow message. Does not implicitly {@link google.bigtable.v2.Mutation.DeleteFromRow.verify|verify} messages. * @function encode - * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @memberof google.bigtable.v2.Mutation.DeleteFromRow * @static - * @param {google.bigtable.v2.Mutation.IDeleteFromColumn} message DeleteFromColumn message or plain object to encode + * @param {google.bigtable.v2.Mutation.IDeleteFromRow} message DeleteFromRow message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DeleteFromColumn.encode = function encode(message, writer) { + DeleteFromRow.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.familyName != null && Object.hasOwnProperty.call(message, "familyName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.familyName); - if (message.columnQualifier != null && Object.hasOwnProperty.call(message, "columnQualifier")) - writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.columnQualifier); - if (message.timeRange != null && Object.hasOwnProperty.call(message, "timeRange")) - $root.google.bigtable.v2.TimestampRange.encode(message.timeRange, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); return writer; }; /** - * Encodes the specified DeleteFromColumn message, length delimited. Does not implicitly {@link google.bigtable.v2.Mutation.DeleteFromColumn.verify|verify} messages. + * Encodes the specified DeleteFromRow message, length delimited. Does not implicitly {@link google.bigtable.v2.Mutation.DeleteFromRow.verify|verify} messages. * @function encodeDelimited - * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @memberof google.bigtable.v2.Mutation.DeleteFromRow * @static - * @param {google.bigtable.v2.Mutation.IDeleteFromColumn} message DeleteFromColumn message or plain object to encode + * @param {google.bigtable.v2.Mutation.IDeleteFromRow} message DeleteFromRow message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - DeleteFromColumn.encodeDelimited = function encodeDelimited(message, writer) { + DeleteFromRow.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a DeleteFromColumn message from the specified reader or buffer. + * Decodes a DeleteFromRow message from the specified reader or buffer. * @function decode - * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @memberof google.bigtable.v2.Mutation.DeleteFromRow * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.Mutation.DeleteFromColumn} DeleteFromColumn + * @returns {google.bigtable.v2.Mutation.DeleteFromRow} DeleteFromRow * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteFromColumn.decode = function decode(reader, length) { + DeleteFromRow.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Mutation.DeleteFromColumn(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Mutation.DeleteFromRow(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { - case 1: { - message.familyName = reader.string(); - break; - } - case 2: { - message.columnQualifier = reader.bytes(); - break; - } - case 3: { - message.timeRange = $root.google.bigtable.v2.TimestampRange.decode(reader, reader.uint32()); - break; - } default: reader.skipType(tag & 7); break; @@ -33838,537 +36905,865 @@ }; /** - * Decodes a DeleteFromColumn message from the specified reader or buffer, length delimited. + * Decodes a DeleteFromRow message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @memberof google.bigtable.v2.Mutation.DeleteFromRow * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.Mutation.DeleteFromColumn} DeleteFromColumn + * @returns {google.bigtable.v2.Mutation.DeleteFromRow} DeleteFromRow * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - DeleteFromColumn.decodeDelimited = function decodeDelimited(reader) { + DeleteFromRow.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a DeleteFromColumn message. + * Verifies a DeleteFromRow message. * @function verify - * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @memberof google.bigtable.v2.Mutation.DeleteFromRow * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - DeleteFromColumn.verify = function verify(message) { + DeleteFromRow.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - if (message.familyName != null && message.hasOwnProperty("familyName")) - if (!$util.isString(message.familyName)) - return "familyName: string expected"; - if (message.columnQualifier != null && message.hasOwnProperty("columnQualifier")) - if (!(message.columnQualifier && typeof message.columnQualifier.length === "number" || $util.isString(message.columnQualifier))) - return "columnQualifier: buffer expected"; - if (message.timeRange != null && message.hasOwnProperty("timeRange")) { - var error = $root.google.bigtable.v2.TimestampRange.verify(message.timeRange); - if (error) - return "timeRange." + error; - } return null; }; /** - * Creates a DeleteFromColumn message from a plain object. Also converts values to their respective internal types. + * Creates a DeleteFromRow message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.bigtable.v2.Mutation.DeleteFromColumn + * @memberof google.bigtable.v2.Mutation.DeleteFromRow * @static * @param {Object.} object Plain object - * @returns {google.bigtable.v2.Mutation.DeleteFromColumn} DeleteFromColumn + * @returns {google.bigtable.v2.Mutation.DeleteFromRow} DeleteFromRow */ - DeleteFromColumn.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.Mutation.DeleteFromColumn) + DeleteFromRow.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.Mutation.DeleteFromRow) return object; - var message = new $root.google.bigtable.v2.Mutation.DeleteFromColumn(); - if (object.familyName != null) - message.familyName = String(object.familyName); - if (object.columnQualifier != null) - if (typeof object.columnQualifier === "string") - $util.base64.decode(object.columnQualifier, message.columnQualifier = $util.newBuffer($util.base64.length(object.columnQualifier)), 0); - else if (object.columnQualifier.length >= 0) - message.columnQualifier = object.columnQualifier; - if (object.timeRange != null) { - if (typeof object.timeRange !== "object") - throw TypeError(".google.bigtable.v2.Mutation.DeleteFromColumn.timeRange: object expected"); - message.timeRange = $root.google.bigtable.v2.TimestampRange.fromObject(object.timeRange); + return new $root.google.bigtable.v2.Mutation.DeleteFromRow(); + }; + + /** + * Creates a plain object from a DeleteFromRow message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.Mutation.DeleteFromRow + * @static + * @param {google.bigtable.v2.Mutation.DeleteFromRow} message DeleteFromRow + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DeleteFromRow.toObject = function toObject() { + return {}; + }; + + /** + * Converts this DeleteFromRow to JSON. + * @function toJSON + * @memberof google.bigtable.v2.Mutation.DeleteFromRow + * @instance + * @returns {Object.} JSON object + */ + DeleteFromRow.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for DeleteFromRow + * @function getTypeUrl + * @memberof google.bigtable.v2.Mutation.DeleteFromRow + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DeleteFromRow.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; } - return message; + return typeUrlPrefix + "/google.bigtable.v2.Mutation.DeleteFromRow"; }; - /** - * Creates a plain object from a DeleteFromColumn message. Also converts values to other types if specified. - * @function toObject - * @memberof google.bigtable.v2.Mutation.DeleteFromColumn - * @static - * @param {google.bigtable.v2.Mutation.DeleteFromColumn} message DeleteFromColumn - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - DeleteFromColumn.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) { - object.familyName = ""; - if (options.bytes === String) - object.columnQualifier = ""; - else { - object.columnQualifier = []; - if (options.bytes !== Array) - object.columnQualifier = $util.newBuffer(object.columnQualifier); + return DeleteFromRow; + })(); + + return Mutation; + })(); + + v2.ReadModifyWriteRule = (function() { + + /** + * Properties of a ReadModifyWriteRule. + * @memberof google.bigtable.v2 + * @interface IReadModifyWriteRule + * @property {string|null} [familyName] ReadModifyWriteRule familyName + * @property {Uint8Array|null} [columnQualifier] ReadModifyWriteRule columnQualifier + * @property {Uint8Array|null} [appendValue] ReadModifyWriteRule appendValue + * @property {number|Long|null} [incrementAmount] ReadModifyWriteRule incrementAmount + */ + + /** + * Constructs a new ReadModifyWriteRule. + * @memberof google.bigtable.v2 + * @classdesc Represents a ReadModifyWriteRule. + * @implements IReadModifyWriteRule + * @constructor + * @param {google.bigtable.v2.IReadModifyWriteRule=} [properties] Properties to set + */ + function ReadModifyWriteRule(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ReadModifyWriteRule familyName. + * @member {string} familyName + * @memberof google.bigtable.v2.ReadModifyWriteRule + * @instance + */ + ReadModifyWriteRule.prototype.familyName = ""; + + /** + * ReadModifyWriteRule columnQualifier. + * @member {Uint8Array} columnQualifier + * @memberof google.bigtable.v2.ReadModifyWriteRule + * @instance + */ + ReadModifyWriteRule.prototype.columnQualifier = $util.newBuffer([]); + + /** + * ReadModifyWriteRule appendValue. + * @member {Uint8Array|null|undefined} appendValue + * @memberof google.bigtable.v2.ReadModifyWriteRule + * @instance + */ + ReadModifyWriteRule.prototype.appendValue = null; + + /** + * ReadModifyWriteRule incrementAmount. + * @member {number|Long|null|undefined} incrementAmount + * @memberof google.bigtable.v2.ReadModifyWriteRule + * @instance + */ + ReadModifyWriteRule.prototype.incrementAmount = null; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * ReadModifyWriteRule rule. + * @member {"appendValue"|"incrementAmount"|undefined} rule + * @memberof google.bigtable.v2.ReadModifyWriteRule + * @instance + */ + Object.defineProperty(ReadModifyWriteRule.prototype, "rule", { + get: $util.oneOfGetter($oneOfFields = ["appendValue", "incrementAmount"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ReadModifyWriteRule instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.ReadModifyWriteRule + * @static + * @param {google.bigtable.v2.IReadModifyWriteRule=} [properties] Properties to set + * @returns {google.bigtable.v2.ReadModifyWriteRule} ReadModifyWriteRule instance + */ + ReadModifyWriteRule.create = function create(properties) { + return new ReadModifyWriteRule(properties); + }; + + /** + * Encodes the specified ReadModifyWriteRule message. Does not implicitly {@link google.bigtable.v2.ReadModifyWriteRule.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.ReadModifyWriteRule + * @static + * @param {google.bigtable.v2.IReadModifyWriteRule} message ReadModifyWriteRule message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ReadModifyWriteRule.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.familyName != null && Object.hasOwnProperty.call(message, "familyName")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.familyName); + if (message.columnQualifier != null && Object.hasOwnProperty.call(message, "columnQualifier")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.columnQualifier); + if (message.appendValue != null && Object.hasOwnProperty.call(message, "appendValue")) + writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.appendValue); + if (message.incrementAmount != null && Object.hasOwnProperty.call(message, "incrementAmount")) + writer.uint32(/* id 4, wireType 0 =*/32).int64(message.incrementAmount); + return writer; + }; + + /** + * Encodes the specified ReadModifyWriteRule message, length delimited. Does not implicitly {@link google.bigtable.v2.ReadModifyWriteRule.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.ReadModifyWriteRule + * @static + * @param {google.bigtable.v2.IReadModifyWriteRule} message ReadModifyWriteRule message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ReadModifyWriteRule.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ReadModifyWriteRule message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.ReadModifyWriteRule + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.ReadModifyWriteRule} ReadModifyWriteRule + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ReadModifyWriteRule.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.ReadModifyWriteRule(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.familyName = reader.string(); + break; } - object.timeRange = null; + case 2: { + message.columnQualifier = reader.bytes(); + break; + } + case 3: { + message.appendValue = reader.bytes(); + break; + } + case 4: { + message.incrementAmount = reader.int64(); + break; + } + default: + reader.skipType(tag & 7); + break; } - if (message.familyName != null && message.hasOwnProperty("familyName")) - object.familyName = message.familyName; - if (message.columnQualifier != null && message.hasOwnProperty("columnQualifier")) - object.columnQualifier = options.bytes === String ? $util.base64.encode(message.columnQualifier, 0, message.columnQualifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.columnQualifier) : message.columnQualifier; - if (message.timeRange != null && message.hasOwnProperty("timeRange")) - object.timeRange = $root.google.bigtable.v2.TimestampRange.toObject(message.timeRange, options); - return object; - }; + } + return message; + }; - /** - * Converts this DeleteFromColumn to JSON. - * @function toJSON - * @memberof google.bigtable.v2.Mutation.DeleteFromColumn - * @instance - * @returns {Object.} JSON object - */ - DeleteFromColumn.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Decodes a ReadModifyWriteRule message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.ReadModifyWriteRule + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.ReadModifyWriteRule} ReadModifyWriteRule + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ReadModifyWriteRule.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Gets the default type url for DeleteFromColumn - * @function getTypeUrl - * @memberof google.bigtable.v2.Mutation.DeleteFromColumn - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - DeleteFromColumn.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; + /** + * Verifies a ReadModifyWriteRule message. + * @function verify + * @memberof google.bigtable.v2.ReadModifyWriteRule + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ReadModifyWriteRule.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.familyName != null && message.hasOwnProperty("familyName")) + if (!$util.isString(message.familyName)) + return "familyName: string expected"; + if (message.columnQualifier != null && message.hasOwnProperty("columnQualifier")) + if (!(message.columnQualifier && typeof message.columnQualifier.length === "number" || $util.isString(message.columnQualifier))) + return "columnQualifier: buffer expected"; + if (message.appendValue != null && message.hasOwnProperty("appendValue")) { + properties.rule = 1; + if (!(message.appendValue && typeof message.appendValue.length === "number" || $util.isString(message.appendValue))) + return "appendValue: buffer expected"; + } + if (message.incrementAmount != null && message.hasOwnProperty("incrementAmount")) { + if (properties.rule === 1) + return "rule: multiple values"; + properties.rule = 1; + if (!$util.isInteger(message.incrementAmount) && !(message.incrementAmount && $util.isInteger(message.incrementAmount.low) && $util.isInteger(message.incrementAmount.high))) + return "incrementAmount: integer|Long expected"; + } + return null; + }; + + /** + * Creates a ReadModifyWriteRule message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.ReadModifyWriteRule + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.ReadModifyWriteRule} ReadModifyWriteRule + */ + ReadModifyWriteRule.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.ReadModifyWriteRule) + return object; + var message = new $root.google.bigtable.v2.ReadModifyWriteRule(); + if (object.familyName != null) + message.familyName = String(object.familyName); + if (object.columnQualifier != null) + if (typeof object.columnQualifier === "string") + $util.base64.decode(object.columnQualifier, message.columnQualifier = $util.newBuffer($util.base64.length(object.columnQualifier)), 0); + else if (object.columnQualifier.length >= 0) + message.columnQualifier = object.columnQualifier; + if (object.appendValue != null) + if (typeof object.appendValue === "string") + $util.base64.decode(object.appendValue, message.appendValue = $util.newBuffer($util.base64.length(object.appendValue)), 0); + else if (object.appendValue.length >= 0) + message.appendValue = object.appendValue; + if (object.incrementAmount != null) + if ($util.Long) + (message.incrementAmount = $util.Long.fromValue(object.incrementAmount)).unsigned = false; + else if (typeof object.incrementAmount === "string") + message.incrementAmount = parseInt(object.incrementAmount, 10); + else if (typeof object.incrementAmount === "number") + message.incrementAmount = object.incrementAmount; + else if (typeof object.incrementAmount === "object") + message.incrementAmount = new $util.LongBits(object.incrementAmount.low >>> 0, object.incrementAmount.high >>> 0).toNumber(); + return message; + }; + + /** + * Creates a plain object from a ReadModifyWriteRule message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.ReadModifyWriteRule + * @static + * @param {google.bigtable.v2.ReadModifyWriteRule} message ReadModifyWriteRule + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ReadModifyWriteRule.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.familyName = ""; + if (options.bytes === String) + object.columnQualifier = ""; + else { + object.columnQualifier = []; + if (options.bytes !== Array) + object.columnQualifier = $util.newBuffer(object.columnQualifier); } - return typeUrlPrefix + "/google.bigtable.v2.Mutation.DeleteFromColumn"; - }; + } + if (message.familyName != null && message.hasOwnProperty("familyName")) + object.familyName = message.familyName; + if (message.columnQualifier != null && message.hasOwnProperty("columnQualifier")) + object.columnQualifier = options.bytes === String ? $util.base64.encode(message.columnQualifier, 0, message.columnQualifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.columnQualifier) : message.columnQualifier; + if (message.appendValue != null && message.hasOwnProperty("appendValue")) { + object.appendValue = options.bytes === String ? $util.base64.encode(message.appendValue, 0, message.appendValue.length) : options.bytes === Array ? Array.prototype.slice.call(message.appendValue) : message.appendValue; + if (options.oneofs) + object.rule = "appendValue"; + } + if (message.incrementAmount != null && message.hasOwnProperty("incrementAmount")) { + if (typeof message.incrementAmount === "number") + object.incrementAmount = options.longs === String ? String(message.incrementAmount) : message.incrementAmount; + else + object.incrementAmount = options.longs === String ? $util.Long.prototype.toString.call(message.incrementAmount) : options.longs === Number ? new $util.LongBits(message.incrementAmount.low >>> 0, message.incrementAmount.high >>> 0).toNumber() : message.incrementAmount; + if (options.oneofs) + object.rule = "incrementAmount"; + } + return object; + }; - return DeleteFromColumn; - })(); + /** + * Converts this ReadModifyWriteRule to JSON. + * @function toJSON + * @memberof google.bigtable.v2.ReadModifyWriteRule + * @instance + * @returns {Object.} JSON object + */ + ReadModifyWriteRule.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ReadModifyWriteRule + * @function getTypeUrl + * @memberof google.bigtable.v2.ReadModifyWriteRule + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ReadModifyWriteRule.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.ReadModifyWriteRule"; + }; - Mutation.DeleteFromFamily = (function() { + return ReadModifyWriteRule; + })(); - /** - * Properties of a DeleteFromFamily. - * @memberof google.bigtable.v2.Mutation - * @interface IDeleteFromFamily - * @property {string|null} [familyName] DeleteFromFamily familyName - */ + v2.StreamPartition = (function() { - /** - * Constructs a new DeleteFromFamily. - * @memberof google.bigtable.v2.Mutation - * @classdesc Represents a DeleteFromFamily. - * @implements IDeleteFromFamily - * @constructor - * @param {google.bigtable.v2.Mutation.IDeleteFromFamily=} [properties] Properties to set - */ - function DeleteFromFamily(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Properties of a StreamPartition. + * @memberof google.bigtable.v2 + * @interface IStreamPartition + * @property {google.bigtable.v2.IRowRange|null} [rowRange] StreamPartition rowRange + */ - /** - * DeleteFromFamily familyName. - * @member {string} familyName - * @memberof google.bigtable.v2.Mutation.DeleteFromFamily - * @instance - */ - DeleteFromFamily.prototype.familyName = ""; + /** + * Constructs a new StreamPartition. + * @memberof google.bigtable.v2 + * @classdesc Represents a StreamPartition. + * @implements IStreamPartition + * @constructor + * @param {google.bigtable.v2.IStreamPartition=} [properties] Properties to set + */ + function StreamPartition(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a new DeleteFromFamily instance using the specified properties. - * @function create - * @memberof google.bigtable.v2.Mutation.DeleteFromFamily - * @static - * @param {google.bigtable.v2.Mutation.IDeleteFromFamily=} [properties] Properties to set - * @returns {google.bigtable.v2.Mutation.DeleteFromFamily} DeleteFromFamily instance - */ - DeleteFromFamily.create = function create(properties) { - return new DeleteFromFamily(properties); - }; + /** + * StreamPartition rowRange. + * @member {google.bigtable.v2.IRowRange|null|undefined} rowRange + * @memberof google.bigtable.v2.StreamPartition + * @instance + */ + StreamPartition.prototype.rowRange = null; - /** - * Encodes the specified DeleteFromFamily message. Does not implicitly {@link google.bigtable.v2.Mutation.DeleteFromFamily.verify|verify} messages. - * @function encode - * @memberof google.bigtable.v2.Mutation.DeleteFromFamily - * @static - * @param {google.bigtable.v2.Mutation.IDeleteFromFamily} message DeleteFromFamily message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DeleteFromFamily.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.familyName != null && Object.hasOwnProperty.call(message, "familyName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.familyName); - return writer; - }; + /** + * Creates a new StreamPartition instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.StreamPartition + * @static + * @param {google.bigtable.v2.IStreamPartition=} [properties] Properties to set + * @returns {google.bigtable.v2.StreamPartition} StreamPartition instance + */ + StreamPartition.create = function create(properties) { + return new StreamPartition(properties); + }; - /** - * Encodes the specified DeleteFromFamily message, length delimited. Does not implicitly {@link google.bigtable.v2.Mutation.DeleteFromFamily.verify|verify} messages. - * @function encodeDelimited - * @memberof google.bigtable.v2.Mutation.DeleteFromFamily - * @static - * @param {google.bigtable.v2.Mutation.IDeleteFromFamily} message DeleteFromFamily message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DeleteFromFamily.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified StreamPartition message. Does not implicitly {@link google.bigtable.v2.StreamPartition.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.StreamPartition + * @static + * @param {google.bigtable.v2.IStreamPartition} message StreamPartition message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StreamPartition.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.rowRange != null && Object.hasOwnProperty.call(message, "rowRange")) + $root.google.bigtable.v2.RowRange.encode(message.rowRange, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; - /** - * Decodes a DeleteFromFamily message from the specified reader or buffer. - * @function decode - * @memberof google.bigtable.v2.Mutation.DeleteFromFamily - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.Mutation.DeleteFromFamily} DeleteFromFamily - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DeleteFromFamily.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Mutation.DeleteFromFamily(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - message.familyName = reader.string(); - break; - } - default: - reader.skipType(tag & 7); + /** + * Encodes the specified StreamPartition message, length delimited. Does not implicitly {@link google.bigtable.v2.StreamPartition.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.StreamPartition + * @static + * @param {google.bigtable.v2.IStreamPartition} message StreamPartition message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StreamPartition.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a StreamPartition message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.StreamPartition + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.StreamPartition} StreamPartition + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StreamPartition.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.StreamPartition(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.rowRange = $root.google.bigtable.v2.RowRange.decode(reader, reader.uint32()); break; } + default: + reader.skipType(tag & 7); + break; } - return message; - }; - - /** - * Decodes a DeleteFromFamily message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.bigtable.v2.Mutation.DeleteFromFamily - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.Mutation.DeleteFromFamily} DeleteFromFamily - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DeleteFromFamily.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + } + return message; + }; - /** - * Verifies a DeleteFromFamily message. - * @function verify - * @memberof google.bigtable.v2.Mutation.DeleteFromFamily - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - DeleteFromFamily.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.familyName != null && message.hasOwnProperty("familyName")) - if (!$util.isString(message.familyName)) - return "familyName: string expected"; - return null; - }; + /** + * Decodes a StreamPartition message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.StreamPartition + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.StreamPartition} StreamPartition + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StreamPartition.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Creates a DeleteFromFamily message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.bigtable.v2.Mutation.DeleteFromFamily - * @static - * @param {Object.} object Plain object - * @returns {google.bigtable.v2.Mutation.DeleteFromFamily} DeleteFromFamily - */ - DeleteFromFamily.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.Mutation.DeleteFromFamily) - return object; - var message = new $root.google.bigtable.v2.Mutation.DeleteFromFamily(); - if (object.familyName != null) - message.familyName = String(object.familyName); - return message; - }; + /** + * Verifies a StreamPartition message. + * @function verify + * @memberof google.bigtable.v2.StreamPartition + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StreamPartition.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.rowRange != null && message.hasOwnProperty("rowRange")) { + var error = $root.google.bigtable.v2.RowRange.verify(message.rowRange); + if (error) + return "rowRange." + error; + } + return null; + }; - /** - * Creates a plain object from a DeleteFromFamily message. Also converts values to other types if specified. - * @function toObject - * @memberof google.bigtable.v2.Mutation.DeleteFromFamily - * @static - * @param {google.bigtable.v2.Mutation.DeleteFromFamily} message DeleteFromFamily - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - DeleteFromFamily.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.defaults) - object.familyName = ""; - if (message.familyName != null && message.hasOwnProperty("familyName")) - object.familyName = message.familyName; + /** + * Creates a StreamPartition message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.StreamPartition + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.StreamPartition} StreamPartition + */ + StreamPartition.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.StreamPartition) return object; - }; + var message = new $root.google.bigtable.v2.StreamPartition(); + if (object.rowRange != null) { + if (typeof object.rowRange !== "object") + throw TypeError(".google.bigtable.v2.StreamPartition.rowRange: object expected"); + message.rowRange = $root.google.bigtable.v2.RowRange.fromObject(object.rowRange); + } + return message; + }; + + /** + * Creates a plain object from a StreamPartition message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.StreamPartition + * @static + * @param {google.bigtable.v2.StreamPartition} message StreamPartition + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StreamPartition.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.rowRange = null; + if (message.rowRange != null && message.hasOwnProperty("rowRange")) + object.rowRange = $root.google.bigtable.v2.RowRange.toObject(message.rowRange, options); + return object; + }; - /** - * Converts this DeleteFromFamily to JSON. - * @function toJSON - * @memberof google.bigtable.v2.Mutation.DeleteFromFamily - * @instance - * @returns {Object.} JSON object - */ - DeleteFromFamily.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Converts this StreamPartition to JSON. + * @function toJSON + * @memberof google.bigtable.v2.StreamPartition + * @instance + * @returns {Object.} JSON object + */ + StreamPartition.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - /** - * Gets the default type url for DeleteFromFamily - * @function getTypeUrl - * @memberof google.bigtable.v2.Mutation.DeleteFromFamily - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - DeleteFromFamily.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.bigtable.v2.Mutation.DeleteFromFamily"; - }; + /** + * Gets the default type url for StreamPartition + * @function getTypeUrl + * @memberof google.bigtable.v2.StreamPartition + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + StreamPartition.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.StreamPartition"; + }; - return DeleteFromFamily; - })(); + return StreamPartition; + })(); - Mutation.DeleteFromRow = (function() { + v2.StreamContinuationTokens = (function() { - /** - * Properties of a DeleteFromRow. - * @memberof google.bigtable.v2.Mutation - * @interface IDeleteFromRow - */ + /** + * Properties of a StreamContinuationTokens. + * @memberof google.bigtable.v2 + * @interface IStreamContinuationTokens + * @property {Array.|null} [tokens] StreamContinuationTokens tokens + */ - /** - * Constructs a new DeleteFromRow. - * @memberof google.bigtable.v2.Mutation - * @classdesc Represents a DeleteFromRow. - * @implements IDeleteFromRow - * @constructor - * @param {google.bigtable.v2.Mutation.IDeleteFromRow=} [properties] Properties to set - */ - function DeleteFromRow(properties) { - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } + /** + * Constructs a new StreamContinuationTokens. + * @memberof google.bigtable.v2 + * @classdesc Represents a StreamContinuationTokens. + * @implements IStreamContinuationTokens + * @constructor + * @param {google.bigtable.v2.IStreamContinuationTokens=} [properties] Properties to set + */ + function StreamContinuationTokens(properties) { + this.tokens = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } - /** - * Creates a new DeleteFromRow instance using the specified properties. - * @function create - * @memberof google.bigtable.v2.Mutation.DeleteFromRow - * @static - * @param {google.bigtable.v2.Mutation.IDeleteFromRow=} [properties] Properties to set - * @returns {google.bigtable.v2.Mutation.DeleteFromRow} DeleteFromRow instance - */ - DeleteFromRow.create = function create(properties) { - return new DeleteFromRow(properties); - }; + /** + * StreamContinuationTokens tokens. + * @member {Array.} tokens + * @memberof google.bigtable.v2.StreamContinuationTokens + * @instance + */ + StreamContinuationTokens.prototype.tokens = $util.emptyArray; - /** - * Encodes the specified DeleteFromRow message. Does not implicitly {@link google.bigtable.v2.Mutation.DeleteFromRow.verify|verify} messages. - * @function encode - * @memberof google.bigtable.v2.Mutation.DeleteFromRow - * @static - * @param {google.bigtable.v2.Mutation.IDeleteFromRow} message DeleteFromRow message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DeleteFromRow.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - return writer; - }; + /** + * Creates a new StreamContinuationTokens instance using the specified properties. + * @function create + * @memberof google.bigtable.v2.StreamContinuationTokens + * @static + * @param {google.bigtable.v2.IStreamContinuationTokens=} [properties] Properties to set + * @returns {google.bigtable.v2.StreamContinuationTokens} StreamContinuationTokens instance + */ + StreamContinuationTokens.create = function create(properties) { + return new StreamContinuationTokens(properties); + }; - /** - * Encodes the specified DeleteFromRow message, length delimited. Does not implicitly {@link google.bigtable.v2.Mutation.DeleteFromRow.verify|verify} messages. - * @function encodeDelimited - * @memberof google.bigtable.v2.Mutation.DeleteFromRow - * @static - * @param {google.bigtable.v2.Mutation.IDeleteFromRow} message DeleteFromRow message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - DeleteFromRow.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; + /** + * Encodes the specified StreamContinuationTokens message. Does not implicitly {@link google.bigtable.v2.StreamContinuationTokens.verify|verify} messages. + * @function encode + * @memberof google.bigtable.v2.StreamContinuationTokens + * @static + * @param {google.bigtable.v2.IStreamContinuationTokens} message StreamContinuationTokens message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StreamContinuationTokens.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.tokens != null && message.tokens.length) + for (var i = 0; i < message.tokens.length; ++i) + $root.google.bigtable.v2.StreamContinuationToken.encode(message.tokens[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; - /** - * Decodes a DeleteFromRow message from the specified reader or buffer. - * @function decode - * @memberof google.bigtable.v2.Mutation.DeleteFromRow - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.Mutation.DeleteFromRow} DeleteFromRow - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DeleteFromRow.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.Mutation.DeleteFromRow(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - default: - reader.skipType(tag & 7); + /** + * Encodes the specified StreamContinuationTokens message, length delimited. Does not implicitly {@link google.bigtable.v2.StreamContinuationTokens.verify|verify} messages. + * @function encodeDelimited + * @memberof google.bigtable.v2.StreamContinuationTokens + * @static + * @param {google.bigtable.v2.IStreamContinuationTokens} message StreamContinuationTokens message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + StreamContinuationTokens.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a StreamContinuationTokens message from the specified reader or buffer. + * @function decode + * @memberof google.bigtable.v2.StreamContinuationTokens + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.bigtable.v2.StreamContinuationTokens} StreamContinuationTokens + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StreamContinuationTokens.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.StreamContinuationTokens(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (!(message.tokens && message.tokens.length)) + message.tokens = []; + message.tokens.push($root.google.bigtable.v2.StreamContinuationToken.decode(reader, reader.uint32())); break; } + default: + reader.skipType(tag & 7); + break; } - return message; - }; - - /** - * Decodes a DeleteFromRow message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof google.bigtable.v2.Mutation.DeleteFromRow - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.Mutation.DeleteFromRow} DeleteFromRow - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - DeleteFromRow.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; + } + return message; + }; - /** - * Verifies a DeleteFromRow message. - * @function verify - * @memberof google.bigtable.v2.Mutation.DeleteFromRow - * @static - * @param {Object.} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - DeleteFromRow.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - return null; - }; + /** + * Decodes a StreamContinuationTokens message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.bigtable.v2.StreamContinuationTokens + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.bigtable.v2.StreamContinuationTokens} StreamContinuationTokens + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + StreamContinuationTokens.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; - /** - * Creates a DeleteFromRow message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof google.bigtable.v2.Mutation.DeleteFromRow - * @static - * @param {Object.} object Plain object - * @returns {google.bigtable.v2.Mutation.DeleteFromRow} DeleteFromRow - */ - DeleteFromRow.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.Mutation.DeleteFromRow) - return object; - return new $root.google.bigtable.v2.Mutation.DeleteFromRow(); - }; + /** + * Verifies a StreamContinuationTokens message. + * @function verify + * @memberof google.bigtable.v2.StreamContinuationTokens + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + StreamContinuationTokens.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.tokens != null && message.hasOwnProperty("tokens")) { + if (!Array.isArray(message.tokens)) + return "tokens: array expected"; + for (var i = 0; i < message.tokens.length; ++i) { + var error = $root.google.bigtable.v2.StreamContinuationToken.verify(message.tokens[i]); + if (error) + return "tokens." + error; + } + } + return null; + }; - /** - * Creates a plain object from a DeleteFromRow message. Also converts values to other types if specified. - * @function toObject - * @memberof google.bigtable.v2.Mutation.DeleteFromRow - * @static - * @param {google.bigtable.v2.Mutation.DeleteFromRow} message DeleteFromRow - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.} Plain object - */ - DeleteFromRow.toObject = function toObject() { - return {}; - }; + /** + * Creates a StreamContinuationTokens message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.bigtable.v2.StreamContinuationTokens + * @static + * @param {Object.} object Plain object + * @returns {google.bigtable.v2.StreamContinuationTokens} StreamContinuationTokens + */ + StreamContinuationTokens.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.StreamContinuationTokens) + return object; + var message = new $root.google.bigtable.v2.StreamContinuationTokens(); + if (object.tokens) { + if (!Array.isArray(object.tokens)) + throw TypeError(".google.bigtable.v2.StreamContinuationTokens.tokens: array expected"); + message.tokens = []; + for (var i = 0; i < object.tokens.length; ++i) { + if (typeof object.tokens[i] !== "object") + throw TypeError(".google.bigtable.v2.StreamContinuationTokens.tokens: object expected"); + message.tokens[i] = $root.google.bigtable.v2.StreamContinuationToken.fromObject(object.tokens[i]); + } + } + return message; + }; - /** - * Converts this DeleteFromRow to JSON. - * @function toJSON - * @memberof google.bigtable.v2.Mutation.DeleteFromRow - * @instance - * @returns {Object.} JSON object - */ - DeleteFromRow.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; + /** + * Creates a plain object from a StreamContinuationTokens message. Also converts values to other types if specified. + * @function toObject + * @memberof google.bigtable.v2.StreamContinuationTokens + * @static + * @param {google.bigtable.v2.StreamContinuationTokens} message StreamContinuationTokens + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + StreamContinuationTokens.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.tokens = []; + if (message.tokens && message.tokens.length) { + object.tokens = []; + for (var j = 0; j < message.tokens.length; ++j) + object.tokens[j] = $root.google.bigtable.v2.StreamContinuationToken.toObject(message.tokens[j], options); + } + return object; + }; - /** - * Gets the default type url for DeleteFromRow - * @function getTypeUrl - * @memberof google.bigtable.v2.Mutation.DeleteFromRow - * @static - * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") - * @returns {string} The default type url - */ - DeleteFromRow.getTypeUrl = function getTypeUrl(typeUrlPrefix) { - if (typeUrlPrefix === undefined) { - typeUrlPrefix = "type.googleapis.com"; - } - return typeUrlPrefix + "/google.bigtable.v2.Mutation.DeleteFromRow"; - }; + /** + * Converts this StreamContinuationTokens to JSON. + * @function toJSON + * @memberof google.bigtable.v2.StreamContinuationTokens + * @instance + * @returns {Object.} JSON object + */ + StreamContinuationTokens.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; - return DeleteFromRow; - })(); + /** + * Gets the default type url for StreamContinuationTokens + * @function getTypeUrl + * @memberof google.bigtable.v2.StreamContinuationTokens + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + StreamContinuationTokens.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.bigtable.v2.StreamContinuationTokens"; + }; - return Mutation; + return StreamContinuationTokens; })(); - v2.ReadModifyWriteRule = (function() { + v2.StreamContinuationToken = (function() { /** - * Properties of a ReadModifyWriteRule. + * Properties of a StreamContinuationToken. * @memberof google.bigtable.v2 - * @interface IReadModifyWriteRule - * @property {string|null} [familyName] ReadModifyWriteRule familyName - * @property {Uint8Array|null} [columnQualifier] ReadModifyWriteRule columnQualifier - * @property {Uint8Array|null} [appendValue] ReadModifyWriteRule appendValue - * @property {number|Long|null} [incrementAmount] ReadModifyWriteRule incrementAmount + * @interface IStreamContinuationToken + * @property {google.bigtable.v2.IStreamPartition|null} [partition] StreamContinuationToken partition + * @property {string|null} [token] StreamContinuationToken token */ /** - * Constructs a new ReadModifyWriteRule. + * Constructs a new StreamContinuationToken. * @memberof google.bigtable.v2 - * @classdesc Represents a ReadModifyWriteRule. - * @implements IReadModifyWriteRule + * @classdesc Represents a StreamContinuationToken. + * @implements IStreamContinuationToken * @constructor - * @param {google.bigtable.v2.IReadModifyWriteRule=} [properties] Properties to set + * @param {google.bigtable.v2.IStreamContinuationToken=} [properties] Properties to set */ - function ReadModifyWriteRule(properties) { + function StreamContinuationToken(properties) { if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -34376,131 +37771,89 @@ } /** - * ReadModifyWriteRule familyName. - * @member {string} familyName - * @memberof google.bigtable.v2.ReadModifyWriteRule - * @instance - */ - ReadModifyWriteRule.prototype.familyName = ""; - - /** - * ReadModifyWriteRule columnQualifier. - * @member {Uint8Array} columnQualifier - * @memberof google.bigtable.v2.ReadModifyWriteRule - * @instance - */ - ReadModifyWriteRule.prototype.columnQualifier = $util.newBuffer([]); - - /** - * ReadModifyWriteRule appendValue. - * @member {Uint8Array|null|undefined} appendValue - * @memberof google.bigtable.v2.ReadModifyWriteRule - * @instance - */ - ReadModifyWriteRule.prototype.appendValue = null; - - /** - * ReadModifyWriteRule incrementAmount. - * @member {number|Long|null|undefined} incrementAmount - * @memberof google.bigtable.v2.ReadModifyWriteRule + * StreamContinuationToken partition. + * @member {google.bigtable.v2.IStreamPartition|null|undefined} partition + * @memberof google.bigtable.v2.StreamContinuationToken * @instance */ - ReadModifyWriteRule.prototype.incrementAmount = null; - - // OneOf field names bound to virtual getters and setters - var $oneOfFields; + StreamContinuationToken.prototype.partition = null; /** - * ReadModifyWriteRule rule. - * @member {"appendValue"|"incrementAmount"|undefined} rule - * @memberof google.bigtable.v2.ReadModifyWriteRule + * StreamContinuationToken token. + * @member {string} token + * @memberof google.bigtable.v2.StreamContinuationToken * @instance */ - Object.defineProperty(ReadModifyWriteRule.prototype, "rule", { - get: $util.oneOfGetter($oneOfFields = ["appendValue", "incrementAmount"]), - set: $util.oneOfSetter($oneOfFields) - }); + StreamContinuationToken.prototype.token = ""; /** - * Creates a new ReadModifyWriteRule instance using the specified properties. + * Creates a new StreamContinuationToken instance using the specified properties. * @function create - * @memberof google.bigtable.v2.ReadModifyWriteRule + * @memberof google.bigtable.v2.StreamContinuationToken * @static - * @param {google.bigtable.v2.IReadModifyWriteRule=} [properties] Properties to set - * @returns {google.bigtable.v2.ReadModifyWriteRule} ReadModifyWriteRule instance + * @param {google.bigtable.v2.IStreamContinuationToken=} [properties] Properties to set + * @returns {google.bigtable.v2.StreamContinuationToken} StreamContinuationToken instance */ - ReadModifyWriteRule.create = function create(properties) { - return new ReadModifyWriteRule(properties); + StreamContinuationToken.create = function create(properties) { + return new StreamContinuationToken(properties); }; /** - * Encodes the specified ReadModifyWriteRule message. Does not implicitly {@link google.bigtable.v2.ReadModifyWriteRule.verify|verify} messages. + * Encodes the specified StreamContinuationToken message. Does not implicitly {@link google.bigtable.v2.StreamContinuationToken.verify|verify} messages. * @function encode - * @memberof google.bigtable.v2.ReadModifyWriteRule + * @memberof google.bigtable.v2.StreamContinuationToken * @static - * @param {google.bigtable.v2.IReadModifyWriteRule} message ReadModifyWriteRule message or plain object to encode + * @param {google.bigtable.v2.IStreamContinuationToken} message StreamContinuationToken message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ReadModifyWriteRule.encode = function encode(message, writer) { + StreamContinuationToken.encode = function encode(message, writer) { if (!writer) writer = $Writer.create(); - if (message.familyName != null && Object.hasOwnProperty.call(message, "familyName")) - writer.uint32(/* id 1, wireType 2 =*/10).string(message.familyName); - if (message.columnQualifier != null && Object.hasOwnProperty.call(message, "columnQualifier")) - writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.columnQualifier); - if (message.appendValue != null && Object.hasOwnProperty.call(message, "appendValue")) - writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.appendValue); - if (message.incrementAmount != null && Object.hasOwnProperty.call(message, "incrementAmount")) - writer.uint32(/* id 4, wireType 0 =*/32).int64(message.incrementAmount); + if (message.partition != null && Object.hasOwnProperty.call(message, "partition")) + $root.google.bigtable.v2.StreamPartition.encode(message.partition, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.token != null && Object.hasOwnProperty.call(message, "token")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.token); return writer; }; /** - * Encodes the specified ReadModifyWriteRule message, length delimited. Does not implicitly {@link google.bigtable.v2.ReadModifyWriteRule.verify|verify} messages. + * Encodes the specified StreamContinuationToken message, length delimited. Does not implicitly {@link google.bigtable.v2.StreamContinuationToken.verify|verify} messages. * @function encodeDelimited - * @memberof google.bigtable.v2.ReadModifyWriteRule + * @memberof google.bigtable.v2.StreamContinuationToken * @static - * @param {google.bigtable.v2.IReadModifyWriteRule} message ReadModifyWriteRule message or plain object to encode + * @param {google.bigtable.v2.IStreamContinuationToken} message StreamContinuationToken message or plain object to encode * @param {$protobuf.Writer} [writer] Writer to encode to * @returns {$protobuf.Writer} Writer */ - ReadModifyWriteRule.encodeDelimited = function encodeDelimited(message, writer) { + StreamContinuationToken.encodeDelimited = function encodeDelimited(message, writer) { return this.encode(message, writer).ldelim(); }; /** - * Decodes a ReadModifyWriteRule message from the specified reader or buffer. + * Decodes a StreamContinuationToken message from the specified reader or buffer. * @function decode - * @memberof google.bigtable.v2.ReadModifyWriteRule + * @memberof google.bigtable.v2.StreamContinuationToken * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {number} [length] Message length if known beforehand - * @returns {google.bigtable.v2.ReadModifyWriteRule} ReadModifyWriteRule + * @returns {google.bigtable.v2.StreamContinuationToken} StreamContinuationToken * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ReadModifyWriteRule.decode = function decode(reader, length) { + StreamContinuationToken.decode = function decode(reader, length) { if (!(reader instanceof $Reader)) reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.ReadModifyWriteRule(); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.bigtable.v2.StreamContinuationToken(); while (reader.pos < end) { var tag = reader.uint32(); switch (tag >>> 3) { case 1: { - message.familyName = reader.string(); + message.partition = $root.google.bigtable.v2.StreamPartition.decode(reader, reader.uint32()); break; } case 2: { - message.columnQualifier = reader.bytes(); - break; - } - case 3: { - message.appendValue = reader.bytes(); - break; - } - case 4: { - message.incrementAmount = reader.int64(); + message.token = reader.string(); break; } default: @@ -34512,160 +37865,116 @@ }; /** - * Decodes a ReadModifyWriteRule message from the specified reader or buffer, length delimited. + * Decodes a StreamContinuationToken message from the specified reader or buffer, length delimited. * @function decodeDelimited - * @memberof google.bigtable.v2.ReadModifyWriteRule + * @memberof google.bigtable.v2.StreamContinuationToken * @static * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {google.bigtable.v2.ReadModifyWriteRule} ReadModifyWriteRule + * @returns {google.bigtable.v2.StreamContinuationToken} StreamContinuationToken * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ - ReadModifyWriteRule.decodeDelimited = function decodeDelimited(reader) { + StreamContinuationToken.decodeDelimited = function decodeDelimited(reader) { if (!(reader instanceof $Reader)) reader = new $Reader(reader); return this.decode(reader, reader.uint32()); }; /** - * Verifies a ReadModifyWriteRule message. + * Verifies a StreamContinuationToken message. * @function verify - * @memberof google.bigtable.v2.ReadModifyWriteRule + * @memberof google.bigtable.v2.StreamContinuationToken * @static * @param {Object.} message Plain object to verify * @returns {string|null} `null` if valid, otherwise the reason why it is not */ - ReadModifyWriteRule.verify = function verify(message) { + StreamContinuationToken.verify = function verify(message) { if (typeof message !== "object" || message === null) return "object expected"; - var properties = {}; - if (message.familyName != null && message.hasOwnProperty("familyName")) - if (!$util.isString(message.familyName)) - return "familyName: string expected"; - if (message.columnQualifier != null && message.hasOwnProperty("columnQualifier")) - if (!(message.columnQualifier && typeof message.columnQualifier.length === "number" || $util.isString(message.columnQualifier))) - return "columnQualifier: buffer expected"; - if (message.appendValue != null && message.hasOwnProperty("appendValue")) { - properties.rule = 1; - if (!(message.appendValue && typeof message.appendValue.length === "number" || $util.isString(message.appendValue))) - return "appendValue: buffer expected"; - } - if (message.incrementAmount != null && message.hasOwnProperty("incrementAmount")) { - if (properties.rule === 1) - return "rule: multiple values"; - properties.rule = 1; - if (!$util.isInteger(message.incrementAmount) && !(message.incrementAmount && $util.isInteger(message.incrementAmount.low) && $util.isInteger(message.incrementAmount.high))) - return "incrementAmount: integer|Long expected"; + if (message.partition != null && message.hasOwnProperty("partition")) { + var error = $root.google.bigtable.v2.StreamPartition.verify(message.partition); + if (error) + return "partition." + error; } + if (message.token != null && message.hasOwnProperty("token")) + if (!$util.isString(message.token)) + return "token: string expected"; return null; }; /** - * Creates a ReadModifyWriteRule message from a plain object. Also converts values to their respective internal types. + * Creates a StreamContinuationToken message from a plain object. Also converts values to their respective internal types. * @function fromObject - * @memberof google.bigtable.v2.ReadModifyWriteRule + * @memberof google.bigtable.v2.StreamContinuationToken * @static * @param {Object.} object Plain object - * @returns {google.bigtable.v2.ReadModifyWriteRule} ReadModifyWriteRule + * @returns {google.bigtable.v2.StreamContinuationToken} StreamContinuationToken */ - ReadModifyWriteRule.fromObject = function fromObject(object) { - if (object instanceof $root.google.bigtable.v2.ReadModifyWriteRule) + StreamContinuationToken.fromObject = function fromObject(object) { + if (object instanceof $root.google.bigtable.v2.StreamContinuationToken) return object; - var message = new $root.google.bigtable.v2.ReadModifyWriteRule(); - if (object.familyName != null) - message.familyName = String(object.familyName); - if (object.columnQualifier != null) - if (typeof object.columnQualifier === "string") - $util.base64.decode(object.columnQualifier, message.columnQualifier = $util.newBuffer($util.base64.length(object.columnQualifier)), 0); - else if (object.columnQualifier.length >= 0) - message.columnQualifier = object.columnQualifier; - if (object.appendValue != null) - if (typeof object.appendValue === "string") - $util.base64.decode(object.appendValue, message.appendValue = $util.newBuffer($util.base64.length(object.appendValue)), 0); - else if (object.appendValue.length >= 0) - message.appendValue = object.appendValue; - if (object.incrementAmount != null) - if ($util.Long) - (message.incrementAmount = $util.Long.fromValue(object.incrementAmount)).unsigned = false; - else if (typeof object.incrementAmount === "string") - message.incrementAmount = parseInt(object.incrementAmount, 10); - else if (typeof object.incrementAmount === "number") - message.incrementAmount = object.incrementAmount; - else if (typeof object.incrementAmount === "object") - message.incrementAmount = new $util.LongBits(object.incrementAmount.low >>> 0, object.incrementAmount.high >>> 0).toNumber(); + var message = new $root.google.bigtable.v2.StreamContinuationToken(); + if (object.partition != null) { + if (typeof object.partition !== "object") + throw TypeError(".google.bigtable.v2.StreamContinuationToken.partition: object expected"); + message.partition = $root.google.bigtable.v2.StreamPartition.fromObject(object.partition); + } + if (object.token != null) + message.token = String(object.token); return message; }; /** - * Creates a plain object from a ReadModifyWriteRule message. Also converts values to other types if specified. + * Creates a plain object from a StreamContinuationToken message. Also converts values to other types if specified. * @function toObject - * @memberof google.bigtable.v2.ReadModifyWriteRule + * @memberof google.bigtable.v2.StreamContinuationToken * @static - * @param {google.bigtable.v2.ReadModifyWriteRule} message ReadModifyWriteRule + * @param {google.bigtable.v2.StreamContinuationToken} message StreamContinuationToken * @param {$protobuf.IConversionOptions} [options] Conversion options * @returns {Object.} Plain object */ - ReadModifyWriteRule.toObject = function toObject(message, options) { + StreamContinuationToken.toObject = function toObject(message, options) { if (!options) options = {}; var object = {}; if (options.defaults) { - object.familyName = ""; - if (options.bytes === String) - object.columnQualifier = ""; - else { - object.columnQualifier = []; - if (options.bytes !== Array) - object.columnQualifier = $util.newBuffer(object.columnQualifier); - } - } - if (message.familyName != null && message.hasOwnProperty("familyName")) - object.familyName = message.familyName; - if (message.columnQualifier != null && message.hasOwnProperty("columnQualifier")) - object.columnQualifier = options.bytes === String ? $util.base64.encode(message.columnQualifier, 0, message.columnQualifier.length) : options.bytes === Array ? Array.prototype.slice.call(message.columnQualifier) : message.columnQualifier; - if (message.appendValue != null && message.hasOwnProperty("appendValue")) { - object.appendValue = options.bytes === String ? $util.base64.encode(message.appendValue, 0, message.appendValue.length) : options.bytes === Array ? Array.prototype.slice.call(message.appendValue) : message.appendValue; - if (options.oneofs) - object.rule = "appendValue"; - } - if (message.incrementAmount != null && message.hasOwnProperty("incrementAmount")) { - if (typeof message.incrementAmount === "number") - object.incrementAmount = options.longs === String ? String(message.incrementAmount) : message.incrementAmount; - else - object.incrementAmount = options.longs === String ? $util.Long.prototype.toString.call(message.incrementAmount) : options.longs === Number ? new $util.LongBits(message.incrementAmount.low >>> 0, message.incrementAmount.high >>> 0).toNumber() : message.incrementAmount; - if (options.oneofs) - object.rule = "incrementAmount"; + object.partition = null; + object.token = ""; } + if (message.partition != null && message.hasOwnProperty("partition")) + object.partition = $root.google.bigtable.v2.StreamPartition.toObject(message.partition, options); + if (message.token != null && message.hasOwnProperty("token")) + object.token = message.token; return object; }; /** - * Converts this ReadModifyWriteRule to JSON. + * Converts this StreamContinuationToken to JSON. * @function toJSON - * @memberof google.bigtable.v2.ReadModifyWriteRule + * @memberof google.bigtable.v2.StreamContinuationToken * @instance * @returns {Object.} JSON object */ - ReadModifyWriteRule.prototype.toJSON = function toJSON() { + StreamContinuationToken.prototype.toJSON = function toJSON() { return this.constructor.toObject(this, $protobuf.util.toJSONOptions); }; /** - * Gets the default type url for ReadModifyWriteRule + * Gets the default type url for StreamContinuationToken * @function getTypeUrl - * @memberof google.bigtable.v2.ReadModifyWriteRule + * @memberof google.bigtable.v2.StreamContinuationToken * @static * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns {string} The default type url */ - ReadModifyWriteRule.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + StreamContinuationToken.getTypeUrl = function getTypeUrl(typeUrlPrefix) { if (typeUrlPrefix === undefined) { typeUrlPrefix = "type.googleapis.com"; } - return typeUrlPrefix + "/google.bigtable.v2.ReadModifyWriteRule"; + return typeUrlPrefix + "/google.bigtable.v2.StreamContinuationToken"; }; - return ReadModifyWriteRule; + return StreamContinuationToken; })(); v2.ReadIterationStats = (function() { diff --git a/protos/protos.json b/protos/protos.json index 19b3e2b67..40c274db0 100644 --- a/protos/protos.json +++ b/protos/protos.json @@ -3116,6 +3116,54 @@ "(google.api.method_signature)": "table_name,row_key,rules,app_profile_id" } ] + }, + "GenerateInitialChangeStreamPartitions": { + "requestType": "GenerateInitialChangeStreamPartitionsRequest", + "responseType": "GenerateInitialChangeStreamPartitionsResponse", + "responseStream": true, + "options": { + "(google.api.http).post": "/v2/{table_name=projects/*/instances/*/tables/*}:generateInitialChangeStreamPartitions", + "(google.api.http).body": "*", + "(google.api.method_signature)": "table_name,app_profile_id" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v2/{table_name=projects/*/instances/*/tables/*}:generateInitialChangeStreamPartitions", + "body": "*" + } + }, + { + "(google.api.method_signature)": "table_name" + }, + { + "(google.api.method_signature)": "table_name,app_profile_id" + } + ] + }, + "ReadChangeStream": { + "requestType": "ReadChangeStreamRequest", + "responseType": "ReadChangeStreamResponse", + "responseStream": true, + "options": { + "(google.api.http).post": "/v2/{table_name=projects/*/instances/*/tables/*}:readChangeStream", + "(google.api.http).body": "*", + "(google.api.method_signature)": "table_name,app_profile_id" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v2/{table_name=projects/*/instances/*/tables/*}:readChangeStream", + "body": "*" + } + }, + { + "(google.api.method_signature)": "table_name" + }, + { + "(google.api.method_signature)": "table_name,app_profile_id" + } + ] } } }, @@ -3458,6 +3506,207 @@ } } }, + "GenerateInitialChangeStreamPartitionsRequest": { + "fields": { + "tableName": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "bigtableadmin.googleapis.com/Table" + } + }, + "appProfileId": { + "type": "string", + "id": 2 + } + } + }, + "GenerateInitialChangeStreamPartitionsResponse": { + "fields": { + "partition": { + "type": "StreamPartition", + "id": 1 + } + } + }, + "ReadChangeStreamRequest": { + "oneofs": { + "startFrom": { + "oneof": [ + "startTime", + "continuationTokens" + ] + } + }, + "fields": { + "tableName": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "bigtableadmin.googleapis.com/Table" + } + }, + "appProfileId": { + "type": "string", + "id": 2 + }, + "partition": { + "type": "StreamPartition", + "id": 3 + }, + "startTime": { + "type": "google.protobuf.Timestamp", + "id": 4 + }, + "continuationTokens": { + "type": "StreamContinuationTokens", + "id": 6 + }, + "endTime": { + "type": "google.protobuf.Timestamp", + "id": 5 + }, + "heartbeatDuration": { + "type": "google.protobuf.Duration", + "id": 7 + } + } + }, + "ReadChangeStreamResponse": { + "oneofs": { + "streamRecord": { + "oneof": [ + "dataChange", + "heartbeat", + "closeStream" + ] + } + }, + "fields": { + "dataChange": { + "type": "DataChange", + "id": 1 + }, + "heartbeat": { + "type": "Heartbeat", + "id": 2 + }, + "closeStream": { + "type": "CloseStream", + "id": 3 + } + }, + "nested": { + "MutationChunk": { + "fields": { + "chunkInfo": { + "type": "ChunkInfo", + "id": 1 + }, + "mutation": { + "type": "Mutation", + "id": 2 + } + }, + "nested": { + "ChunkInfo": { + "fields": { + "chunkedValueSize": { + "type": "int32", + "id": 1 + }, + "chunkedValueOffset": { + "type": "int32", + "id": 2 + }, + "lastChunk": { + "type": "bool", + "id": 3 + } + } + } + } + }, + "DataChange": { + "fields": { + "type": { + "type": "Type", + "id": 1 + }, + "sourceClusterId": { + "type": "string", + "id": 2 + }, + "rowKey": { + "type": "bytes", + "id": 3 + }, + "commitTimestamp": { + "type": "google.protobuf.Timestamp", + "id": 4 + }, + "tiebreaker": { + "type": "int32", + "id": 5 + }, + "chunks": { + "rule": "repeated", + "type": "MutationChunk", + "id": 6 + }, + "done": { + "type": "bool", + "id": 8 + }, + "token": { + "type": "string", + "id": 9 + }, + "estimatedLowWatermark": { + "type": "google.protobuf.Timestamp", + "id": 10 + } + }, + "nested": { + "Type": { + "values": { + "TYPE_UNSPECIFIED": 0, + "USER": 1, + "GARBAGE_COLLECTION": 2, + "CONTINUATION": 3 + } + } + } + }, + "Heartbeat": { + "fields": { + "continuationToken": { + "type": "StreamContinuationToken", + "id": 1 + }, + "estimatedLowWatermark": { + "type": "google.protobuf.Timestamp", + "id": 2 + } + } + }, + "CloseStream": { + "fields": { + "status": { + "type": "google.rpc.Status", + "id": 1 + }, + "continuationTokens": { + "rule": "repeated", + "type": "StreamContinuationToken", + "id": 2 + } + } + } + } + }, "Row": { "fields": { "key": { @@ -3894,6 +4143,35 @@ } } }, + "StreamPartition": { + "fields": { + "rowRange": { + "type": "RowRange", + "id": 1 + } + } + }, + "StreamContinuationTokens": { + "fields": { + "tokens": { + "rule": "repeated", + "type": "StreamContinuationToken", + "id": 1 + } + } + }, + "StreamContinuationToken": { + "fields": { + "partition": { + "type": "StreamPartition", + "id": 1 + }, + "token": { + "type": "string", + "id": 2 + } + } + }, "ReadIterationStats": { "fields": { "rowsSeenCount": { diff --git a/samples/generated/v2/bigtable.check_and_mutate_row.js b/samples/generated/v2/bigtable.check_and_mutate_row.js index ea5e2cc6f..d99b0ab45 100644 --- a/samples/generated/v2/bigtable.check_and_mutate_row.js +++ b/samples/generated/v2/bigtable.check_and_mutate_row.js @@ -33,9 +33,8 @@ function main(tableName, rowKey) { * TODO(developer): Uncomment these variables before running the sample. */ /** - * Required. The unique name of the table to which the conditional mutation should be - * applied. - * Values are of the form + * Required. The unique name of the table to which the conditional mutation + * should be applied. Values are of the form * `projects//instances//tables/
`. */ // const tableName = 'abc123' @@ -45,7 +44,8 @@ function main(tableName, rowKey) { */ // const appProfileId = 'abc123' /** - * Required. The key of the row to which the conditional mutation should be applied. + * Required. The key of the row to which the conditional mutation should be + * applied. */ // const rowKey = 'Buffer.from('string')' /** diff --git a/samples/generated/v2/bigtable.generate_initial_change_stream_partitions.js b/samples/generated/v2/bigtable.generate_initial_change_stream_partitions.js new file mode 100644 index 000000000..28781ed85 --- /dev/null +++ b/samples/generated/v2/bigtable.generate_initial_change_stream_partitions.js @@ -0,0 +1,76 @@ +// Copyright 2023 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 +// +// https://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. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + /** + * NOTE: This sample is autogenerated, but this library contains handwritten + * samples that are the recommended way to use this library. Please refer to + * samples outside of the generated/ folder for these recommendations. + */ +'use strict'; + +function main(tableName) { + // [START bigtable_v2_generated_Bigtable_GenerateInitialChangeStreamPartitions_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The unique name of the table from which to get change stream + * partitions. Values are of the form + * `projects//instances//tables/
`. + * Change streaming must be enabled on the table. + */ + // const tableName = 'abc123' + /** + * This value specifies routing for replication. If not specified, the + * "default" application profile will be used. + * Single cluster routing must be configured on the profile. + */ + // const appProfileId = 'abc123' + + // Imports the Bigtable library + const {BigtableClient} = require('@google-cloud/bigtable').v2; + + // Instantiates a client + const bigtableClient = new BigtableClient(); + + async function callGenerateInitialChangeStreamPartitions() { + // Construct request + const request = { + tableName, + }; + + // Run request + const stream = await bigtableClient.generateInitialChangeStreamPartitions(request); + stream.on('data', (response) => { console.log(response) }); + stream.on('error', (err) => { throw(err) }); + stream.on('end', () => { /* API call completed */ }); + } + + callGenerateInitialChangeStreamPartitions(); + // [END bigtable_v2_generated_Bigtable_GenerateInitialChangeStreamPartitions_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/samples/generated/v2/bigtable.mutate_row.js b/samples/generated/v2/bigtable.mutate_row.js index b0e92a924..dc422f850 100644 --- a/samples/generated/v2/bigtable.mutate_row.js +++ b/samples/generated/v2/bigtable.mutate_row.js @@ -33,8 +33,8 @@ function main(tableName, rowKey, mutations) { * TODO(developer): Uncomment these variables before running the sample. */ /** - * Required. The unique name of the table to which the mutation should be applied. - * Values are of the form + * Required. The unique name of the table to which the mutation should be + * applied. Values are of the form * `projects//instances//tables/
`. */ // const tableName = 'abc123' @@ -48,9 +48,9 @@ function main(tableName, rowKey, mutations) { */ // const rowKey = 'Buffer.from('string')' /** - * Required. Changes to be atomically applied to the specified row. Entries are applied - * in order, meaning that earlier mutations can be masked by later ones. - * Must contain at least one entry and at most 100000. + * Required. Changes to be atomically applied to the specified row. Entries + * are applied in order, meaning that earlier mutations can be masked by later + * ones. Must contain at least one entry and at most 100000. */ // const mutations = 1234 diff --git a/samples/generated/v2/bigtable.mutate_rows.js b/samples/generated/v2/bigtable.mutate_rows.js index b403f7219..7840d7476 100644 --- a/samples/generated/v2/bigtable.mutate_rows.js +++ b/samples/generated/v2/bigtable.mutate_rows.js @@ -33,7 +33,8 @@ function main(tableName, entries) { * TODO(developer): Uncomment these variables before running the sample. */ /** - * Required. The unique name of the table to which the mutations should be applied. + * Required. The unique name of the table to which the mutations should be + * applied. */ // const tableName = 'abc123' /** diff --git a/samples/generated/v2/bigtable.ping_and_warm.js b/samples/generated/v2/bigtable.ping_and_warm.js index 72edf2183..eca37dfab 100644 --- a/samples/generated/v2/bigtable.ping_and_warm.js +++ b/samples/generated/v2/bigtable.ping_and_warm.js @@ -33,8 +33,9 @@ function main(name) { * TODO(developer): Uncomment these variables before running the sample. */ /** - * Required. The unique name of the instance to check permissions for as well as - * respond. Values are of the form `projects//instances/`. + * Required. The unique name of the instance to check permissions for as well + * as respond. Values are of the form + * `projects//instances/`. */ // const name = 'abc123' /** diff --git a/samples/generated/v2/bigtable.read_change_stream.js b/samples/generated/v2/bigtable.read_change_stream.js new file mode 100644 index 000000000..183ccdad1 --- /dev/null +++ b/samples/generated/v2/bigtable.read_change_stream.js @@ -0,0 +1,110 @@ +// Copyright 2023 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 +// +// https://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. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + /** + * NOTE: This sample is autogenerated, but this library contains handwritten + * samples that are the recommended way to use this library. Please refer to + * samples outside of the generated/ folder for these recommendations. + */ +'use strict'; + +function main(tableName) { + // [START bigtable_v2_generated_Bigtable_ReadChangeStream_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The unique name of the table from which to read a change stream. + * Values are of the form + * `projects//instances//tables/
`. + * Change streaming must be enabled on the table. + */ + // const tableName = 'abc123' + /** + * This value specifies routing for replication. If not specified, the + * "default" application profile will be used. + * Single cluster routing must be configured on the profile. + */ + // const appProfileId = 'abc123' + /** + * The partition to read changes from. + */ + // const partition = {} + /** + * Start reading the stream at the specified timestamp. This timestamp must + * be within the change stream retention period, less than or equal to the + * current time, and after change stream creation, whichever is greater. + * This value is inclusive and will be truncated to microsecond granularity. + */ + // const startTime = {} + /** + * Tokens that describe how to resume reading a stream where reading + * previously left off. If specified, changes will be read starting at the + * the position. Tokens are delivered on the stream as part of `Heartbeat` + * and `CloseStream` messages. + * If a single token is provided, the token’s partition must exactly match + * the request’s partition. If multiple tokens are provided, as in the case + * of a partition merge, the union of the token partitions must exactly + * cover the request’s partition. Otherwise, INVALID_ARGUMENT will be + * returned. + */ + // const continuationTokens = {} + /** + * If specified, OK will be returned when the stream advances beyond + * this time. Otherwise, changes will be continuously delivered on the stream. + * This value is inclusive and will be truncated to microsecond granularity. + */ + // const endTime = {} + /** + * If specified, the duration between `Heartbeat` messages on the stream. + * Otherwise, defaults to 5 seconds. + */ + // const heartbeatDuration = {} + + // Imports the Bigtable library + const {BigtableClient} = require('@google-cloud/bigtable').v2; + + // Instantiates a client + const bigtableClient = new BigtableClient(); + + async function callReadChangeStream() { + // Construct request + const request = { + tableName, + }; + + // Run request + const stream = await bigtableClient.readChangeStream(request); + stream.on('data', (response) => { console.log(response) }); + stream.on('error', (err) => { throw(err) }); + stream.on('end', () => { /* API call completed */ }); + } + + callReadChangeStream(); + // [END bigtable_v2_generated_Bigtable_ReadChangeStream_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/samples/generated/v2/bigtable.read_modify_write_row.js b/samples/generated/v2/bigtable.read_modify_write_row.js index 2a95f4d11..86eadb989 100644 --- a/samples/generated/v2/bigtable.read_modify_write_row.js +++ b/samples/generated/v2/bigtable.read_modify_write_row.js @@ -33,9 +33,8 @@ function main(tableName, rowKey, rules) { * TODO(developer): Uncomment these variables before running the sample. */ /** - * Required. The unique name of the table to which the read/modify/write rules should be - * applied. - * Values are of the form + * Required. The unique name of the table to which the read/modify/write rules + * should be applied. Values are of the form * `projects//instances//tables/
`. */ // const tableName = 'abc123' @@ -45,13 +44,14 @@ function main(tableName, rowKey, rules) { */ // const appProfileId = 'abc123' /** - * Required. The key of the row to which the read/modify/write rules should be applied. + * Required. The key of the row to which the read/modify/write rules should be + * applied. */ // const rowKey = 'Buffer.from('string')' /** - * Required. Rules specifying how the specified row's contents are to be transformed - * into writes. Entries are applied in order, meaning that earlier rules will - * affect the results of later ones. + * Required. Rules specifying how the specified row's contents are to be + * transformed into writes. Entries are applied in order, meaning that earlier + * rules will affect the results of later ones. */ // const rules = 1234 diff --git a/samples/generated/v2/snippet_metadata.google.bigtable.v2.json b/samples/generated/v2/snippet_metadata.google.bigtable.v2.json index 927bd1762..efc359d9d 100644 --- a/samples/generated/v2/snippet_metadata.google.bigtable.v2.json +++ b/samples/generated/v2/snippet_metadata.google.bigtable.v2.json @@ -178,7 +178,7 @@ "segments": [ { "start": 29, - "end": 73, + "end": 74, "type": "FULL" } ], @@ -286,7 +286,7 @@ "segments": [ { "start": 29, - "end": 63, + "end": 64, "type": "FULL" } ], @@ -370,6 +370,114 @@ } } } + }, + { + "regionTag": "bigtable_v2_generated_Bigtable_GenerateInitialChangeStreamPartitions_async", + "title": "bigtable generateInitialChangeStreamPartitions Sample", + "origin": "API_DEFINITION", + "description": " NOTE: This API is intended to be used by Apache Beam BigtableIO. Returns the current list of partitions that make up the table's change stream. The union of partitions will cover the entire keyspace. Partitions can be read with `ReadChangeStream`.", + "canonical": false, + "file": "bigtable.generate_initial_change_stream_partitions.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 29, + "end": 68, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "GenerateInitialChangeStreamPartitions", + "fullName": "google.bigtable.v2.Bigtable.GenerateInitialChangeStreamPartitions", + "async": true, + "parameters": [ + { + "name": "table_name", + "type": "TYPE_STRING" + }, + { + "name": "app_profile_id", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse", + "client": { + "shortName": "BigtableClient", + "fullName": "google.bigtable.v2.BigtableClient" + }, + "method": { + "shortName": "GenerateInitialChangeStreamPartitions", + "fullName": "google.bigtable.v2.Bigtable.GenerateInitialChangeStreamPartitions", + "service": { + "shortName": "Bigtable", + "fullName": "google.bigtable.v2.Bigtable" + } + } + } + }, + { + "regionTag": "bigtable_v2_generated_Bigtable_ReadChangeStream_async", + "title": "bigtable readChangeStream Sample", + "origin": "API_DEFINITION", + "description": " NOTE: This API is intended to be used by Apache Beam BigtableIO. Reads changes from a table's change stream. Changes will reflect both user-initiated mutations and mutations that are caused by garbage collection.", + "canonical": false, + "file": "bigtable.read_change_stream.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 29, + "end": 102, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "ReadChangeStream", + "fullName": "google.bigtable.v2.Bigtable.ReadChangeStream", + "async": true, + "parameters": [ + { + "name": "table_name", + "type": "TYPE_STRING" + }, + { + "name": "app_profile_id", + "type": "TYPE_STRING" + }, + { + "name": "partition", + "type": ".google.bigtable.v2.StreamPartition" + }, + { + "name": "start_time", + "type": ".google.protobuf.Timestamp" + }, + { + "name": "continuation_tokens", + "type": ".google.bigtable.v2.StreamContinuationTokens" + }, + { + "name": "end_time", + "type": ".google.protobuf.Timestamp" + }, + { + "name": "heartbeat_duration", + "type": ".google.protobuf.Duration" + } + ], + "resultType": ".google.bigtable.v2.ReadChangeStreamResponse", + "client": { + "shortName": "BigtableClient", + "fullName": "google.bigtable.v2.BigtableClient" + }, + "method": { + "shortName": "ReadChangeStream", + "fullName": "google.bigtable.v2.Bigtable.ReadChangeStream", + "service": { + "shortName": "Bigtable", + "fullName": "google.bigtable.v2.Bigtable" + } + } + } } ] } diff --git a/src/v2/bigtable_client.ts b/src/v2/bigtable_client.ts index fe3587d9f..cfeac33ee 100644 --- a/src/v2/bigtable_client.ts +++ b/src/v2/bigtable_client.ts @@ -199,6 +199,15 @@ export class BigtableClient { this._gaxModule.StreamType.SERVER_STREAMING, opts.fallback === 'rest' ), + generateInitialChangeStreamPartitions: + new this._gaxModule.StreamDescriptor( + this._gaxModule.StreamType.SERVER_STREAMING, + opts.fallback === 'rest' + ), + readChangeStream: new this._gaxModule.StreamDescriptor( + this._gaxModule.StreamType.SERVER_STREAMING, + opts.fallback === 'rest' + ), }; // Put together the default options sent with requests. @@ -258,6 +267,8 @@ export class BigtableClient { 'checkAndMutateRow', 'pingAndWarm', 'readModifyWriteRow', + 'generateInitialChangeStreamPartitions', + 'readChangeStream', ]; for (const methodName of bigtableStubMethods) { const callPromise = this.bigtableStub.then( @@ -367,8 +378,8 @@ export class BigtableClient { * @param {Object} request * The request object that will be sent. * @param {string} request.tableName - * Required. The unique name of the table to which the mutation should be applied. - * Values are of the form + * Required. The unique name of the table to which the mutation should be + * applied. Values are of the form * `projects//instances//tables/
`. * @param {string} request.appProfileId * This value specifies routing for replication. If not specified, the @@ -376,9 +387,9 @@ export class BigtableClient { * @param {Buffer} request.rowKey * Required. The key of the row to which the mutation should be applied. * @param {number[]} request.mutations - * Required. Changes to be atomically applied to the specified row. Entries are applied - * in order, meaning that earlier mutations can be masked by later ones. - * Must contain at least one entry and at most 100000. + * Required. Changes to be atomically applied to the specified row. Entries + * are applied in order, meaning that earlier mutations can be masked by later + * ones. Must contain at least one entry and at most 100000. * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Promise} - The promise which resolves to an array. @@ -484,15 +495,15 @@ export class BigtableClient { * @param {Object} request * The request object that will be sent. * @param {string} request.tableName - * Required. The unique name of the table to which the conditional mutation should be - * applied. - * Values are of the form + * Required. The unique name of the table to which the conditional mutation + * should be applied. Values are of the form * `projects//instances//tables/
`. * @param {string} request.appProfileId * This value specifies routing for replication. If not specified, the * "default" application profile will be used. * @param {Buffer} request.rowKey - * Required. The key of the row to which the conditional mutation should be applied. + * Required. The key of the row to which the conditional mutation should be + * applied. * @param {google.bigtable.v2.RowFilter} request.predicateFilter * The filter to be applied to the contents of the specified row. Depending * on whether or not any results are yielded, either `true_mutations` or @@ -618,8 +629,9 @@ export class BigtableClient { * @param {Object} request * The request object that will be sent. * @param {string} request.name - * Required. The unique name of the instance to check permissions for as well as - * respond. Values are of the form `projects//instances/`. + * Required. The unique name of the instance to check permissions for as well + * as respond. Values are of the form + * `projects//instances/`. * @param {string} request.appProfileId * This value specifies routing for replication. If not specified, the * "default" application profile will be used. @@ -730,19 +742,19 @@ export class BigtableClient { * @param {Object} request * The request object that will be sent. * @param {string} request.tableName - * Required. The unique name of the table to which the read/modify/write rules should be - * applied. - * Values are of the form + * Required. The unique name of the table to which the read/modify/write rules + * should be applied. Values are of the form * `projects//instances//tables/
`. * @param {string} request.appProfileId * This value specifies routing for replication. If not specified, the * "default" application profile will be used. * @param {Buffer} request.rowKey - * Required. The key of the row to which the read/modify/write rules should be applied. + * Required. The key of the row to which the read/modify/write rules should be + * applied. * @param {number[]} request.rules - * Required. Rules specifying how the specified row's contents are to be transformed - * into writes. Entries are applied in order, meaning that earlier rules will - * affect the results of later ones. + * Required. Rules specifying how the specified row's contents are to be + * transformed into writes. Entries are applied in order, meaning that earlier + * rules will affect the results of later ones. * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Promise} - The promise which resolves to an array. @@ -993,7 +1005,8 @@ export class BigtableClient { * @param {Object} request * The request object that will be sent. * @param {string} request.tableName - * Required. The unique name of the table to which the mutations should be applied. + * Required. The unique name of the table to which the mutations should be + * applied. * @param {string} request.appProfileId * This value specifies routing for replication. If not specified, the * "default" application profile will be used. @@ -1052,6 +1065,116 @@ export class BigtableClient { return this.innerApiCalls.mutateRows(request, options); } + /** + * NOTE: This API is intended to be used by Apache Beam BigtableIO. + * Returns the current list of partitions that make up the table's + * change stream. The union of partitions will cover the entire keyspace. + * Partitions can be read with `ReadChangeStream`. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.tableName + * Required. The unique name of the table from which to get change stream + * partitions. Values are of the form + * `projects//instances//tables/
`. + * Change streaming must be enabled on the table. + * @param {string} request.appProfileId + * This value specifies routing for replication. If not specified, the + * "default" application profile will be used. + * Single cluster routing must be configured on the profile. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Stream} + * An object stream which emits [GenerateInitialChangeStreamPartitionsResponse]{@link google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse} on 'data' event. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#server-streaming) + * for more details and examples. + */ + generateInitialChangeStreamPartitions( + request?: protos.google.bigtable.v2.IGenerateInitialChangeStreamPartitionsRequest, + options?: CallOptions + ): gax.CancellableStream { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + table_name: request.tableName ?? '', + }); + this.initialize(); + return this.innerApiCalls.generateInitialChangeStreamPartitions( + request, + options + ); + } + + /** + * NOTE: This API is intended to be used by Apache Beam BigtableIO. + * Reads changes from a table's change stream. Changes will + * reflect both user-initiated mutations and mutations that are caused by + * garbage collection. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.tableName + * Required. The unique name of the table from which to read a change stream. + * Values are of the form + * `projects//instances//tables/
`. + * Change streaming must be enabled on the table. + * @param {string} request.appProfileId + * This value specifies routing for replication. If not specified, the + * "default" application profile will be used. + * Single cluster routing must be configured on the profile. + * @param {google.bigtable.v2.StreamPartition} request.partition + * The partition to read changes from. + * @param {google.protobuf.Timestamp} request.startTime + * Start reading the stream at the specified timestamp. This timestamp must + * be within the change stream retention period, less than or equal to the + * current time, and after change stream creation, whichever is greater. + * This value is inclusive and will be truncated to microsecond granularity. + * @param {google.bigtable.v2.StreamContinuationTokens} request.continuationTokens + * Tokens that describe how to resume reading a stream where reading + * previously left off. If specified, changes will be read starting at the + * the position. Tokens are delivered on the stream as part of `Heartbeat` + * and `CloseStream` messages. + * + * If a single token is provided, the token’s partition must exactly match + * the request’s partition. If multiple tokens are provided, as in the case + * of a partition merge, the union of the token partitions must exactly + * cover the request’s partition. Otherwise, INVALID_ARGUMENT will be + * returned. + * @param {google.protobuf.Timestamp} request.endTime + * If specified, OK will be returned when the stream advances beyond + * this time. Otherwise, changes will be continuously delivered on the stream. + * This value is inclusive and will be truncated to microsecond granularity. + * @param {google.protobuf.Duration} request.heartbeatDuration + * If specified, the duration between `Heartbeat` messages on the stream. + * Otherwise, defaults to 5 seconds. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Stream} + * An object stream which emits [ReadChangeStreamResponse]{@link google.bigtable.v2.ReadChangeStreamResponse} on 'data' event. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#server-streaming) + * for more details and examples. + */ + readChangeStream( + request?: protos.google.bigtable.v2.IReadChangeStreamRequest, + options?: CallOptions + ): gax.CancellableStream { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + this._gaxModule.routingHeader.fromParams({ + table_name: request.tableName ?? '', + }); + this.initialize(); + return this.innerApiCalls.readChangeStream(request, options); + } + // -------------------- // -- Path templates -- // -------------------- diff --git a/src/v2/bigtable_client_config.json b/src/v2/bigtable_client_config.json index 9a86aabbc..2f8a128c4 100644 --- a/src/v2/bigtable_client_config.json +++ b/src/v2/bigtable_client_config.json @@ -62,6 +62,16 @@ "timeout_millis": 20000, "retry_codes_name": "non_idempotent", "retry_params_name": "default" + }, + "GenerateInitialChangeStreamPartitions": { + "timeout_millis": 60000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "ReadChangeStream": { + "timeout_millis": 43200000, + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" } } } diff --git a/test/gapic_bigtable_v2.ts b/test/gapic_bigtable_v2.ts index c422674b6..b65d4fc44 100644 --- a/test/gapic_bigtable_v2.ts +++ b/test/gapic_bigtable_v2.ts @@ -987,6 +987,250 @@ describe('v2.BigtableClient', () => { }); }); + describe('generateInitialChangeStreamPartitions', () => { + it('invokes generateInitialChangeStreamPartitions without error', async () => { + const client = new bigtableModule.v2.BigtableClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest', + ['tableName'] + ); + request.tableName = defaultValue1; + const expectedHeaderRequestParams = `table_name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse() + ); + client.innerApiCalls.generateInitialChangeStreamPartitions = + stubServerStreamingCall(expectedResponse); + const stream = client.generateInitialChangeStreamPartitions(request); + const promise = new Promise((resolve, reject) => { + stream.on( + 'data', + ( + response: protos.google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse + ) => { + resolve(response); + } + ); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.generateInitialChangeStreamPartitions as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.generateInitialChangeStreamPartitions as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes generateInitialChangeStreamPartitions with error', async () => { + const client = new bigtableModule.v2.BigtableClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest', + ['tableName'] + ); + request.tableName = defaultValue1; + const expectedHeaderRequestParams = `table_name=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.generateInitialChangeStreamPartitions = + stubServerStreamingCall(undefined, expectedError); + const stream = client.generateInitialChangeStreamPartitions(request); + const promise = new Promise((resolve, reject) => { + stream.on( + 'data', + ( + response: protos.google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse + ) => { + resolve(response); + } + ); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + const actualRequest = ( + client.innerApiCalls.generateInitialChangeStreamPartitions as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.generateInitialChangeStreamPartitions as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes generateInitialChangeStreamPartitions with closed client', async () => { + const client = new bigtableModule.v2.BigtableClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest', + ['tableName'] + ); + request.tableName = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close(); + const stream = client.generateInitialChangeStreamPartitions(request); + const promise = new Promise((resolve, reject) => { + stream.on( + 'data', + ( + response: protos.google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse + ) => { + resolve(response); + } + ); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + }); + }); + + describe('readChangeStream', () => { + it('invokes readChangeStream without error', async () => { + const client = new bigtableModule.v2.BigtableClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.bigtable.v2.ReadChangeStreamRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.bigtable.v2.ReadChangeStreamRequest', + ['tableName'] + ); + request.tableName = defaultValue1; + const expectedHeaderRequestParams = `table_name=${defaultValue1}`; + const expectedResponse = generateSampleMessage( + new protos.google.bigtable.v2.ReadChangeStreamResponse() + ); + client.innerApiCalls.readChangeStream = + stubServerStreamingCall(expectedResponse); + const stream = client.readChangeStream(request); + const promise = new Promise((resolve, reject) => { + stream.on( + 'data', + (response: protos.google.bigtable.v2.ReadChangeStreamResponse) => { + resolve(response); + } + ); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = ( + client.innerApiCalls.readChangeStream as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.readChangeStream as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes readChangeStream with error', async () => { + const client = new bigtableModule.v2.BigtableClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.bigtable.v2.ReadChangeStreamRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.bigtable.v2.ReadChangeStreamRequest', + ['tableName'] + ); + request.tableName = defaultValue1; + const expectedHeaderRequestParams = `table_name=${defaultValue1}`; + const expectedError = new Error('expected'); + client.innerApiCalls.readChangeStream = stubServerStreamingCall( + undefined, + expectedError + ); + const stream = client.readChangeStream(request); + const promise = new Promise((resolve, reject) => { + stream.on( + 'data', + (response: protos.google.bigtable.v2.ReadChangeStreamResponse) => { + resolve(response); + } + ); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + const actualRequest = ( + client.innerApiCalls.readChangeStream as SinonStub + ).getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = ( + client.innerApiCalls.readChangeStream as SinonStub + ).getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes readChangeStream with closed client', async () => { + const client = new bigtableModule.v2.BigtableClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + client.initialize(); + const request = generateSampleMessage( + new protos.google.bigtable.v2.ReadChangeStreamRequest() + ); + const defaultValue1 = getTypeDefaultValue( + '.google.bigtable.v2.ReadChangeStreamRequest', + ['tableName'] + ); + request.tableName = defaultValue1; + const expectedError = new Error('The client has already been closed.'); + client.close(); + const stream = client.readChangeStream(request); + const promise = new Promise((resolve, reject) => { + stream.on( + 'data', + (response: protos.google.bigtable.v2.ReadChangeStreamResponse) => { + resolve(response); + } + ); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + }); + }); + describe('Path templates', () => { describe('instance', () => { const fakePath = '/rendered/path/instance';