diff --git a/BigQueryStorage/metadata/V1/Storage.php b/BigQueryStorage/metadata/V1/Storage.php
index 53329d9258c3..b4a2d096c920 100644
--- a/BigQueryStorage/metadata/V1/Storage.php
+++ b/BigQueryStorage/metadata/V1/Storage.php
@@ -27,7 +27,7 @@ public static function initOnce() {
\GPBMetadata\Google\Protobuf\Wrappers::initOnce();
\GPBMetadata\Google\Rpc\Status::initOnce();
$pool->internalAddGeneratedFile(
- "\x0A\xA2;\x0A.google/cloud/bigquery/storage/v1/storage.proto\x12 google.cloud.bigquery.storage.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A,google/cloud/bigquery/storage/v1/arrow.proto\x1A+google/cloud/bigquery/storage/v1/avro.proto\x1A/google/cloud/bigquery/storage/v1/protobuf.proto\x1A-google/cloud/bigquery/storage/v1/stream.proto\x1A,google/cloud/bigquery/storage/v1/table.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\x1A\x1Egoogle/protobuf/wrappers.proto\x1A\x17google/rpc/status.proto\"\xE7\x01\x0A\x18CreateReadSessionRequest\x12C\x0A\x06parent\x18\x01 \x01(\x09B3\xE0A\x02\xFAA-\x0A+cloudresourcemanager.googleapis.com/Project\x12H\x0A\x0Cread_session\x18\x02 \x01(\x0B2-.google.cloud.bigquery.storage.v1.ReadSessionB\x03\xE0A\x02\x12\x18\x0A\x10max_stream_count\x18\x03 \x01(\x05\x12\"\x0A\x1Apreferred_min_stream_count\x18\x04 \x01(\x05\"i\x0A\x0FReadRowsRequest\x12F\x0A\x0Bread_stream\x18\x01 \x01(\x09B1\xE0A\x02\xFAA+\x0A)bigquerystorage.googleapis.com/ReadStream\x12\x0E\x0A\x06offset\x18\x02 \x01(\x03\")\x0A\x0DThrottleState\x12\x18\x0A\x10throttle_percent\x18\x01 \x01(\x05\"\x97\x01\x0A\x0BStreamStats\x12H\x0A\x08progress\x18\x02 \x01(\x0B26.google.cloud.bigquery.storage.v1.StreamStats.Progress\x1A>\x0A\x08Progress\x12\x19\x0A\x11at_response_start\x18\x01 \x01(\x01\x12\x17\x0A\x0Fat_response_end\x18\x02 \x01(\x01\"\xAC\x04\x0A\x10ReadRowsResponse\x12?\x0A\x09avro_rows\x18\x03 \x01(\x0B2*.google.cloud.bigquery.storage.v1.AvroRowsH\x00\x12P\x0A\x12arrow_record_batch\x18\x04 \x01(\x0B22.google.cloud.bigquery.storage.v1.ArrowRecordBatchH\x00\x12\x11\x0A\x09row_count\x18\x06 \x01(\x03\x12<\x0A\x05stats\x18\x02 \x01(\x0B2-.google.cloud.bigquery.storage.v1.StreamStats\x12G\x0A\x0Ethrottle_state\x18\x05 \x01(\x0B2/.google.cloud.bigquery.storage.v1.ThrottleState\x12H\x0A\x0Bavro_schema\x18\x07 \x01(\x0B2,.google.cloud.bigquery.storage.v1.AvroSchemaB\x03\xE0A\x03H\x01\x12J\x0A\x0Carrow_schema\x18\x08 \x01(\x0B2-.google.cloud.bigquery.storage.v1.ArrowSchemaB\x03\xE0A\x03H\x01\x12(\x0A\x16uncompressed_byte_size\x18\x09 \x01(\x03B\x03\xE0A\x01H\x02\x88\x01\x01B\x06\x0A\x04rowsB\x08\x0A\x06schemaB\x19\x0A\x17_uncompressed_byte_size\"k\x0A\x16SplitReadStreamRequest\x12?\x0A\x04name\x18\x01 \x01(\x09B1\xE0A\x02\xFAA+\x0A)bigquerystorage.googleapis.com/ReadStream\x12\x10\x0A\x08fraction\x18\x02 \x01(\x01\"\xA7\x01\x0A\x17SplitReadStreamResponse\x12D\x0A\x0Eprimary_stream\x18\x01 \x01(\x0B2,.google.cloud.bigquery.storage.v1.ReadStream\x12F\x0A\x10remainder_stream\x18\x02 \x01(\x0B2,.google.cloud.bigquery.storage.v1.ReadStream\"\x9B\x01\x0A\x18CreateWriteStreamRequest\x125\x0A\x06parent\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Dbigquery.googleapis.com/Table\x12H\x0A\x0Cwrite_stream\x18\x02 \x01(\x0B2-.google.cloud.bigquery.storage.v1.WriteStreamB\x03\xE0A\x02\"\xF8\x08\x0A\x11AppendRowsRequest\x12H\x0A\x0Cwrite_stream\x18\x01 \x01(\x09B2\xE0A\x02\xFAA,\x0A*bigquerystorage.googleapis.com/WriteStream\x12+\x0A\x06offset\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12S\x0A\x0Aproto_rows\x18\x04 \x01(\x0B2=.google.cloud.bigquery.storage.v1.AppendRowsRequest.ProtoDataH\x00\x12S\x0A\x0Aarrow_rows\x18\x05 \x01(\x0B2=.google.cloud.bigquery.storage.v1.AppendRowsRequest.ArrowDataH\x00\x12\x10\x0A\x08trace_id\x18\x06 \x01(\x09\x12{\x0A\x1Dmissing_value_interpretations\x18\x07 \x03(\x0B2T.google.cloud.bigquery.storage.v1.AppendRowsRequest.MissingValueInterpretationsEntry\x12\x81\x01\x0A\$default_missing_value_interpretation\x18\x08 \x01(\x0E2N.google.cloud.bigquery.storage.v1.AppendRowsRequest.MissingValueInterpretationB\x03\xE0A\x01\x1A\x93\x01\x0A\x09ArrowData\x12D\x0A\x0Dwriter_schema\x18\x01 \x01(\x0B2-.google.cloud.bigquery.storage.v1.ArrowSchema\x12@\x0A\x04rows\x18\x02 \x01(\x0B22.google.cloud.bigquery.storage.v1.ArrowRecordBatch\x1A\x8C\x01\x0A\x09ProtoData\x12D\x0A\x0Dwriter_schema\x18\x01 \x01(\x0B2-.google.cloud.bigquery.storage.v1.ProtoSchema\x129\x0A\x04rows\x18\x02 \x01(\x0B2+.google.cloud.bigquery.storage.v1.ProtoRows\x1A\x92\x01\x0A MissingValueInterpretationsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12]\x0A\x05value\x18\x02 \x01(\x0E2N.google.cloud.bigquery.storage.v1.AppendRowsRequest.MissingValueInterpretation:\x028\x01\"m\x0A\x1AMissingValueInterpretation\x12,\x0A(MISSING_VALUE_INTERPRETATION_UNSPECIFIED\x10\x00\x12\x0E\x0A\x0ANULL_VALUE\x10\x01\x12\x11\x0A\x0DDEFAULT_VALUE\x10\x02B\x06\x0A\x04rows\"\xFB\x02\x0A\x12AppendRowsResponse\x12Z\x0A\x0Dappend_result\x18\x01 \x01(\x0B2A.google.cloud.bigquery.storage.v1.AppendRowsResponse.AppendResultH\x00\x12#\x0A\x05error\x18\x02 \x01(\x0B2\x12.google.rpc.StatusH\x00\x12E\x0A\x0Eupdated_schema\x18\x03 \x01(\x0B2-.google.cloud.bigquery.storage.v1.TableSchema\x12>\x0A\x0Arow_errors\x18\x04 \x03(\x0B2*.google.cloud.bigquery.storage.v1.RowError\x12\x14\x0A\x0Cwrite_stream\x18\x05 \x01(\x09\x1A;\x0A\x0CAppendResult\x12+\x0A\x06offset\x18\x01 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x0A\x0A\x08response\"\x9A\x01\x0A\x15GetWriteStreamRequest\x12@\x0A\x04name\x18\x01 \x01(\x09B2\xE0A\x02\xFAA,\x0A*bigquerystorage.googleapis.com/WriteStream\x12?\x0A\x04view\x18\x03 \x01(\x0E21.google.cloud.bigquery.storage.v1.WriteStreamView\"s\x0A\x1EBatchCommitWriteStreamsRequest\x125\x0A\x06parent\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Dbigquery.googleapis.com/Table\x12\x1A\x0A\x0Dwrite_streams\x18\x02 \x03(\x09B\x03\xE0A\x02\"\x99\x01\x0A\x1FBatchCommitWriteStreamsResponse\x12/\x0A\x0Bcommit_time\x18\x01 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12E\x0A\x0Dstream_errors\x18\x02 \x03(\x0B2..google.cloud.bigquery.storage.v1.StorageError\"^\x0A\x1AFinalizeWriteStreamRequest\x12@\x0A\x04name\x18\x01 \x01(\x09B2\xE0A\x02\xFAA,\x0A*bigquerystorage.googleapis.com/WriteStream\"0\x0A\x1BFinalizeWriteStreamResponse\x12\x11\x0A\x09row_count\x18\x01 \x01(\x03\"\x89\x01\x0A\x10FlushRowsRequest\x12H\x0A\x0Cwrite_stream\x18\x01 \x01(\x09B2\xE0A\x02\xFAA,\x0A*bigquerystorage.googleapis.com/WriteStream\x12+\x0A\x06offset\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int64Value\"#\x0A\x11FlushRowsResponse\x12\x0E\x0A\x06offset\x18\x01 \x01(\x03\"\xA4\x04\x0A\x0CStorageError\x12M\x0A\x04code\x18\x01 \x01(\x0E2?.google.cloud.bigquery.storage.v1.StorageError.StorageErrorCode\x12\x0E\x0A\x06entity\x18\x02 \x01(\x09\x12\x15\x0A\x0Derror_message\x18\x03 \x01(\x09\"\x9D\x03\x0A\x10StorageErrorCode\x12\"\x0A\x1ESTORAGE_ERROR_CODE_UNSPECIFIED\x10\x00\x12\x13\x0A\x0FTABLE_NOT_FOUND\x10\x01\x12\x1C\x0A\x18STREAM_ALREADY_COMMITTED\x10\x02\x12\x14\x0A\x10STREAM_NOT_FOUND\x10\x03\x12\x17\x0A\x13INVALID_STREAM_TYPE\x10\x04\x12\x18\x0A\x14INVALID_STREAM_STATE\x10\x05\x12\x14\x0A\x10STREAM_FINALIZED\x10\x06\x12 \x0A\x1CSCHEMA_MISMATCH_EXTRA_FIELDS\x10\x07\x12\x19\x0A\x15OFFSET_ALREADY_EXISTS\x10\x08\x12\x17\x0A\x13OFFSET_OUT_OF_RANGE\x10\x09\x12\x15\x0A\x11CMEK_NOT_PROVIDED\x10\x0A\x12\x19\x0A\x15INVALID_CMEK_PROVIDED\x10\x0B\x12\x19\x0A\x15CMEK_ENCRYPTION_ERROR\x10\x0C\x12\x15\x0A\x11KMS_SERVICE_ERROR\x10\x0D\x12\x19\x0A\x15KMS_PERMISSION_DENIED\x10\x0E\"\xB3\x01\x0A\x08RowError\x12\x0D\x0A\x05index\x18\x01 \x01(\x03\x12E\x0A\x04code\x18\x02 \x01(\x0E27.google.cloud.bigquery.storage.v1.RowError.RowErrorCode\x12\x0F\x0A\x07message\x18\x03 \x01(\x09\"@\x0A\x0CRowErrorCode\x12\x1E\x0A\x1AROW_ERROR_CODE_UNSPECIFIED\x10\x00\x12\x10\x0A\x0CFIELDS_ERROR\x10\x012\x92\x06\x0A\x0CBigQueryRead\x12\xE9\x01\x0A\x11CreateReadSession\x12:.google.cloud.bigquery.storage.v1.CreateReadSessionRequest\x1A-.google.cloud.bigquery.storage.v1.ReadSession\"i\xDAA\$parent,read_session,max_stream_count\x82\xD3\xE4\x93\x02<\"7/v1/{read_session.table=projects/*/datasets/*/tables/*}:\x01*\x12\xCF\x01\x0A\x08ReadRows\x121.google.cloud.bigquery.storage.v1.ReadRowsRequest\x1A2.google.cloud.bigquery.storage.v1.ReadRowsResponse\"Z\xDAA\x12read_stream,offset\x82\xD3\xE4\x93\x02?\x12=/v1/{read_stream=projects/*/locations/*/sessions/*/streams/*}0\x01\x12\xC6\x01\x0A\x0FSplitReadStream\x128.google.cloud.bigquery.storage.v1.SplitReadStreamRequest\x1A9.google.cloud.bigquery.storage.v1.SplitReadStreamResponse\">\x82\xD3\xE4\x93\x028\x126/v1/{name=projects/*/locations/*/sessions/*/streams/*}\x1A{\xCAA\x1Ebigquerystorage.googleapis.com\xD2AWhttps://www.googleapis.com/auth/bigquery,https://www.googleapis.com/auth/cloud-platform2\xBC\x0B\x0A\x0DBigQueryWrite\x12\xD7\x01\x0A\x11CreateWriteStream\x12:.google.cloud.bigquery.storage.v1.CreateWriteStreamRequest\x1A-.google.cloud.bigquery.storage.v1.WriteStream\"W\xDAA\x13parent,write_stream\x82\xD3\xE4\x93\x02;\"+/v1/{parent=projects/*/datasets/*/tables/*}:\x0Cwrite_stream\x12\xD2\x01\x0A\x0AAppendRows\x123.google.cloud.bigquery.storage.v1.AppendRowsRequest\x1A4.google.cloud.bigquery.storage.v1.AppendRowsResponse\"U\xDAA\x0Cwrite_stream\x82\xD3\xE4\x93\x02@\";/v1/{write_stream=projects/*/datasets/*/tables/*/streams/*}:\x01*(\x010\x01\x12\xBF\x01\x0A\x0EGetWriteStream\x127.google.cloud.bigquery.storage.v1.GetWriteStreamRequest\x1A-.google.cloud.bigquery.storage.v1.WriteStream\"E\xDAA\x04name\x82\xD3\xE4\x93\x028\"3/v1/{name=projects/*/datasets/*/tables/*/streams/*}:\x01*\x12\xD9\x01\x0A\x13FinalizeWriteStream\x12<.google.cloud.bigquery.storage.v1.FinalizeWriteStreamRequest\x1A=.google.cloud.bigquery.storage.v1.FinalizeWriteStreamResponse\"E\xDAA\x04name\x82\xD3\xE4\x93\x028\"3/v1/{name=projects/*/datasets/*/tables/*/streams/*}:\x01*\x12\xDC\x01\x0A\x17BatchCommitWriteStreams\x12@.google.cloud.bigquery.storage.v1.BatchCommitWriteStreamsRequest\x1AA.google.cloud.bigquery.storage.v1.BatchCommitWriteStreamsResponse\"<\xDAA\x06parent\x82\xD3\xE4\x93\x02-\x12+/v1/{parent=projects/*/datasets/*/tables/*}\x12\xCB\x01\x0A\x09FlushRows\x122.google.cloud.bigquery.storage.v1.FlushRowsRequest\x1A3.google.cloud.bigquery.storage.v1.FlushRowsResponse\"U\xDAA\x0Cwrite_stream\x82\xD3\xE4\x93\x02@\";/v1/{write_stream=projects/*/datasets/*/tables/*/streams/*}:\x01*\x1A\xB0\x01\xCAA\x1Ebigquerystorage.googleapis.com\xD2A\x8B\x01https://www.googleapis.com/auth/bigquery,https://www.googleapis.com/auth/bigquery.insertdata,https://www.googleapis.com/auth/cloud-platformB\x94\x02\x0A\$com.google.cloud.bigquery.storage.v1B\x0CStorageProtoP\x01Z>cloud.google.com/go/bigquery/storage/apiv1/storagepb;storagepb\xAA\x02 Google.Cloud.BigQuery.Storage.V1\xCA\x02 Google\\Cloud\\BigQuery\\Storage\\V1\xEAAU\x0A\x1Dbigquery.googleapis.com/Table\x124projects/{project}/datasets/{dataset}/tables/{table}b\x06proto3"
+ "\x0A\xE1D\x0A.google/cloud/bigquery/storage/v1/storage.proto\x12 google.cloud.bigquery.storage.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A,google/cloud/bigquery/storage/v1/arrow.proto\x1A+google/cloud/bigquery/storage/v1/avro.proto\x1A/google/cloud/bigquery/storage/v1/protobuf.proto\x1A-google/cloud/bigquery/storage/v1/stream.proto\x1A,google/cloud/bigquery/storage/v1/table.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\x1A\x1Egoogle/protobuf/wrappers.proto\x1A\x17google/rpc/status.proto\"\xE7\x01\x0A\x18CreateReadSessionRequest\x12C\x0A\x06parent\x18\x01 \x01(\x09B3\xE0A\x02\xFAA-\x0A+cloudresourcemanager.googleapis.com/Project\x12H\x0A\x0Cread_session\x18\x02 \x01(\x0B2-.google.cloud.bigquery.storage.v1.ReadSessionB\x03\xE0A\x02\x12\x18\x0A\x10max_stream_count\x18\x03 \x01(\x05\x12\"\x0A\x1Apreferred_min_stream_count\x18\x04 \x01(\x05\"\xF9\x01\x0A\x0FReadRowsRequest\x12F\x0A\x0Bread_stream\x18\x01 \x01(\x09B1\xE0A\x02\xFAA+\x0A)bigquerystorage.googleapis.com/ReadStream\x12\x0E\x0A\x06offset\x18\x02 \x01(\x03\x12g\x0A\x1Barrow_serialization_options\x18\x05 \x01(\x0B2;.google.cloud.bigquery.storage.v1.ArrowSerializationOptionsB\x03\xE0A\x01H\x00B%\x0A#output_format_serialization_options\")\x0A\x0DThrottleState\x12\x18\x0A\x10throttle_percent\x18\x01 \x01(\x05\"\x97\x01\x0A\x0BStreamStats\x12H\x0A\x08progress\x18\x02 \x01(\x0B26.google.cloud.bigquery.storage.v1.StreamStats.Progress\x1A>\x0A\x08Progress\x12\x19\x0A\x11at_response_start\x18\x01 \x01(\x01\x12\x17\x0A\x0Fat_response_end\x18\x02 \x01(\x01\"\xF7\x04\x0A\x10ReadRowsResponse\x12?\x0A\x09avro_rows\x18\x03 \x01(\x0B2*.google.cloud.bigquery.storage.v1.AvroRowsH\x00\x12P\x0A\x12arrow_record_batch\x18\x04 \x01(\x0B22.google.cloud.bigquery.storage.v1.ArrowRecordBatchH\x00\x12\x11\x0A\x09row_count\x18\x06 \x01(\x03\x12<\x0A\x05stats\x18\x02 \x01(\x0B2-.google.cloud.bigquery.storage.v1.StreamStats\x12G\x0A\x0Ethrottle_state\x18\x05 \x01(\x0B2/.google.cloud.bigquery.storage.v1.ThrottleState\x12H\x0A\x0Bavro_schema\x18\x07 \x01(\x0B2,.google.cloud.bigquery.storage.v1.AvroSchemaB\x03\xE0A\x03H\x01\x12J\x0A\x0Carrow_schema\x18\x08 \x01(\x0B2-.google.cloud.bigquery.storage.v1.ArrowSchemaB\x03\xE0A\x03H\x01\x12(\x0A\x16uncompressed_byte_size\x18\x09 \x01(\x03B\x03\xE0A\x01H\x02\x88\x01\x01\x12+\x0A\x19total_estimated_row_count\x18\x0A \x01(\x03B\x03\xE0A\x03H\x03\x88\x01\x01B\x06\x0A\x04rowsB\x08\x0A\x06schemaB\x19\x0A\x17_uncompressed_byte_sizeB\x1C\x0A\x1A_total_estimated_row_count\"k\x0A\x16SplitReadStreamRequest\x12?\x0A\x04name\x18\x01 \x01(\x09B1\xE0A\x02\xFAA+\x0A)bigquerystorage.googleapis.com/ReadStream\x12\x10\x0A\x08fraction\x18\x02 \x01(\x01\"\xA7\x01\x0A\x17SplitReadStreamResponse\x12D\x0A\x0Eprimary_stream\x18\x01 \x01(\x0B2,.google.cloud.bigquery.storage.v1.ReadStream\x12F\x0A\x10remainder_stream\x18\x02 \x01(\x0B2,.google.cloud.bigquery.storage.v1.ReadStream\"\x9B\x01\x0A\x18CreateWriteStreamRequest\x125\x0A\x06parent\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Dbigquery.googleapis.com/Table\x12H\x0A\x0Cwrite_stream\x18\x02 \x01(\x0B2-.google.cloud.bigquery.storage.v1.WriteStreamB\x03\xE0A\x02\"\xC2\x09\x0A\x11AppendRowsRequest\x12H\x0A\x0Cwrite_stream\x18\x01 \x01(\x09B2\xE0A\x02\xFAA,\x0A*bigquerystorage.googleapis.com/WriteStream\x12+\x0A\x06offset\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12S\x0A\x0Aproto_rows\x18\x04 \x01(\x0B2=.google.cloud.bigquery.storage.v1.AppendRowsRequest.ProtoDataH\x00\x12S\x0A\x0Aarrow_rows\x18\x05 \x01(\x0B2=.google.cloud.bigquery.storage.v1.AppendRowsRequest.ArrowDataH\x00\x12\x10\x0A\x08trace_id\x18\x06 \x01(\x09\x12{\x0A\x1Dmissing_value_interpretations\x18\x07 \x03(\x0B2T.google.cloud.bigquery.storage.v1.AppendRowsRequest.MissingValueInterpretationsEntry\x12\x81\x01\x0A\$default_missing_value_interpretation\x18\x08 \x01(\x0E2N.google.cloud.bigquery.storage.v1.AppendRowsRequest.MissingValueInterpretationB\x03\xE0A\x01\x12H\x0A\x0Cclient_stats\x18\x09 \x01(\x0B2-.google.cloud.bigquery.storage.v1.ClientStatsB\x03\xE0A\x01\x1A\x93\x01\x0A\x09ArrowData\x12D\x0A\x0Dwriter_schema\x18\x01 \x01(\x0B2-.google.cloud.bigquery.storage.v1.ArrowSchema\x12@\x0A\x04rows\x18\x02 \x01(\x0B22.google.cloud.bigquery.storage.v1.ArrowRecordBatch\x1A\x8C\x01\x0A\x09ProtoData\x12D\x0A\x0Dwriter_schema\x18\x01 \x01(\x0B2-.google.cloud.bigquery.storage.v1.ProtoSchema\x129\x0A\x04rows\x18\x02 \x01(\x0B2+.google.cloud.bigquery.storage.v1.ProtoRows\x1A\x92\x01\x0A MissingValueInterpretationsEntry\x12\x0B\x0A\x03key\x18\x01 \x01(\x09\x12]\x0A\x05value\x18\x02 \x01(\x0E2N.google.cloud.bigquery.storage.v1.AppendRowsRequest.MissingValueInterpretation:\x028\x01\"m\x0A\x1AMissingValueInterpretation\x12,\x0A(MISSING_VALUE_INTERPRETATION_UNSPECIFIED\x10\x00\x12\x0E\x0A\x0ANULL_VALUE\x10\x01\x12\x11\x0A\x0DDEFAULT_VALUE\x10\x02B\x06\x0A\x04rows\"\xFB\x02\x0A\x12AppendRowsResponse\x12Z\x0A\x0Dappend_result\x18\x01 \x01(\x0B2A.google.cloud.bigquery.storage.v1.AppendRowsResponse.AppendResultH\x00\x12#\x0A\x05error\x18\x02 \x01(\x0B2\x12.google.rpc.StatusH\x00\x12E\x0A\x0Eupdated_schema\x18\x03 \x01(\x0B2-.google.cloud.bigquery.storage.v1.TableSchema\x12>\x0A\x0Arow_errors\x18\x04 \x03(\x0B2*.google.cloud.bigquery.storage.v1.RowError\x12\x14\x0A\x0Cwrite_stream\x18\x05 \x01(\x09\x1A;\x0A\x0CAppendResult\x12+\x0A\x06offset\x18\x01 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x0A\x0A\x08response\"\x9A\x01\x0A\x15GetWriteStreamRequest\x12@\x0A\x04name\x18\x01 \x01(\x09B2\xE0A\x02\xFAA,\x0A*bigquerystorage.googleapis.com/WriteStream\x12?\x0A\x04view\x18\x03 \x01(\x0E21.google.cloud.bigquery.storage.v1.WriteStreamView\"s\x0A\x1EBatchCommitWriteStreamsRequest\x125\x0A\x06parent\x18\x01 \x01(\x09B%\xE0A\x02\xFAA\x1F\x0A\x1Dbigquery.googleapis.com/Table\x12\x1A\x0A\x0Dwrite_streams\x18\x02 \x03(\x09B\x03\xE0A\x02\"\x99\x01\x0A\x1FBatchCommitWriteStreamsResponse\x12/\x0A\x0Bcommit_time\x18\x01 \x01(\x0B2\x1A.google.protobuf.Timestamp\x12E\x0A\x0Dstream_errors\x18\x02 \x03(\x0B2..google.cloud.bigquery.storage.v1.StorageError\"^\x0A\x1AFinalizeWriteStreamRequest\x12@\x0A\x04name\x18\x01 \x01(\x09B2\xE0A\x02\xFAA,\x0A*bigquerystorage.googleapis.com/WriteStream\"0\x0A\x1BFinalizeWriteStreamResponse\x12\x11\x0A\x09row_count\x18\x01 \x01(\x03\"\x89\x01\x0A\x10FlushRowsRequest\x12H\x0A\x0Cwrite_stream\x18\x01 \x01(\x09B2\xE0A\x02\xFAA,\x0A*bigquerystorage.googleapis.com/WriteStream\x12+\x0A\x06offset\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int64Value\"#\x0A\x11FlushRowsResponse\x12\x0E\x0A\x06offset\x18\x01 \x01(\x03\"\xA4\x04\x0A\x0CStorageError\x12M\x0A\x04code\x18\x01 \x01(\x0E2?.google.cloud.bigquery.storage.v1.StorageError.StorageErrorCode\x12\x0E\x0A\x06entity\x18\x02 \x01(\x09\x12\x15\x0A\x0Derror_message\x18\x03 \x01(\x09\"\x9D\x03\x0A\x10StorageErrorCode\x12\"\x0A\x1ESTORAGE_ERROR_CODE_UNSPECIFIED\x10\x00\x12\x13\x0A\x0FTABLE_NOT_FOUND\x10\x01\x12\x1C\x0A\x18STREAM_ALREADY_COMMITTED\x10\x02\x12\x14\x0A\x10STREAM_NOT_FOUND\x10\x03\x12\x17\x0A\x13INVALID_STREAM_TYPE\x10\x04\x12\x18\x0A\x14INVALID_STREAM_STATE\x10\x05\x12\x14\x0A\x10STREAM_FINALIZED\x10\x06\x12 \x0A\x1CSCHEMA_MISMATCH_EXTRA_FIELDS\x10\x07\x12\x19\x0A\x15OFFSET_ALREADY_EXISTS\x10\x08\x12\x17\x0A\x13OFFSET_OUT_OF_RANGE\x10\x09\x12\x15\x0A\x11CMEK_NOT_PROVIDED\x10\x0A\x12\x19\x0A\x15INVALID_CMEK_PROVIDED\x10\x0B\x12\x19\x0A\x15CMEK_ENCRYPTION_ERROR\x10\x0C\x12\x15\x0A\x11KMS_SERVICE_ERROR\x10\x0D\x12\x19\x0A\x15KMS_PERMISSION_DENIED\x10\x0E\"\xB3\x01\x0A\x08RowError\x12\x0D\x0A\x05index\x18\x01 \x01(\x03\x12E\x0A\x04code\x18\x02 \x01(\x0E27.google.cloud.bigquery.storage.v1.RowError.RowErrorCode\x12\x0F\x0A\x07message\x18\x03 \x01(\x09\"@\x0A\x0CRowErrorCode\x12\x1E\x0A\x1AROW_ERROR_CODE_UNSPECIFIED\x10\x00\x12\x10\x0A\x0CFIELDS_ERROR\x10\x01\"\x96\x07\x0A\x0BClientStats\x12V\x0A\x0Drequest_stats\x18\x01 \x01(\x0B2:.google.cloud.bigquery.storage.v1.ClientStats.RequestStatsB\x03\xE0A\x01\x12T\x0A\x0Cwindow_stats\x18\x02 \x01(\x0B29.google.cloud.bigquery.storage.v1.ClientStats.WindowStatsB\x03\xE0A\x01\x1A\x8A\x01\x0A\x0CRequestStats\x12\"\x0A\x10send_time_millis\x18\x01 \x01(\x03B\x03\xE0A\x01H\x00\x88\x01\x01\x12'\x0A\x15queued_requests_count\x18\x02 \x01(\x03B\x03\xE0A\x01H\x01\x88\x01\x01B\x13\x0A\x11_send_time_millisB\x18\x0A\x16_queued_requests_count\x1A\xCB\x04\x0A\x0BWindowStats\x12-\x0A\x1Bmax_response_latency_millis\x18\x01 \x01(\x03B\x03\xE0A\x01H\x00\x88\x01\x01\x12-\x0A\x1Bavg_response_latency_millis\x18\x02 \x01(\x03B\x03\xE0A\x01H\x01\x88\x01\x01\x121\x0A\x1Flongest_wait_no_response_millis\x18\x03 \x01(\x03B\x03\xE0A\x01H\x02\x88\x01\x01\x12%\x0A\x13requests_sent_count\x18\x04 \x01(\x03B\x03\xE0A\x01H\x03\x88\x01\x01\x12*\x0A\x18responses_received_count\x18\x05 \x01(\x03B\x03\xE0A\x01H\x04\x88\x01\x01\x12\"\x0A\x10bytes_sent_count\x18\x06 \x01(\x03B\x03\xE0A\x01H\x05\x88\x01\x01\x120\x0A\x1Ewindow_start_time_epoch_millis\x18\x07 \x01(\x03B\x03\xE0A\x01H\x06\x88\x01\x01\x12\x1F\x0A\x0Dwindow_millis\x18\x08 \x01(\x03B\x03\xE0A\x01H\x07\x88\x01\x01B\x1E\x0A\x1C_max_response_latency_millisB\x1E\x0A\x1C_avg_response_latency_millisB\"\x0A _longest_wait_no_response_millisB\x16\x0A\x14_requests_sent_countB\x1B\x0A\x19_responses_received_countB\x13\x0A\x11_bytes_sent_countB!\x0A\x1F_window_start_time_epoch_millisB\x10\x0A\x0E_window_millis2\x92\x06\x0A\x0CBigQueryRead\x12\xE9\x01\x0A\x11CreateReadSession\x12:.google.cloud.bigquery.storage.v1.CreateReadSessionRequest\x1A-.google.cloud.bigquery.storage.v1.ReadSession\"i\xDAA\$parent,read_session,max_stream_count\x82\xD3\xE4\x93\x02<\"7/v1/{read_session.table=projects/*/datasets/*/tables/*}:\x01*\x12\xCF\x01\x0A\x08ReadRows\x121.google.cloud.bigquery.storage.v1.ReadRowsRequest\x1A2.google.cloud.bigquery.storage.v1.ReadRowsResponse\"Z\xDAA\x12read_stream,offset\x82\xD3\xE4\x93\x02?\x12=/v1/{read_stream=projects/*/locations/*/sessions/*/streams/*}0\x01\x12\xC6\x01\x0A\x0FSplitReadStream\x128.google.cloud.bigquery.storage.v1.SplitReadStreamRequest\x1A9.google.cloud.bigquery.storage.v1.SplitReadStreamResponse\">\x82\xD3\xE4\x93\x028\x126/v1/{name=projects/*/locations/*/sessions/*/streams/*}\x1A{\xCAA\x1Ebigquerystorage.googleapis.com\xD2AWhttps://www.googleapis.com/auth/bigquery,https://www.googleapis.com/auth/cloud-platform2\xBC\x0B\x0A\x0DBigQueryWrite\x12\xD7\x01\x0A\x11CreateWriteStream\x12:.google.cloud.bigquery.storage.v1.CreateWriteStreamRequest\x1A-.google.cloud.bigquery.storage.v1.WriteStream\"W\xDAA\x13parent,write_stream\x82\xD3\xE4\x93\x02;\"+/v1/{parent=projects/*/datasets/*/tables/*}:\x0Cwrite_stream\x12\xD2\x01\x0A\x0AAppendRows\x123.google.cloud.bigquery.storage.v1.AppendRowsRequest\x1A4.google.cloud.bigquery.storage.v1.AppendRowsResponse\"U\xDAA\x0Cwrite_stream\x82\xD3\xE4\x93\x02@\";/v1/{write_stream=projects/*/datasets/*/tables/*/streams/*}:\x01*(\x010\x01\x12\xBF\x01\x0A\x0EGetWriteStream\x127.google.cloud.bigquery.storage.v1.GetWriteStreamRequest\x1A-.google.cloud.bigquery.storage.v1.WriteStream\"E\xDAA\x04name\x82\xD3\xE4\x93\x028\"3/v1/{name=projects/*/datasets/*/tables/*/streams/*}:\x01*\x12\xD9\x01\x0A\x13FinalizeWriteStream\x12<.google.cloud.bigquery.storage.v1.FinalizeWriteStreamRequest\x1A=.google.cloud.bigquery.storage.v1.FinalizeWriteStreamResponse\"E\xDAA\x04name\x82\xD3\xE4\x93\x028\"3/v1/{name=projects/*/datasets/*/tables/*/streams/*}:\x01*\x12\xDC\x01\x0A\x17BatchCommitWriteStreams\x12@.google.cloud.bigquery.storage.v1.BatchCommitWriteStreamsRequest\x1AA.google.cloud.bigquery.storage.v1.BatchCommitWriteStreamsResponse\"<\xDAA\x06parent\x82\xD3\xE4\x93\x02-\x12+/v1/{parent=projects/*/datasets/*/tables/*}\x12\xCB\x01\x0A\x09FlushRows\x122.google.cloud.bigquery.storage.v1.FlushRowsRequest\x1A3.google.cloud.bigquery.storage.v1.FlushRowsResponse\"U\xDAA\x0Cwrite_stream\x82\xD3\xE4\x93\x02@\";/v1/{write_stream=projects/*/datasets/*/tables/*/streams/*}:\x01*\x1A\xB0\x01\xCAA\x1Ebigquerystorage.googleapis.com\xD2A\x8B\x01https://www.googleapis.com/auth/bigquery,https://www.googleapis.com/auth/bigquery.insertdata,https://www.googleapis.com/auth/cloud-platformB\x94\x02\x0A\$com.google.cloud.bigquery.storage.v1B\x0CStorageProtoP\x01Z>cloud.google.com/go/bigquery/storage/apiv1/storagepb;storagepb\xAA\x02 Google.Cloud.BigQuery.Storage.V1\xCA\x02 Google\\Cloud\\BigQuery\\Storage\\V1\xEAAU\x0A\x1Dbigquery.googleapis.com/Table\x124projects/{project}/datasets/{dataset}/tables/{table}b\x06proto3"
, true);
static::$is_initialized = true;
diff --git a/BigQueryStorage/src/V1/AppendRowsRequest.php b/BigQueryStorage/src/V1/AppendRowsRequest.php
index 06309ad6dcbf..56de7ef223a0 100644
--- a/BigQueryStorage/src/V1/AppendRowsRequest.php
+++ b/BigQueryStorage/src/V1/AppendRowsRequest.php
@@ -14,7 +14,7 @@
* AppendRowsRequest need only be specified for the first request before
* switching table destinations. You can also switch table destinations within
* the same connection for the default stream.
- * The size of a single AppendRowsRequest must be less than 10 MB in size.
+ * The size of a single AppendRowsRequest must be less than 20 MB in size.
* Requests larger than this return an error, typically `INVALID_ARGUMENT`.
*
* Generated from protobuf message google.cloud.bigquery.storage.v1.AppendRowsRequest
@@ -94,6 +94,12 @@ class AppendRowsRequest extends \Google\Protobuf\Internal\Message
* Generated from protobuf field .google.cloud.bigquery.storage.v1.AppendRowsRequest.MissingValueInterpretation default_missing_value_interpretation = 8 [(.google.api.field_behavior) = OPTIONAL];
*/
protected $default_missing_value_interpretation = 0;
+ /**
+ * Optional. Stats and telemetry data gathered on the client side.
+ *
+ * Generated from protobuf field .google.cloud.bigquery.storage.v1.ClientStats client_stats = 9 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $client_stats = null;
protected $rows;
/**
@@ -204,6 +210,8 @@ public static function build(string $writeStream): self
* `NULL` instead of using default values for some columns, you can set
* `default_missing_value_interpretation` to `DEFAULT_VALUE` and at the same
* time, set `missing_value_interpretations` to `NULL_VALUE` on those columns.
+ * @type \Google\Cloud\BigQuery\Storage\V1\ClientStats $client_stats
+ * Optional. Stats and telemetry data gathered on the client side.
* }
*/
public function __construct($data = NULL) {
@@ -532,6 +540,42 @@ public function setDefaultMissingValueInterpretation($var)
return $this;
}
+ /**
+ * Optional. Stats and telemetry data gathered on the client side.
+ *
+ * Generated from protobuf field .google.cloud.bigquery.storage.v1.ClientStats client_stats = 9 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\BigQuery\Storage\V1\ClientStats|null
+ */
+ public function getClientStats()
+ {
+ return $this->client_stats;
+ }
+
+ public function hasClientStats()
+ {
+ return isset($this->client_stats);
+ }
+
+ public function clearClientStats()
+ {
+ unset($this->client_stats);
+ }
+
+ /**
+ * Optional. Stats and telemetry data gathered on the client side.
+ *
+ * Generated from protobuf field .google.cloud.bigquery.storage.v1.ClientStats client_stats = 9 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\BigQuery\Storage\V1\ClientStats $var
+ * @return $this
+ */
+ public function setClientStats($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\BigQuery\Storage\V1\ClientStats::class);
+ $this->client_stats = $var;
+
+ return $this;
+ }
+
/**
* @return string
*/
diff --git a/BigQueryStorage/src/V1/ClientStats.php b/BigQueryStorage/src/V1/ClientStats.php
new file mode 100644
index 000000000000..72fffa66cbd8
--- /dev/null
+++ b/BigQueryStorage/src/V1/ClientStats.php
@@ -0,0 +1,122 @@
+google.cloud.bigquery.storage.v1.ClientStats
+ */
+class ClientStats extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Per-request stats.
+ *
+ * Generated from protobuf field .google.cloud.bigquery.storage.v1.ClientStats.RequestStats request_stats = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $request_stats = null;
+ /**
+ * Optional. Windowed stats.
+ *
+ * Generated from protobuf field .google.cloud.bigquery.storage.v1.ClientStats.WindowStats window_stats = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $window_stats = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type \Google\Cloud\BigQuery\Storage\V1\ClientStats\RequestStats $request_stats
+ * Optional. Per-request stats.
+ * @type \Google\Cloud\BigQuery\Storage\V1\ClientStats\WindowStats $window_stats
+ * Optional. Windowed stats.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Bigquery\Storage\V1\Storage::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Per-request stats.
+ *
+ * Generated from protobuf field .google.cloud.bigquery.storage.v1.ClientStats.RequestStats request_stats = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\BigQuery\Storage\V1\ClientStats\RequestStats|null
+ */
+ public function getRequestStats()
+ {
+ return $this->request_stats;
+ }
+
+ public function hasRequestStats()
+ {
+ return isset($this->request_stats);
+ }
+
+ public function clearRequestStats()
+ {
+ unset($this->request_stats);
+ }
+
+ /**
+ * Optional. Per-request stats.
+ *
+ * Generated from protobuf field .google.cloud.bigquery.storage.v1.ClientStats.RequestStats request_stats = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\BigQuery\Storage\V1\ClientStats\RequestStats $var
+ * @return $this
+ */
+ public function setRequestStats($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\BigQuery\Storage\V1\ClientStats\RequestStats::class);
+ $this->request_stats = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Windowed stats.
+ *
+ * Generated from protobuf field .google.cloud.bigquery.storage.v1.ClientStats.WindowStats window_stats = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\BigQuery\Storage\V1\ClientStats\WindowStats|null
+ */
+ public function getWindowStats()
+ {
+ return $this->window_stats;
+ }
+
+ public function hasWindowStats()
+ {
+ return isset($this->window_stats);
+ }
+
+ public function clearWindowStats()
+ {
+ unset($this->window_stats);
+ }
+
+ /**
+ * Optional. Windowed stats.
+ *
+ * Generated from protobuf field .google.cloud.bigquery.storage.v1.ClientStats.WindowStats window_stats = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\BigQuery\Storage\V1\ClientStats\WindowStats $var
+ * @return $this
+ */
+ public function setWindowStats($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\BigQuery\Storage\V1\ClientStats\WindowStats::class);
+ $this->window_stats = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/BigQueryStorage/src/V1/ClientStats/RequestStats.php b/BigQueryStorage/src/V1/ClientStats/RequestStats.php
new file mode 100644
index 000000000000..060b5a19bcc5
--- /dev/null
+++ b/BigQueryStorage/src/V1/ClientStats/RequestStats.php
@@ -0,0 +1,130 @@
+google.cloud.bigquery.storage.v1.ClientStats.RequestStats
+ */
+class RequestStats extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. Timestamp indicating when the request was sent over the
+ * network, expressed in epoch milliseconds.
+ *
+ * Generated from protobuf field optional int64 send_time_millis = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $send_time_millis = null;
+ /**
+ * Optional. Number of pending requests at the moment this request was sent.
+ * This includes requests waiting to be sent, and those that are inflight.
+ *
+ * Generated from protobuf field optional int64 queued_requests_count = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $queued_requests_count = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $send_time_millis
+ * Optional. Timestamp indicating when the request was sent over the
+ * network, expressed in epoch milliseconds.
+ * @type int|string $queued_requests_count
+ * Optional. Number of pending requests at the moment this request was sent.
+ * This includes requests waiting to be sent, and those that are inflight.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Bigquery\Storage\V1\Storage::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. Timestamp indicating when the request was sent over the
+ * network, expressed in epoch milliseconds.
+ *
+ * Generated from protobuf field optional int64 send_time_millis = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int|string
+ */
+ public function getSendTimeMillis()
+ {
+ return isset($this->send_time_millis) ? $this->send_time_millis : 0;
+ }
+
+ public function hasSendTimeMillis()
+ {
+ return isset($this->send_time_millis);
+ }
+
+ public function clearSendTimeMillis()
+ {
+ unset($this->send_time_millis);
+ }
+
+ /**
+ * Optional. Timestamp indicating when the request was sent over the
+ * network, expressed in epoch milliseconds.
+ *
+ * Generated from protobuf field optional int64 send_time_millis = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setSendTimeMillis($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->send_time_millis = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Number of pending requests at the moment this request was sent.
+ * This includes requests waiting to be sent, and those that are inflight.
+ *
+ * Generated from protobuf field optional int64 queued_requests_count = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int|string
+ */
+ public function getQueuedRequestsCount()
+ {
+ return isset($this->queued_requests_count) ? $this->queued_requests_count : 0;
+ }
+
+ public function hasQueuedRequestsCount()
+ {
+ return isset($this->queued_requests_count);
+ }
+
+ public function clearQueuedRequestsCount()
+ {
+ unset($this->queued_requests_count);
+ }
+
+ /**
+ * Optional. Number of pending requests at the moment this request was sent.
+ * This includes requests waiting to be sent, and those that are inflight.
+ *
+ * Generated from protobuf field optional int64 queued_requests_count = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setQueuedRequestsCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->queued_requests_count = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/BigQueryStorage/src/V1/ClientStats/WindowStats.php b/BigQueryStorage/src/V1/ClientStats/WindowStats.php
new file mode 100644
index 000000000000..591f43a9482a
--- /dev/null
+++ b/BigQueryStorage/src/V1/ClientStats/WindowStats.php
@@ -0,0 +1,413 @@
+google.cloud.bigquery.storage.v1.ClientStats.WindowStats
+ */
+class WindowStats extends \Google\Protobuf\Internal\Message
+{
+ /**
+ * Optional. The maximum response latency observed in the window, expressed
+ * in milliseconds.
+ *
+ * Generated from protobuf field optional int64 max_response_latency_millis = 1 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $max_response_latency_millis = null;
+ /**
+ * Optional. The average response latency observed in the window, expressed
+ * in milliseconds.
+ *
+ * Generated from protobuf field optional int64 avg_response_latency_millis = 2 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $avg_response_latency_millis = null;
+ /**
+ * Optional. The longest time spent waiting without receiving a response in
+ * the window. This could exceed max_response_latency_millis because the
+ * latter is evaluated only when a response is received. Expressed in
+ * milliseconds.
+ *
+ * Generated from protobuf field optional int64 longest_wait_no_response_millis = 3 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $longest_wait_no_response_millis = null;
+ /**
+ * Optional. How many requests were sent in the window.
+ *
+ * Generated from protobuf field optional int64 requests_sent_count = 4 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $requests_sent_count = null;
+ /**
+ * Optional. How many responses were received in the window.
+ *
+ * Generated from protobuf field optional int64 responses_received_count = 5 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $responses_received_count = null;
+ /**
+ * Optional. How many bytes were sent in the window.
+ *
+ * Generated from protobuf field optional int64 bytes_sent_count = 6 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $bytes_sent_count = null;
+ /**
+ * Optional. Start time of the window interval for which these stats are
+ * aggregated, expressed in epoch milliseconds.
+ *
+ * Generated from protobuf field optional int64 window_start_time_epoch_millis = 7 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $window_start_time_epoch_millis = null;
+ /**
+ * Optional. Duration of the window interval for which these stats are
+ * aggregated, expressed in milliseconds.
+ *
+ * Generated from protobuf field optional int64 window_millis = 8 [(.google.api.field_behavior) = OPTIONAL];
+ */
+ protected $window_millis = null;
+
+ /**
+ * Constructor.
+ *
+ * @param array $data {
+ * Optional. Data for populating the Message object.
+ *
+ * @type int|string $max_response_latency_millis
+ * Optional. The maximum response latency observed in the window, expressed
+ * in milliseconds.
+ * @type int|string $avg_response_latency_millis
+ * Optional. The average response latency observed in the window, expressed
+ * in milliseconds.
+ * @type int|string $longest_wait_no_response_millis
+ * Optional. The longest time spent waiting without receiving a response in
+ * the window. This could exceed max_response_latency_millis because the
+ * latter is evaluated only when a response is received. Expressed in
+ * milliseconds.
+ * @type int|string $requests_sent_count
+ * Optional. How many requests were sent in the window.
+ * @type int|string $responses_received_count
+ * Optional. How many responses were received in the window.
+ * @type int|string $bytes_sent_count
+ * Optional. How many bytes were sent in the window.
+ * @type int|string $window_start_time_epoch_millis
+ * Optional. Start time of the window interval for which these stats are
+ * aggregated, expressed in epoch milliseconds.
+ * @type int|string $window_millis
+ * Optional. Duration of the window interval for which these stats are
+ * aggregated, expressed in milliseconds.
+ * }
+ */
+ public function __construct($data = NULL) {
+ \GPBMetadata\Google\Cloud\Bigquery\Storage\V1\Storage::initOnce();
+ parent::__construct($data);
+ }
+
+ /**
+ * Optional. The maximum response latency observed in the window, expressed
+ * in milliseconds.
+ *
+ * Generated from protobuf field optional int64 max_response_latency_millis = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int|string
+ */
+ public function getMaxResponseLatencyMillis()
+ {
+ return isset($this->max_response_latency_millis) ? $this->max_response_latency_millis : 0;
+ }
+
+ public function hasMaxResponseLatencyMillis()
+ {
+ return isset($this->max_response_latency_millis);
+ }
+
+ public function clearMaxResponseLatencyMillis()
+ {
+ unset($this->max_response_latency_millis);
+ }
+
+ /**
+ * Optional. The maximum response latency observed in the window, expressed
+ * in milliseconds.
+ *
+ * Generated from protobuf field optional int64 max_response_latency_millis = 1 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setMaxResponseLatencyMillis($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->max_response_latency_millis = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The average response latency observed in the window, expressed
+ * in milliseconds.
+ *
+ * Generated from protobuf field optional int64 avg_response_latency_millis = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int|string
+ */
+ public function getAvgResponseLatencyMillis()
+ {
+ return isset($this->avg_response_latency_millis) ? $this->avg_response_latency_millis : 0;
+ }
+
+ public function hasAvgResponseLatencyMillis()
+ {
+ return isset($this->avg_response_latency_millis);
+ }
+
+ public function clearAvgResponseLatencyMillis()
+ {
+ unset($this->avg_response_latency_millis);
+ }
+
+ /**
+ * Optional. The average response latency observed in the window, expressed
+ * in milliseconds.
+ *
+ * Generated from protobuf field optional int64 avg_response_latency_millis = 2 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setAvgResponseLatencyMillis($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->avg_response_latency_millis = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. The longest time spent waiting without receiving a response in
+ * the window. This could exceed max_response_latency_millis because the
+ * latter is evaluated only when a response is received. Expressed in
+ * milliseconds.
+ *
+ * Generated from protobuf field optional int64 longest_wait_no_response_millis = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int|string
+ */
+ public function getLongestWaitNoResponseMillis()
+ {
+ return isset($this->longest_wait_no_response_millis) ? $this->longest_wait_no_response_millis : 0;
+ }
+
+ public function hasLongestWaitNoResponseMillis()
+ {
+ return isset($this->longest_wait_no_response_millis);
+ }
+
+ public function clearLongestWaitNoResponseMillis()
+ {
+ unset($this->longest_wait_no_response_millis);
+ }
+
+ /**
+ * Optional. The longest time spent waiting without receiving a response in
+ * the window. This could exceed max_response_latency_millis because the
+ * latter is evaluated only when a response is received. Expressed in
+ * milliseconds.
+ *
+ * Generated from protobuf field optional int64 longest_wait_no_response_millis = 3 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setLongestWaitNoResponseMillis($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->longest_wait_no_response_millis = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. How many requests were sent in the window.
+ *
+ * Generated from protobuf field optional int64 requests_sent_count = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int|string
+ */
+ public function getRequestsSentCount()
+ {
+ return isset($this->requests_sent_count) ? $this->requests_sent_count : 0;
+ }
+
+ public function hasRequestsSentCount()
+ {
+ return isset($this->requests_sent_count);
+ }
+
+ public function clearRequestsSentCount()
+ {
+ unset($this->requests_sent_count);
+ }
+
+ /**
+ * Optional. How many requests were sent in the window.
+ *
+ * Generated from protobuf field optional int64 requests_sent_count = 4 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setRequestsSentCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->requests_sent_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. How many responses were received in the window.
+ *
+ * Generated from protobuf field optional int64 responses_received_count = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int|string
+ */
+ public function getResponsesReceivedCount()
+ {
+ return isset($this->responses_received_count) ? $this->responses_received_count : 0;
+ }
+
+ public function hasResponsesReceivedCount()
+ {
+ return isset($this->responses_received_count);
+ }
+
+ public function clearResponsesReceivedCount()
+ {
+ unset($this->responses_received_count);
+ }
+
+ /**
+ * Optional. How many responses were received in the window.
+ *
+ * Generated from protobuf field optional int64 responses_received_count = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setResponsesReceivedCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->responses_received_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. How many bytes were sent in the window.
+ *
+ * Generated from protobuf field optional int64 bytes_sent_count = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int|string
+ */
+ public function getBytesSentCount()
+ {
+ return isset($this->bytes_sent_count) ? $this->bytes_sent_count : 0;
+ }
+
+ public function hasBytesSentCount()
+ {
+ return isset($this->bytes_sent_count);
+ }
+
+ public function clearBytesSentCount()
+ {
+ unset($this->bytes_sent_count);
+ }
+
+ /**
+ * Optional. How many bytes were sent in the window.
+ *
+ * Generated from protobuf field optional int64 bytes_sent_count = 6 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setBytesSentCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->bytes_sent_count = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Start time of the window interval for which these stats are
+ * aggregated, expressed in epoch milliseconds.
+ *
+ * Generated from protobuf field optional int64 window_start_time_epoch_millis = 7 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int|string
+ */
+ public function getWindowStartTimeEpochMillis()
+ {
+ return isset($this->window_start_time_epoch_millis) ? $this->window_start_time_epoch_millis : 0;
+ }
+
+ public function hasWindowStartTimeEpochMillis()
+ {
+ return isset($this->window_start_time_epoch_millis);
+ }
+
+ public function clearWindowStartTimeEpochMillis()
+ {
+ unset($this->window_start_time_epoch_millis);
+ }
+
+ /**
+ * Optional. Start time of the window interval for which these stats are
+ * aggregated, expressed in epoch milliseconds.
+ *
+ * Generated from protobuf field optional int64 window_start_time_epoch_millis = 7 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setWindowStartTimeEpochMillis($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->window_start_time_epoch_millis = $var;
+
+ return $this;
+ }
+
+ /**
+ * Optional. Duration of the window interval for which these stats are
+ * aggregated, expressed in milliseconds.
+ *
+ * Generated from protobuf field optional int64 window_millis = 8 [(.google.api.field_behavior) = OPTIONAL];
+ * @return int|string
+ */
+ public function getWindowMillis()
+ {
+ return isset($this->window_millis) ? $this->window_millis : 0;
+ }
+
+ public function hasWindowMillis()
+ {
+ return isset($this->window_millis);
+ }
+
+ public function clearWindowMillis()
+ {
+ unset($this->window_millis);
+ }
+
+ /**
+ * Optional. Duration of the window interval for which these stats are
+ * aggregated, expressed in milliseconds.
+ *
+ * Generated from protobuf field optional int64 window_millis = 8 [(.google.api.field_behavior) = OPTIONAL];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setWindowMillis($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->window_millis = $var;
+
+ return $this;
+ }
+
+}
+
diff --git a/BigQueryStorage/src/V1/ReadRowsRequest.php b/BigQueryStorage/src/V1/ReadRowsRequest.php
index d36c96d41b71..b3b16c592ed2 100644
--- a/BigQueryStorage/src/V1/ReadRowsRequest.php
+++ b/BigQueryStorage/src/V1/ReadRowsRequest.php
@@ -29,6 +29,7 @@ class ReadRowsRequest extends \Google\Protobuf\Internal\Message
* Generated from protobuf field int64 offset = 2;
*/
protected $offset = 0;
+ protected $output_format_serialization_options;
/**
* @param string $readStream Required. Stream to read rows from. Please see
@@ -60,6 +61,9 @@ public static function build(string $readStream, int $offset): self
* The offset requested must be less than the last row read from Read.
* Requesting a larger offset is undefined. If not specified, start reading
* from offset zero.
+ * @type \Google\Cloud\BigQuery\Storage\V1\ArrowSerializationOptions $arrow_serialization_options
+ * Optional. Options specific to the Apache Arrow output format.
+ * This feature is not yet available.
* }
*/
public function __construct($data = NULL) {
@@ -123,5 +127,46 @@ public function setOffset($var)
return $this;
}
+ /**
+ * Optional. Options specific to the Apache Arrow output format.
+ * This feature is not yet available.
+ *
+ * Generated from protobuf field .google.cloud.bigquery.storage.v1.ArrowSerializationOptions arrow_serialization_options = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @return \Google\Cloud\BigQuery\Storage\V1\ArrowSerializationOptions|null
+ */
+ public function getArrowSerializationOptions()
+ {
+ return $this->readOneof(5);
+ }
+
+ public function hasArrowSerializationOptions()
+ {
+ return $this->hasOneof(5);
+ }
+
+ /**
+ * Optional. Options specific to the Apache Arrow output format.
+ * This feature is not yet available.
+ *
+ * Generated from protobuf field .google.cloud.bigquery.storage.v1.ArrowSerializationOptions arrow_serialization_options = 5 [(.google.api.field_behavior) = OPTIONAL];
+ * @param \Google\Cloud\BigQuery\Storage\V1\ArrowSerializationOptions $var
+ * @return $this
+ */
+ public function setArrowSerializationOptions($var)
+ {
+ GPBUtil::checkMessage($var, \Google\Cloud\BigQuery\Storage\V1\ArrowSerializationOptions::class);
+ $this->writeOneof(5, $var);
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function getOutputFormatSerializationOptions()
+ {
+ return $this->whichOneof("output_format_serialization_options");
+ }
+
}
diff --git a/BigQueryStorage/src/V1/ReadRowsResponse.php b/BigQueryStorage/src/V1/ReadRowsResponse.php
index f49fe2c2d7fd..f083aeae6c99 100644
--- a/BigQueryStorage/src/V1/ReadRowsResponse.php
+++ b/BigQueryStorage/src/V1/ReadRowsResponse.php
@@ -54,6 +54,14 @@ class ReadRowsResponse extends \Google\Protobuf\Internal\Message
* Generated from protobuf field optional int64 uncompressed_byte_size = 9 [(.google.api.field_behavior) = OPTIONAL];
*/
protected $uncompressed_byte_size = null;
+ /**
+ * Output only. The total estimated number of rows in the query results.
+ * Only populated when reading data from a BigQuery job.
+ * This feature is not yet available.
+ *
+ * Generated from protobuf field optional int64 total_estimated_row_count = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ */
+ protected $total_estimated_row_count = null;
protected $rows;
protected $schema;
@@ -93,6 +101,10 @@ class ReadRowsResponse extends \Google\Protobuf\Internal\Message
* follows is not compressed, which can be useful for cases where compression
* does not yield appreciable savings. When uncompressed_byte_size is not
* greater than 0, the client should skip decompression.
+ * @type int|string $total_estimated_row_count
+ * Output only. The total estimated number of rows in the query results.
+ * Only populated when reading data from a BigQuery job.
+ * This feature is not yet available.
* }
*/
public function __construct($data = NULL) {
@@ -386,6 +398,46 @@ public function setUncompressedByteSize($var)
return $this;
}
+ /**
+ * Output only. The total estimated number of rows in the query results.
+ * Only populated when reading data from a BigQuery job.
+ * This feature is not yet available.
+ *
+ * Generated from protobuf field optional int64 total_estimated_row_count = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @return int|string
+ */
+ public function getTotalEstimatedRowCount()
+ {
+ return isset($this->total_estimated_row_count) ? $this->total_estimated_row_count : 0;
+ }
+
+ public function hasTotalEstimatedRowCount()
+ {
+ return isset($this->total_estimated_row_count);
+ }
+
+ public function clearTotalEstimatedRowCount()
+ {
+ unset($this->total_estimated_row_count);
+ }
+
+ /**
+ * Output only. The total estimated number of rows in the query results.
+ * Only populated when reading data from a BigQuery job.
+ * This feature is not yet available.
+ *
+ * Generated from protobuf field optional int64 total_estimated_row_count = 10 [(.google.api.field_behavior) = OUTPUT_ONLY];
+ * @param int|string $var
+ * @return $this
+ */
+ public function setTotalEstimatedRowCount($var)
+ {
+ GPBUtil::checkInt64($var);
+ $this->total_estimated_row_count = $var;
+
+ return $this;
+ }
+
/**
* @return string
*/
diff --git a/BigQueryStorage/tests/Unit/V1/Client/BigQueryReadClientTest.php b/BigQueryStorage/tests/Unit/V1/Client/BigQueryReadClientTest.php
index 31f0f0b58ae0..70c3c9d5c4dd 100644
--- a/BigQueryStorage/tests/Unit/V1/Client/BigQueryReadClientTest.php
+++ b/BigQueryStorage/tests/Unit/V1/Client/BigQueryReadClientTest.php
@@ -157,21 +157,27 @@ public function readRowsTest()
// Mock response
$rowCount = 1340416618;
$uncompressedByteSize = 2094376525;
+ $totalEstimatedRowCount = 1623220052;
$expectedResponse = new ReadRowsResponse();
$expectedResponse->setRowCount($rowCount);
$expectedResponse->setUncompressedByteSize($uncompressedByteSize);
+ $expectedResponse->setTotalEstimatedRowCount($totalEstimatedRowCount);
$transport->addResponse($expectedResponse);
$rowCount2 = 349815907;
$uncompressedByteSize2 = 1643824294;
+ $totalEstimatedRowCount2 = 841338529;
$expectedResponse2 = new ReadRowsResponse();
$expectedResponse2->setRowCount($rowCount2);
$expectedResponse2->setUncompressedByteSize($uncompressedByteSize2);
+ $expectedResponse2->setTotalEstimatedRowCount($totalEstimatedRowCount2);
$transport->addResponse($expectedResponse2);
$rowCount3 = 349815906;
$uncompressedByteSize3 = 1643824295;
+ $totalEstimatedRowCount3 = 841338528;
$expectedResponse3 = new ReadRowsResponse();
$expectedResponse3->setRowCount($rowCount3);
$expectedResponse3->setUncompressedByteSize($uncompressedByteSize3);
+ $expectedResponse3->setTotalEstimatedRowCount($totalEstimatedRowCount3);
$transport->addResponse($expectedResponse3);
// Mock request
$formattedReadStream = $gapicClient->readStreamName('[PROJECT]', '[LOCATION]', '[SESSION]', '[STREAM]');