@google-cloud/bigquery-storage-api 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/README.md +111 -0
  2. package/build/protos/google/cloud/bigquery/storage/v1/annotations.proto +28 -0
  3. package/build/protos/google/cloud/bigquery/storage/v1/arrow.proto +89 -0
  4. package/build/protos/google/cloud/bigquery/storage/v1/avro.proto +81 -0
  5. package/build/protos/google/cloud/bigquery/storage/v1/protobuf.proto +48 -0
  6. package/build/protos/google/cloud/bigquery/storage/v1/storage.proto +786 -0
  7. package/build/protos/google/cloud/bigquery/storage/v1/stream.proto +335 -0
  8. package/build/protos/google/cloud/bigquery/storage/v1/table.proto +200 -0
  9. package/build/protos/protos.d.ts +12699 -0
  10. package/build/protos/protos.js +1 -0
  11. package/build/protos/protos.json +1 -0
  12. package/build/src/index.d.ts +14 -0
  13. package/build/src/index.js +30 -0
  14. package/build/src/index.js.map +1 -0
  15. package/build/src/v1/big_query_read_client.d.ts +424 -0
  16. package/build/src/v1/big_query_read_client.js +689 -0
  17. package/build/src/v1/big_query_read_client.js.map +1 -0
  18. package/build/src/v1/big_query_read_client_config.json +44 -0
  19. package/build/src/v1/big_query_read_proto_list.json +9 -0
  20. package/build/src/v1/big_query_write_client.d.ts +486 -0
  21. package/build/src/v1/big_query_write_client.js +835 -0
  22. package/build/src/v1/big_query_write_client.js.map +1 -0
  23. package/build/src/v1/big_query_write_client_config.json +73 -0
  24. package/build/src/v1/big_query_write_proto_list.json +9 -0
  25. package/build/src/v1/gapic_metadata.json +117 -0
  26. package/build/src/v1/index.d.ts +2 -0
  27. package/build/src/v1/index.js +25 -0
  28. package/build/src/v1/index.js.map +1 -0
  29. package/package.json +66 -0
@@ -0,0 +1,335 @@
1
+ // Copyright 2025 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.cloud.bigquery.storage.v1;
18
+
19
+ import "google/api/field_behavior.proto";
20
+ import "google/api/resource.proto";
21
+ import "google/cloud/bigquery/storage/v1/arrow.proto";
22
+ import "google/cloud/bigquery/storage/v1/avro.proto";
23
+ import "google/cloud/bigquery/storage/v1/table.proto";
24
+ import "google/protobuf/timestamp.proto";
25
+
26
+ option csharp_namespace = "Google.Cloud.BigQuery.Storage.V1";
27
+ option go_package = "cloud.google.com/go/bigquery/storage/apiv1/storagepb;storagepb";
28
+ option java_multiple_files = true;
29
+ option java_outer_classname = "StreamProto";
30
+ option java_package = "com.google.cloud.bigquery.storage.v1";
31
+ option php_namespace = "Google\\Cloud\\BigQuery\\Storage\\V1";
32
+
33
+ // Data format for input or output data.
34
+ enum DataFormat {
35
+ // Data format is unspecified.
36
+ DATA_FORMAT_UNSPECIFIED = 0;
37
+
38
+ // Avro is a standard open source row based file format.
39
+ // See https://avro.apache.org/ for more details.
40
+ AVRO = 1;
41
+
42
+ // Arrow is a standard open source column-based message format.
43
+ // See https://arrow.apache.org/ for more details.
44
+ ARROW = 2;
45
+ }
46
+
47
+ // Information about the ReadSession.
48
+ message ReadSession {
49
+ option (google.api.resource) = {
50
+ type: "bigquerystorage.googleapis.com/ReadSession"
51
+ pattern: "projects/{project}/locations/{location}/sessions/{session}"
52
+ };
53
+
54
+ // Additional attributes when reading a table.
55
+ message TableModifiers {
56
+ // The snapshot time of the table. If not set, interpreted as now.
57
+ google.protobuf.Timestamp snapshot_time = 1;
58
+ }
59
+
60
+ // Options dictating how we read a table.
61
+ message TableReadOptions {
62
+ // Specifies which compression codec to attempt on the entire serialized
63
+ // response payload (either Arrow record batch or Avro rows). This is
64
+ // not to be confused with the Apache Arrow native compression codecs
65
+ // specified in ArrowSerializationOptions. For performance reasons, when
66
+ // creating a read session requesting Arrow responses, setting both native
67
+ // Arrow compression and application-level response compression will not be
68
+ // allowed - choose, at most, one kind of compression.
69
+ enum ResponseCompressionCodec {
70
+ // Default is no compression.
71
+ RESPONSE_COMPRESSION_CODEC_UNSPECIFIED = 0;
72
+
73
+ // Use raw LZ4 compression.
74
+ RESPONSE_COMPRESSION_CODEC_LZ4 = 2;
75
+ }
76
+
77
+ // Optional. The names of the fields in the table to be returned. If no
78
+ // field names are specified, then all fields in the table are returned.
79
+ //
80
+ // Nested fields -- the child elements of a STRUCT field -- can be selected
81
+ // individually using their fully-qualified names, and will be returned as
82
+ // record fields containing only the selected nested fields. If a STRUCT
83
+ // field is specified in the selected fields list, all of the child elements
84
+ // will be returned.
85
+ //
86
+ // As an example, consider a table with the following schema:
87
+ //
88
+ // {
89
+ // "name": "struct_field",
90
+ // "type": "RECORD",
91
+ // "mode": "NULLABLE",
92
+ // "fields": [
93
+ // {
94
+ // "name": "string_field1",
95
+ // "type": "STRING",
96
+ // . "mode": "NULLABLE"
97
+ // },
98
+ // {
99
+ // "name": "string_field2",
100
+ // "type": "STRING",
101
+ // "mode": "NULLABLE"
102
+ // }
103
+ // ]
104
+ // }
105
+ //
106
+ // Specifying "struct_field" in the selected fields list will result in a
107
+ // read session schema with the following logical structure:
108
+ //
109
+ // struct_field {
110
+ // string_field1
111
+ // string_field2
112
+ // }
113
+ //
114
+ // Specifying "struct_field.string_field1" in the selected fields list will
115
+ // result in a read session schema with the following logical structure:
116
+ //
117
+ // struct_field {
118
+ // string_field1
119
+ // }
120
+ //
121
+ // The order of the fields in the read session schema is derived from the
122
+ // table schema and does not correspond to the order in which the fields are
123
+ // specified in this list.
124
+ repeated string selected_fields = 1;
125
+
126
+ // SQL text filtering statement, similar to a WHERE clause in a query.
127
+ // Aggregates are not supported.
128
+ //
129
+ // Examples: "int_field > 5"
130
+ // "date_field = CAST('2014-9-27' as DATE)"
131
+ // "nullable_field is not NULL"
132
+ // "st_equals(geo_field, st_geofromtext("POINT(2, 2)"))"
133
+ // "numeric_field BETWEEN 1.0 AND 5.0"
134
+ //
135
+ // Restricted to a maximum length for 1 MB.
136
+ string row_restriction = 2;
137
+
138
+ oneof output_format_serialization_options {
139
+ // Optional. Options specific to the Apache Arrow output format.
140
+ ArrowSerializationOptions arrow_serialization_options = 3
141
+ [(google.api.field_behavior) = OPTIONAL];
142
+
143
+ // Optional. Options specific to the Apache Avro output format
144
+ AvroSerializationOptions avro_serialization_options = 4
145
+ [(google.api.field_behavior) = OPTIONAL];
146
+ }
147
+
148
+ // Optional. Specifies a table sampling percentage. Specifically, the query
149
+ // planner will use TABLESAMPLE SYSTEM (sample_percentage PERCENT). The
150
+ // sampling percentage is applied at the data block granularity. It will
151
+ // randomly choose for each data block whether to read the rows in that data
152
+ // block. For more details, see
153
+ // https://cloud.google.com/bigquery/docs/table-sampling)
154
+ optional double sample_percentage = 5
155
+ [(google.api.field_behavior) = OPTIONAL];
156
+
157
+ // Optional. Set response_compression_codec when creating a read session to
158
+ // enable application-level compression of ReadRows responses.
159
+ optional ResponseCompressionCodec response_compression_codec = 6
160
+ [(google.api.field_behavior) = OPTIONAL];
161
+ }
162
+
163
+ // Output only. Unique identifier for the session, in the form
164
+ // `projects/{project_id}/locations/{location}/sessions/{session_id}`.
165
+ string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
166
+
167
+ // Output only. Time at which the session becomes invalid. After this time,
168
+ // subsequent requests to read this Session will return errors. The
169
+ // expire_time is automatically assigned and currently cannot be specified or
170
+ // updated.
171
+ google.protobuf.Timestamp expire_time = 2
172
+ [(google.api.field_behavior) = OUTPUT_ONLY];
173
+
174
+ // Immutable. Data format of the output data. DATA_FORMAT_UNSPECIFIED not
175
+ // supported.
176
+ DataFormat data_format = 3 [(google.api.field_behavior) = IMMUTABLE];
177
+
178
+ // The schema for the read. If read_options.selected_fields is set, the
179
+ // schema may be different from the table schema as it will only contain
180
+ // the selected fields.
181
+ oneof schema {
182
+ // Output only. Avro schema.
183
+ AvroSchema avro_schema = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
184
+
185
+ // Output only. Arrow schema.
186
+ ArrowSchema arrow_schema = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
187
+ }
188
+
189
+ // Immutable. Table that this ReadSession is reading from, in the form
190
+ // `projects/{project_id}/datasets/{dataset_id}/tables/{table_id}`
191
+ string table = 6 [
192
+ (google.api.field_behavior) = IMMUTABLE,
193
+ (google.api.resource_reference) = { type: "bigquery.googleapis.com/Table" }
194
+ ];
195
+
196
+ // Optional. Any modifiers which are applied when reading from the specified
197
+ // table.
198
+ TableModifiers table_modifiers = 7 [(google.api.field_behavior) = OPTIONAL];
199
+
200
+ // Optional. Read options for this session (e.g. column selection, filters).
201
+ TableReadOptions read_options = 8 [(google.api.field_behavior) = OPTIONAL];
202
+
203
+ // Output only. A list of streams created with the session.
204
+ //
205
+ // At least one stream is created with the session. In the future, larger
206
+ // request_stream_count values *may* result in this list being unpopulated,
207
+ // in that case, the user will need to use a List method to get the streams
208
+ // instead, which is not yet available.
209
+ repeated ReadStream streams = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
210
+
211
+ // Output only. An estimate on the number of bytes this session will scan when
212
+ // all streams are completely consumed. This estimate is based on
213
+ // metadata from the table which might be incomplete or stale.
214
+ int64 estimated_total_bytes_scanned = 12
215
+ [(google.api.field_behavior) = OUTPUT_ONLY];
216
+
217
+ // Output only. A pre-projected estimate of the total physical size of files
218
+ // (in bytes) that this session will scan when all streams are consumed. This
219
+ // estimate is independent of the selected columns and can be based on
220
+ // incomplete or stale metadata from the table. This field is only set for
221
+ // BigLake tables.
222
+ int64 estimated_total_physical_file_size = 15
223
+ [(google.api.field_behavior) = OUTPUT_ONLY];
224
+
225
+ // Output only. An estimate on the number of rows present in this session's
226
+ // streams. This estimate is based on metadata from the table which might be
227
+ // incomplete or stale.
228
+ int64 estimated_row_count = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
229
+
230
+ // Optional. ID set by client to annotate a session identity. This does not
231
+ // need to be strictly unique, but instead the same ID should be used to group
232
+ // logically connected sessions (e.g. All using the same ID for all sessions
233
+ // needed to complete a Spark SQL query is reasonable).
234
+ //
235
+ // Maximum length is 256 bytes.
236
+ string trace_id = 13 [(google.api.field_behavior) = OPTIONAL];
237
+ }
238
+
239
+ // Information about a single stream that gets data out of the storage system.
240
+ // Most of the information about `ReadStream` instances is aggregated, making
241
+ // `ReadStream` lightweight.
242
+ message ReadStream {
243
+ option (google.api.resource) = {
244
+ type: "bigquerystorage.googleapis.com/ReadStream"
245
+ pattern: "projects/{project}/locations/{location}/sessions/{session}/streams/{stream}"
246
+ };
247
+
248
+ // Output only. Name of the stream, in the form
249
+ // `projects/{project_id}/locations/{location}/sessions/{session_id}/streams/{stream_id}`.
250
+ string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
251
+ }
252
+
253
+ // WriteStreamView is a view enum that controls what details about a write
254
+ // stream should be returned.
255
+ enum WriteStreamView {
256
+ // The default / unset value.
257
+ WRITE_STREAM_VIEW_UNSPECIFIED = 0;
258
+
259
+ // The BASIC projection returns basic metadata about a write stream. The
260
+ // basic view does not include schema information. This is the default view
261
+ // returned by GetWriteStream.
262
+ BASIC = 1;
263
+
264
+ // The FULL projection returns all available write stream metadata, including
265
+ // the schema. CreateWriteStream returns the full projection of write stream
266
+ // metadata.
267
+ FULL = 2;
268
+ }
269
+
270
+ // Information about a single stream that gets data inside the storage system.
271
+ message WriteStream {
272
+ option (google.api.resource) = {
273
+ type: "bigquerystorage.googleapis.com/WriteStream"
274
+ pattern: "projects/{project}/datasets/{dataset}/tables/{table}/streams/{stream}"
275
+ };
276
+
277
+ // Type enum of the stream.
278
+ enum Type {
279
+ // Unknown type.
280
+ TYPE_UNSPECIFIED = 0;
281
+
282
+ // Data will commit automatically and appear as soon as the write is
283
+ // acknowledged.
284
+ COMMITTED = 1;
285
+
286
+ // Data is invisible until the stream is committed.
287
+ PENDING = 2;
288
+
289
+ // Data is only visible up to the offset to which it was flushed.
290
+ BUFFERED = 3;
291
+ }
292
+
293
+ // Mode enum of the stream.
294
+ enum WriteMode {
295
+ // Unknown type.
296
+ WRITE_MODE_UNSPECIFIED = 0;
297
+
298
+ // Insert new records into the table.
299
+ // It is the default value if customers do not specify it.
300
+ INSERT = 1;
301
+ }
302
+
303
+ // Output only. Name of the stream, in the form
304
+ // `projects/{project}/datasets/{dataset}/tables/{table}/streams/{stream}`.
305
+ string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
306
+
307
+ // Immutable. Type of the stream.
308
+ Type type = 2 [(google.api.field_behavior) = IMMUTABLE];
309
+
310
+ // Output only. Create time of the stream. For the _default stream, this is
311
+ // the creation_time of the table.
312
+ google.protobuf.Timestamp create_time = 3
313
+ [(google.api.field_behavior) = OUTPUT_ONLY];
314
+
315
+ // Output only. Commit time of the stream.
316
+ // If a stream is of `COMMITTED` type, then it will have a commit_time same as
317
+ // `create_time`. If the stream is of `PENDING` type, empty commit_time
318
+ // means it is not committed.
319
+ google.protobuf.Timestamp commit_time = 4
320
+ [(google.api.field_behavior) = OUTPUT_ONLY];
321
+
322
+ // Output only. The schema of the destination table. It is only returned in
323
+ // `CreateWriteStream` response. Caller should generate data that's
324
+ // compatible with this schema to send in initial `AppendRowsRequest`.
325
+ // The table schema could go out of date during the life time of the stream.
326
+ TableSchema table_schema = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
327
+
328
+ // Immutable. Mode of the stream.
329
+ WriteMode write_mode = 7 [(google.api.field_behavior) = IMMUTABLE];
330
+
331
+ // Output only. The geographic location where the stream's dataset resides.
332
+ // See https://cloud.google.com/bigquery/docs/locations for supported
333
+ // locations.
334
+ string location = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
335
+ }
@@ -0,0 +1,200 @@
1
+ // Copyright 2025 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.cloud.bigquery.storage.v1;
18
+
19
+ import "google/api/field_behavior.proto";
20
+ import "google/protobuf/wrappers.proto";
21
+
22
+ option csharp_namespace = "Google.Cloud.BigQuery.Storage.V1";
23
+ option go_package = "cloud.google.com/go/bigquery/storage/apiv1/storagepb;storagepb";
24
+ option java_multiple_files = true;
25
+ option java_outer_classname = "TableProto";
26
+ option java_package = "com.google.cloud.bigquery.storage.v1";
27
+ option php_namespace = "Google\\Cloud\\BigQuery\\Storage\\V1";
28
+
29
+ // Schema of a table. This schema is a subset of
30
+ // google.cloud.bigquery.v2.TableSchema containing information necessary to
31
+ // generate valid message to write to BigQuery.
32
+ message TableSchema {
33
+ // Describes the fields in a table.
34
+ repeated TableFieldSchema fields = 1;
35
+ }
36
+
37
+ // TableFieldSchema defines a single field/column within a table schema.
38
+ message TableFieldSchema {
39
+ enum Type {
40
+ // Illegal value
41
+ TYPE_UNSPECIFIED = 0;
42
+
43
+ // 64K, UTF8
44
+ STRING = 1;
45
+
46
+ // 64-bit signed
47
+ INT64 = 2;
48
+
49
+ // 64-bit IEEE floating point
50
+ DOUBLE = 3;
51
+
52
+ // Aggregate type
53
+ STRUCT = 4;
54
+
55
+ // 64K, Binary
56
+ BYTES = 5;
57
+
58
+ // 2-valued
59
+ BOOL = 6;
60
+
61
+ // 64-bit signed usec since UTC epoch
62
+ TIMESTAMP = 7;
63
+
64
+ // Civil date - Year, Month, Day
65
+ DATE = 8;
66
+
67
+ // Civil time - Hour, Minute, Second, Microseconds
68
+ TIME = 9;
69
+
70
+ // Combination of civil date and civil time
71
+ DATETIME = 10;
72
+
73
+ // Geography object
74
+ GEOGRAPHY = 11;
75
+
76
+ // Numeric value
77
+ NUMERIC = 12;
78
+
79
+ // BigNumeric value
80
+ BIGNUMERIC = 13;
81
+
82
+ // Interval
83
+ INTERVAL = 14;
84
+
85
+ // JSON, String
86
+ JSON = 15;
87
+
88
+ // RANGE
89
+ RANGE = 16;
90
+ }
91
+
92
+ enum Mode {
93
+ // Illegal value
94
+ MODE_UNSPECIFIED = 0;
95
+
96
+ NULLABLE = 1;
97
+
98
+ REQUIRED = 2;
99
+
100
+ REPEATED = 3;
101
+ }
102
+
103
+ // Represents the type of a field element.
104
+ message FieldElementType {
105
+ // Required. The type of a field element.
106
+ Type type = 1 [(google.api.field_behavior) = REQUIRED];
107
+ }
108
+
109
+ // Required. The field name. The name must contain only letters (a-z, A-Z),
110
+ // numbers (0-9), or underscores (_), and must start with a letter or
111
+ // underscore. The maximum length is 128 characters.
112
+ string name = 1 [(google.api.field_behavior) = REQUIRED];
113
+
114
+ // Required. The field data type.
115
+ Type type = 2 [(google.api.field_behavior) = REQUIRED];
116
+
117
+ // Optional. The field mode. The default value is NULLABLE.
118
+ Mode mode = 3 [(google.api.field_behavior) = OPTIONAL];
119
+
120
+ // Optional. Describes the nested schema fields if the type property is set to
121
+ // STRUCT.
122
+ repeated TableFieldSchema fields = 4 [(google.api.field_behavior) = OPTIONAL];
123
+
124
+ // Optional. The field description. The maximum length is 1,024 characters.
125
+ string description = 6 [(google.api.field_behavior) = OPTIONAL];
126
+
127
+ // Optional. Maximum length of values of this field for STRINGS or BYTES.
128
+ //
129
+ // If max_length is not specified, no maximum length constraint is imposed
130
+ // on this field.
131
+ //
132
+ // If type = "STRING", then max_length represents the maximum UTF-8
133
+ // length of strings in this field.
134
+ //
135
+ // If type = "BYTES", then max_length represents the maximum number of
136
+ // bytes in this field.
137
+ //
138
+ // It is invalid to set this field if type is not "STRING" or "BYTES".
139
+ int64 max_length = 7 [(google.api.field_behavior) = OPTIONAL];
140
+
141
+ // Optional. Precision (maximum number of total digits in base 10) and scale
142
+ // (maximum number of digits in the fractional part in base 10) constraints
143
+ // for values of this field for NUMERIC or BIGNUMERIC.
144
+ //
145
+ // It is invalid to set precision or scale if type is not "NUMERIC" or
146
+ // "BIGNUMERIC".
147
+ //
148
+ // If precision and scale are not specified, no value range constraint is
149
+ // imposed on this field insofar as values are permitted by the type.
150
+ //
151
+ // Values of this NUMERIC or BIGNUMERIC field must be in this range when:
152
+ //
153
+ // * Precision (P) and scale (S) are specified:
154
+ // [-10^(P-S) + 10^(-S), 10^(P-S) - 10^(-S)]
155
+ // * Precision (P) is specified but not scale (and thus scale is
156
+ // interpreted to be equal to zero):
157
+ // [-10^P + 1, 10^P - 1].
158
+ //
159
+ // Acceptable values for precision and scale if both are specified:
160
+ //
161
+ // * If type = "NUMERIC":
162
+ // 1 <= precision - scale <= 29 and 0 <= scale <= 9.
163
+ // * If type = "BIGNUMERIC":
164
+ // 1 <= precision - scale <= 38 and 0 <= scale <= 38.
165
+ //
166
+ // Acceptable values for precision if only precision is specified but not
167
+ // scale (and thus scale is interpreted to be equal to zero):
168
+ //
169
+ // * If type = "NUMERIC": 1 <= precision <= 29.
170
+ // * If type = "BIGNUMERIC": 1 <= precision <= 38.
171
+ //
172
+ // If scale is specified but not precision, then it is invalid.
173
+ int64 precision = 8 [(google.api.field_behavior) = OPTIONAL];
174
+
175
+ // Optional. See documentation for precision.
176
+ int64 scale = 9 [(google.api.field_behavior) = OPTIONAL];
177
+
178
+ // Optional. A SQL expression to specify the [default value]
179
+ // (https://cloud.google.com/bigquery/docs/default-values) for this field.
180
+ string default_value_expression = 10 [(google.api.field_behavior) = OPTIONAL];
181
+
182
+ // Optional. Precision (maximum number of total digits in base 10) for seconds
183
+ // of TIMESTAMP type.
184
+ //
185
+ // Possible values include:
186
+ //
187
+ // * 6 (Default, for TIMESTAMP type with microsecond precision)
188
+ // * 12 (For TIMESTAMP type with picosecond precision)
189
+ google.protobuf.Int64Value timestamp_precision = 27
190
+ [(google.api.field_behavior) = OPTIONAL];
191
+
192
+ // Optional. The subtype of the RANGE, if the type of this field is RANGE. If
193
+ // the type is RANGE, this field is required. Possible values for the field
194
+ // element type of a RANGE include:
195
+ // * DATE
196
+ // * DATETIME
197
+ // * TIMESTAMP
198
+ FieldElementType range_element_type = 11
199
+ [(google.api.field_behavior) = OPTIONAL];
200
+ }