From 5145b76b8a41b71a7b3c06373959c12f3a22014b Mon Sep 17 00:00:00 2001 From: Taras Madan Date: Mon, 24 Jun 2024 14:30:25 +0200 Subject: vendor: add bigquery client library --- vendor/cloud.google.com/go/bigquery/CHANGES.md | 891 + vendor/cloud.google.com/go/bigquery/LICENSE | 202 + vendor/cloud.google.com/go/bigquery/README.md | 47 + vendor/cloud.google.com/go/bigquery/arrow.go | 286 + vendor/cloud.google.com/go/bigquery/bigquery.go | 310 + .../cloud.google.com/go/bigquery/bigquery.replay | 28376 +++++++++++++++++++ vendor/cloud.google.com/go/bigquery/copy.go | 143 + vendor/cloud.google.com/go/bigquery/dataset.go | 982 + vendor/cloud.google.com/go/bigquery/doc.go | 321 + vendor/cloud.google.com/go/bigquery/error.go | 106 + vendor/cloud.google.com/go/bigquery/external.go | 576 + vendor/cloud.google.com/go/bigquery/extract.go | 158 + vendor/cloud.google.com/go/bigquery/file.go | 167 + vendor/cloud.google.com/go/bigquery/gcs.go | 81 + vendor/cloud.google.com/go/bigquery/iam.go | 142 + vendor/cloud.google.com/go/bigquery/inserter.go | 249 + .../go/bigquery/internal/query/order.go | 67 + .../go/bigquery/internal/version.go | 19 + .../cloud.google.com/go/bigquery/intervalvalue.go | 321 + vendor/cloud.google.com/go/bigquery/iterator.go | 413 + vendor/cloud.google.com/go/bigquery/job.go | 1160 + vendor/cloud.google.com/go/bigquery/load.go | 240 + vendor/cloud.google.com/go/bigquery/model.go | 304 + vendor/cloud.google.com/go/bigquery/nulls.go | 410 + vendor/cloud.google.com/go/bigquery/params.go | 683 + vendor/cloud.google.com/go/bigquery/query.go | 526 + vendor/cloud.google.com/go/bigquery/random.go | 56 + vendor/cloud.google.com/go/bigquery/routine.go | 542 + vendor/cloud.google.com/go/bigquery/schema.go | 704 + vendor/cloud.google.com/go/bigquery/standardsql.go | 231 + .../go/bigquery/storage/apiv1/auxiliary.go | 17 + .../storage/apiv1/big_query_read_client.go | 323 + .../storage/apiv1/big_query_write_client.go | 458 + .../go/bigquery/storage/apiv1/doc.go | 121 + .../go/bigquery/storage/apiv1/info.go | 33 + .../storage/apiv1/storagepb/annotations.pb.go | 119 + .../bigquery/storage/apiv1/storagepb/arrow.pb.go | 396 + .../go/bigquery/storage/apiv1/storagepb/avro.pb.go | 332 + .../storage/apiv1/storagepb/protobuf.pb.go | 257 + .../bigquery/storage/apiv1/storagepb/storage.pb.go | 3496 +++ .../bigquery/storage/apiv1/storagepb/stream.pb.go | 1303 + .../bigquery/storage/apiv1/storagepb/table.pb.go | 672 + .../go/bigquery/storage/apiv1/version.go | 23 + .../cloud.google.com/go/bigquery/storage_client.go | 174 + .../go/bigquery/storage_iterator.go | 371 + vendor/cloud.google.com/go/bigquery/table.go | 1262 + vendor/cloud.google.com/go/bigquery/value.go | 993 + vendor/cloud.google.com/go/internal/uid/uid.go | 149 + 48 files changed, 49212 insertions(+) create mode 100644 vendor/cloud.google.com/go/bigquery/CHANGES.md create mode 100644 vendor/cloud.google.com/go/bigquery/LICENSE create mode 100644 vendor/cloud.google.com/go/bigquery/README.md create mode 100644 vendor/cloud.google.com/go/bigquery/arrow.go create mode 100644 vendor/cloud.google.com/go/bigquery/bigquery.go create mode 100644 vendor/cloud.google.com/go/bigquery/bigquery.replay create mode 100644 vendor/cloud.google.com/go/bigquery/copy.go create mode 100644 vendor/cloud.google.com/go/bigquery/dataset.go create mode 100644 vendor/cloud.google.com/go/bigquery/doc.go create mode 100644 vendor/cloud.google.com/go/bigquery/error.go create mode 100644 vendor/cloud.google.com/go/bigquery/external.go create mode 100644 vendor/cloud.google.com/go/bigquery/extract.go create mode 100644 vendor/cloud.google.com/go/bigquery/file.go create mode 100644 vendor/cloud.google.com/go/bigquery/gcs.go create mode 100644 vendor/cloud.google.com/go/bigquery/iam.go create mode 100644 vendor/cloud.google.com/go/bigquery/inserter.go create mode 100644 vendor/cloud.google.com/go/bigquery/internal/query/order.go create mode 100644 vendor/cloud.google.com/go/bigquery/internal/version.go create mode 100644 vendor/cloud.google.com/go/bigquery/intervalvalue.go create mode 100644 vendor/cloud.google.com/go/bigquery/iterator.go create mode 100644 vendor/cloud.google.com/go/bigquery/job.go create mode 100644 vendor/cloud.google.com/go/bigquery/load.go create mode 100644 vendor/cloud.google.com/go/bigquery/model.go create mode 100644 vendor/cloud.google.com/go/bigquery/nulls.go create mode 100644 vendor/cloud.google.com/go/bigquery/params.go create mode 100644 vendor/cloud.google.com/go/bigquery/query.go create mode 100644 vendor/cloud.google.com/go/bigquery/random.go create mode 100644 vendor/cloud.google.com/go/bigquery/routine.go create mode 100644 vendor/cloud.google.com/go/bigquery/schema.go create mode 100644 vendor/cloud.google.com/go/bigquery/standardsql.go create mode 100644 vendor/cloud.google.com/go/bigquery/storage/apiv1/auxiliary.go create mode 100644 vendor/cloud.google.com/go/bigquery/storage/apiv1/big_query_read_client.go create mode 100644 vendor/cloud.google.com/go/bigquery/storage/apiv1/big_query_write_client.go create mode 100644 vendor/cloud.google.com/go/bigquery/storage/apiv1/doc.go create mode 100644 vendor/cloud.google.com/go/bigquery/storage/apiv1/info.go create mode 100644 vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/annotations.pb.go create mode 100644 vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/arrow.pb.go create mode 100644 vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/avro.pb.go create mode 100644 vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/protobuf.pb.go create mode 100644 vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/storage.pb.go create mode 100644 vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/stream.pb.go create mode 100644 vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/table.pb.go create mode 100644 vendor/cloud.google.com/go/bigquery/storage/apiv1/version.go create mode 100644 vendor/cloud.google.com/go/bigquery/storage_client.go create mode 100644 vendor/cloud.google.com/go/bigquery/storage_iterator.go create mode 100644 vendor/cloud.google.com/go/bigquery/table.go create mode 100644 vendor/cloud.google.com/go/bigquery/value.go create mode 100644 vendor/cloud.google.com/go/internal/uid/uid.go (limited to 'vendor/cloud.google.com') diff --git a/vendor/cloud.google.com/go/bigquery/CHANGES.md b/vendor/cloud.google.com/go/bigquery/CHANGES.md new file mode 100644 index 000000000..bd19d2656 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/CHANGES.md @@ -0,0 +1,891 @@ +# Changes + + + + +## [1.60.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.59.1...bigquery/v1.60.0) (2024-03-27) + + +### Features + +* **bigquery/analyticshub:** Support selective sharing on data clean room Listings ([a3bb7c0](https://github.com/googleapis/google-cloud-go/commit/a3bb7c07ba570f26c6eb073ab3275487784547d0)) +* **bigquery/datatransfer:** Add UnenrollDataSources API which gives users a programmatic way to unenroll data sources ([a86aa8e](https://github.com/googleapis/google-cloud-go/commit/a86aa8e962b77d152ee6cdd433ad94967150ef21)) +* **bigquery/storage:** Add the RANGE type to the google.cloud.bigquery.storage.v1.TableFieldSchema ([0195fe9](https://github.com/googleapis/google-cloud-go/commit/0195fe9292274ff9d86c71079a8e96ed2e5f9331)) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** Fix flowcontrol refund on error ([#9649](https://github.com/googleapis/google-cloud-go/issues/9649)) ([a07bf1d](https://github.com/googleapis/google-cloud-go/commit/a07bf1d463416d8a4bbfbbd7e720653962fb27d5)) +* **bigquery/storage/managedwriter:** Retry improvements ([#9642](https://github.com/googleapis/google-cloud-go/issues/9642)) ([48a9258](https://github.com/googleapis/google-cloud-go/commit/48a9258954b9be40d74656dc12fe46f2bbc19bda)) +* **bigquery:** Update protobuf dep to v1.33.0 ([30b038d](https://github.com/googleapis/google-cloud-go/commit/30b038d8cac0b8cd5dd4761c87f3f298760dd33a)) + + +### Documentation + +* **bigquery/datatransfer:** Update unenrollDataSources API documentation ([#9449](https://github.com/googleapis/google-cloud-go/issues/9449)) ([da644cc](https://github.com/googleapis/google-cloud-go/commit/da644ccc6f154d41b8bedf21f4c4cc8aa9ce41bf)) +* **bigquery/storage:** Mark BigQueryWrite v1beta2 as deprecated ([d130d86](https://github.com/googleapis/google-cloud-go/commit/d130d861f55d137a2803340c2e11da3589669cb8)) + +## [1.59.1](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.59.0...bigquery/v1.59.1) (2024-02-12) + + +### Bug Fixes + +* **bigquery:** Align return time.Time values to UTC ([#9411](https://github.com/googleapis/google-cloud-go/issues/9411)) ([4ac005d](https://github.com/googleapis/google-cloud-go/commit/4ac005d77f1e19981c7e1ab1cebec1302e0840ca)) + +## [1.59.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.58.0...bigquery/v1.59.0) (2024-02-06) + + +### Features + +* **bigquery:** Add ExportDataStatstics to QueryStatistics ([#9371](https://github.com/googleapis/google-cloud-go/issues/9371)) ([261c8d9](https://github.com/googleapis/google-cloud-go/commit/261c8d944b53ac8953ea7d771c4bb50e4078d508)) +* **bigquery:** Switch all timestamp representations to int64 usec ([#9368](https://github.com/googleapis/google-cloud-go/issues/9368)) ([8c1fb7d](https://github.com/googleapis/google-cloud-go/commit/8c1fb7d4728ebc3b21cb0d601952966dca9cd1e8)) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** Resolve data races ([#9360](https://github.com/googleapis/google-cloud-go/issues/9360)) ([fa31ec0](https://github.com/googleapis/google-cloud-go/commit/fa31ec0c0f04302a9713a9b1d3228bda2ba135c6)) +* **bigquery:** Enable universe domain resolution options ([fd1d569](https://github.com/googleapis/google-cloud-go/commit/fd1d56930fa8a747be35a224611f4797b8aeb698)) +* **bigquery:** Support more timestamp formats for query param ([#9236](https://github.com/googleapis/google-cloud-go/issues/9236)) ([cc98509](https://github.com/googleapis/google-cloud-go/commit/cc98509fc7961e3d3619b837d13e69f9621386e8)), refs [#9221](https://github.com/googleapis/google-cloud-go/issues/9221) + +## [1.58.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.57.1...bigquery/v1.58.0) (2024-01-18) + + +### Features + +* **bigquery/storage/managedwriter:** Improve schema comparison stability ([#9241](https://github.com/googleapis/google-cloud-go/issues/9241)) ([faccb68](https://github.com/googleapis/google-cloud-go/commit/faccb68deeb18ad51875042242a1141285448bbb)) +* **bigquery/storage:** Add ability to request compressed ReadRowsResponse rows ([c3f1174](https://github.com/googleapis/google-cloud-go/commit/c3f1174dc29d1c00d514a69590bd83f9b08a60d1)) +* **bigquery:** Add DataGovernanceType to routines ([#8990](https://github.com/googleapis/google-cloud-go/issues/8990)) ([57491ae](https://github.com/googleapis/google-cloud-go/commit/57491ae3b7bbcee2abe1064dfb4f18cb3a511265)) +* **bigquery:** Add schema support for RANGE type ([#9050](https://github.com/googleapis/google-cloud-go/issues/9050)) ([477ccee](https://github.com/googleapis/google-cloud-go/commit/477ccee8eb210a0e0f9c71513318e0fbbd08928c)) +* **bigquery:** Add support for AllowNonIncrementalDefinition and Staleness on MaterializedView ([#8673](https://github.com/googleapis/google-cloud-go/issues/8673)) ([6ec2bb2](https://github.com/googleapis/google-cloud-go/commit/6ec2bb218335acf791af859852fc6c8e9bea7a08)) +* **bigquery:** Add table resource tags support ([#9084](https://github.com/googleapis/google-cloud-go/issues/9084)) ([3569cc2](https://github.com/googleapis/google-cloud-go/commit/3569cc27b3357c3f62ccfae1670a1bf6383dee9a)) +* **bigquery:** Expose query id on row iterator if available ([#9224](https://github.com/googleapis/google-cloud-go/issues/9224)) ([bbff8ac](https://github.com/googleapis/google-cloud-go/commit/bbff8ac817fb95af219c588bdadc0ca1784c5c0c)) + + +### Documentation + +* **bigquery/storage/managedwriter:** Add documentation for ingesting JSON to a ManagedStream ([#9137](https://github.com/googleapis/google-cloud-go/issues/9137)) ([cae54ed](https://github.com/googleapis/google-cloud-go/commit/cae54ed31548e6f17f3b6bc217bb117723f04e15)) +* **bigquery:** Update package docs to show query parameterization ([#8965](https://github.com/googleapis/google-cloud-go/issues/8965)) ([cc76ab3](https://github.com/googleapis/google-cloud-go/commit/cc76ab35c25a672ed3255c0b26a99bef2cb81868)) + +## [1.57.1](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.57.0...bigquery/v1.57.1) (2023-11-01) + + +### Bug Fixes + +* **bigquery:** Correct deps issue ([#8958](https://github.com/googleapis/google-cloud-go/issues/8958)) ([abd6ca7](https://github.com/googleapis/google-cloud-go/commit/abd6ca7e4d59595abe6ffb2abf738b445955d0ce)) + +## [1.57.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.56.0...bigquery/v1.57.0) (2023-10-30) + + +### Features + +* **bigquery/biglake:** Promote to GA ([e864fbc](https://github.com/googleapis/google-cloud-go/commit/e864fbcbc4f0a49dfdb04850b07451074c57edc8)) +* **bigquery/storage/managedwriter:** Support default value controls ([#8686](https://github.com/googleapis/google-cloud-go/issues/8686)) ([dfa8e22](https://github.com/googleapis/google-cloud-go/commit/dfa8e22edf560211ae2a2ebf1f9a23b86887c7be)) +* **bigquery:** Expose Apache Arrow data through ArrowIterator ([#8506](https://github.com/googleapis/google-cloud-go/issues/8506)) ([c8e7692](https://github.com/googleapis/google-cloud-go/commit/c8e76923621b379fb7deb6dfb944011af1d980bd)), refs [#8100](https://github.com/googleapis/google-cloud-go/issues/8100) +* **bigquery:** Introduce query preview features ([#8653](https://github.com/googleapis/google-cloud-go/issues/8653)) ([f29683b](https://github.com/googleapis/google-cloud-go/commit/f29683bcd06567e4fc2d404f53bedbea5b5f0f90)) + + +### Bug Fixes + +* **bigquery:** Handle storage read api Recv call errors ([#8666](https://github.com/googleapis/google-cloud-go/issues/8666)) ([c73963f](https://github.com/googleapis/google-cloud-go/commit/c73963f64ef667daa8a33a5a4cc2156818fc6914)) +* **bigquery:** Update golang.org/x/net to v0.17.0 ([174da47](https://github.com/googleapis/google-cloud-go/commit/174da47254fefb12921bbfc65b7829a453af6f5d)) +* **bigquery:** Update grpc-go to v1.56.3 ([343cea8](https://github.com/googleapis/google-cloud-go/commit/343cea8c43b1e31ae21ad50ad31d3b0b60143f8c)) +* **bigquery:** Update grpc-go to v1.59.0 ([81a97b0](https://github.com/googleapis/google-cloud-go/commit/81a97b06cb28b25432e4ece595c55a9857e960b7)) + +## [1.56.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.55.0...bigquery/v1.56.0) (2023-10-05) + + +### Features + +* **bigquery/analyticshub:** Add Subscription resource and RPCs ([#8612](https://github.com/googleapis/google-cloud-go/issues/8612)) ([9992249](https://github.com/googleapis/google-cloud-go/commit/999224951d586513bd382483326b455c953a14f3)) +* **bigquery:** Add external dataset reference ([#8545](https://github.com/googleapis/google-cloud-go/issues/8545)) ([1001acf](https://github.com/googleapis/google-cloud-go/commit/1001acf6ac894a7d9945b7d204ad55aa7b162909)) +* **bigquery:** Add media options to LoadConfig ([#8640](https://github.com/googleapis/google-cloud-go/issues/8640)) ([62baf56](https://github.com/googleapis/google-cloud-go/commit/62baf569c052a8c565710533ba50a1f5df8176dd)) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** Automatic retry for multiplex test ([#8601](https://github.com/googleapis/google-cloud-go/issues/8601)) ([6ef1945](https://github.com/googleapis/google-cloud-go/commit/6ef1945a837430afcd195affd661768817cdc40b)) +* **bigquery:** Dependency detection on proto conversion ([#8566](https://github.com/googleapis/google-cloud-go/issues/8566)) ([763ab5d](https://github.com/googleapis/google-cloud-go/commit/763ab5dbd466fd0450dcd46e38c75e87cbf6c49c)) + + +### Documentation + +* **bigquery/datatransfer:** Update transferConfig.name description to indicate that it supports both formats ([0449518](https://github.com/googleapis/google-cloud-go/commit/0449518f8396cc0280c0f3303c103edcee34016b)) + +## [1.55.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.54.0...bigquery/v1.55.0) (2023-09-11) + + +### Features + +* **bigquery/datapolicies:** Support using custom UDF in the data policy ([20725c8](https://github.com/googleapis/google-cloud-go/commit/20725c86c970ad24efa18c056fc3aa71dc3a4f03)) +* **bigquery:** Set PreferredMinStreamCount when creating read session ([#8476](https://github.com/googleapis/google-cloud-go/issues/8476)) ([22e095a](https://github.com/googleapis/google-cloud-go/commit/22e095adea77a2bc3900f5d5c57715d4a9ed4fcb)), refs [#8432](https://github.com/googleapis/google-cloud-go/issues/8432) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** Address possible deadlocks ([#8507](https://github.com/googleapis/google-cloud-go/issues/8507)) ([48b08bf](https://github.com/googleapis/google-cloud-go/commit/48b08bf47494052a2652a3ab519de76fddc74c8a)) +* **bigquery:** Field descriptor proto name should not be lowercase ([#8495](https://github.com/googleapis/google-cloud-go/issues/8495)) ([4287e4b](https://github.com/googleapis/google-cloud-go/commit/4287e4bed40e69203ddb55bd754e3adbf269ba9e)) +* **bigquery:** Value for datasetID on foreign keys ([#8447](https://github.com/googleapis/google-cloud-go/issues/8447)) ([fa6e827](https://github.com/googleapis/google-cloud-go/commit/fa6e827a5997fb7abe97375ea6abb7d2fc71047d)), refs [#8442](https://github.com/googleapis/google-cloud-go/issues/8442) + +## [1.54.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.53.0...bigquery/v1.54.0) (2023-08-17) + + +### Features + +* **bigquery/biglake:** Start generating apiv1 and apiv1alpha1 ([#8433](https://github.com/googleapis/google-cloud-go/issues/8433)) ([916f779](https://github.com/googleapis/google-cloud-go/commit/916f779a3513b2532d2e0fbd15bfd381ae3efeb5)) +* **bigquery/datatransfer:** Add EncryptionConfiguration to TransferConfig ([e3f8c89](https://github.com/googleapis/google-cloud-go/commit/e3f8c89429a207c05fee36d5d93efe76f9e29efe)) +* **bigquery/storage/managedwriter:** Refine connection metrics ([#8324](https://github.com/googleapis/google-cloud-go/issues/8324)) ([54fcf36](https://github.com/googleapis/google-cloud-go/commit/54fcf36fe7e26d6e3d11deec19f56e92ceb87d34)) +* **bigquery/storage:** Add beta2 deprecation message ([b3dbdde](https://github.com/googleapis/google-cloud-go/commit/b3dbdde48ddfa215c3c3bb110e0051fd8158f451)) +* **bigquery/storage:** Add default_missing_value_interpretation field; indicate KMS_SERVICE_ERROR is retryable ([b3dbdde](https://github.com/googleapis/google-cloud-go/commit/b3dbdde48ddfa215c3c3bb110e0051fd8158f451)) +* **bigquery:** Add ProjectID to JobIDConfig ([#8405](https://github.com/googleapis/google-cloud-go/issues/8405)) ([7fafd80](https://github.com/googleapis/google-cloud-go/commit/7fafd805327a0734e1602a597c2ded09a860f405)) + + +### Bug Fixes + +* **bigquery/datapolicies:** Sync the new PredefinedEpxression types to the client library ([fcb41cc](https://github.com/googleapis/google-cloud-go/commit/fcb41cc1d2435452ee78314c1b0362e3f21ae637)) +* **bigquery:** Use JobFromProject for storage iterator ([#8372](https://github.com/googleapis/google-cloud-go/issues/8372)) ([bfbf18c](https://github.com/googleapis/google-cloud-go/commit/bfbf18cb373cd6a88a22eec8db7033f6678df755)) + + +### Documentation + +* **bigquery/storage/managedwriter:** Augment context usage in package docs ([#8334](https://github.com/googleapis/google-cloud-go/issues/8334)) ([b30a7f4](https://github.com/googleapis/google-cloud-go/commit/b30a7f4a520c358eb71e1378b98e7413c2ea7f81)) +* **bigquery:** Improve RowIterator docs and out of process pagination with Storage API ([#8419](https://github.com/googleapis/google-cloud-go/issues/8419)) ([40f8f80](https://github.com/googleapis/google-cloud-go/commit/40f8f809d9ad1e6d2d0f6207cdf38428c306cb66)) + +## [1.53.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.52.0...bigquery/v1.53.0) (2023-07-24) + + +### Features + +* **bigquery/analyticshub:** Promote to GA ([130c571](https://github.com/googleapis/google-cloud-go/commit/130c5713dcbac7f670cb92ea113dd53d8029c960)) +* **bigquery/connection:** Add support for Salesforce connections, which are usable only by allowlisted partners ([bac978a](https://github.com/googleapis/google-cloud-go/commit/bac978ace43bb58db7c0b1475e41c8fdf8c49a29)) +* **bigquery/datapolicies:** Promote to GA ([130c571](https://github.com/googleapis/google-cloud-go/commit/130c5713dcbac7f670cb92ea113dd53d8029c960)) +* **bigquery/storage:** Add ResourceExhausted to retryable error for Write API unary calls ([#8214](https://github.com/googleapis/google-cloud-go/issues/8214)) ([8ff13bf](https://github.com/googleapis/google-cloud-go/commit/8ff13bf87397ad524019268c1146e44f3c1cd0e6)) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** Context refactoring ([#8275](https://github.com/googleapis/google-cloud-go/issues/8275)) ([c4104ea](https://github.com/googleapis/google-cloud-go/commit/c4104eaab0d7291c15aba37b78e71ce3cbb9f77a)) + +## [1.52.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.51.2...bigquery/v1.52.0) (2023-06-23) + + +### Features + +* **bigquery/storage:** Add estimated physical file sizes to ReadAPI v1 ([94ea341](https://github.com/googleapis/google-cloud-go/commit/94ea3410e233db6040a7cb0a931948f1e3bb4c9a)) +* **bigquery/storage:** Add table sampling to ReadAPI v1 ([ca94e27](https://github.com/googleapis/google-cloud-go/commit/ca94e2724f9e2610b46aefd0a3b5ddc06102e91b)) +* **bigquery:** Support for tables primary and foreign keys ([#8055](https://github.com/googleapis/google-cloud-go/issues/8055)) ([93d6a1a](https://github.com/googleapis/google-cloud-go/commit/93d6a1a1a3bde8d3519acc2b7e77bf8b7ba1678a)) +* **bigquery:** Update all direct dependencies ([b340d03](https://github.com/googleapis/google-cloud-go/commit/b340d030f2b52a4ce48846ce63984b28583abde6)) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** Correct reconnection logic ([#8164](https://github.com/googleapis/google-cloud-go/issues/8164)) ([a67d53d](https://github.com/googleapis/google-cloud-go/commit/a67d53ddf13b7d382d4c7856cafb068919021912)) +* **bigquery:** REST query UpdateMask bug ([df52820](https://github.com/googleapis/google-cloud-go/commit/df52820b0e7721954809a8aa8700b93c5662dc9b)) +* **bigquery:** RowIterator.Schema not filled when using Storage Read API ([#7671](https://github.com/googleapis/google-cloud-go/issues/7671)) ([31040e8](https://github.com/googleapis/google-cloud-go/commit/31040e8a7989b143c0c3c3f3e31c4a9dfbba8094)) + +## [1.51.2](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.51.1...bigquery/v1.51.2) (2023-05-08) + + +### Bug Fixes + +* **bigquery:** Update grpc to v1.55.0 ([1147ce0](https://github.com/googleapis/google-cloud-go/commit/1147ce02a990276ca4f8ab7a1ab65c14da4450ef)) + +## [1.51.1](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.51.0...bigquery/v1.51.1) (2023-05-04) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** Schema evolution improvements ([#7838](https://github.com/googleapis/google-cloud-go/issues/7838)) ([49a1621](https://github.com/googleapis/google-cloud-go/commit/49a1621254cc9cc16cbcc2ca779979edfd2565ab)) +* **bigquery:** Upgrade arrow to v12 to fix build error ([#7870](https://github.com/googleapis/google-cloud-go/issues/7870)) ([402e365](https://github.com/googleapis/google-cloud-go/commit/402e3651c18b9e5b73529e9a8f9bdeac71323875)) + + +### Documentation + +* **bigquery/storage/managedwriter:** Improve tuning guidance ([#7848](https://github.com/googleapis/google-cloud-go/issues/7848)) ([ca2184c](https://github.com/googleapis/google-cloud-go/commit/ca2184c8e7094294479665ca02ae9b29c21b09aa)) + +## [1.51.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.50.0...bigquery/v1.51.0) (2023-04-17) + + +### Features + +* **bigquery/storage/managedwriter:** Expose connection multiplexing as experimental ([#7673](https://github.com/googleapis/google-cloud-go/issues/7673)) ([3b8bfb4](https://github.com/googleapis/google-cloud-go/commit/3b8bfb44a237fc0696e77a47c5a8305caa5ec64b)) +* **bigquery:** Add Iceberg as DataFormat option. ([#7155](https://github.com/googleapis/google-cloud-go/issues/7155)) ([7a9e211](https://github.com/googleapis/google-cloud-go/commit/7a9e21121ca8debffe11fe16d1b96b0d969e11ac)) +* **bigquery:** Expose dataset MaxTimeTravelHours ([#7706](https://github.com/googleapis/google-cloud-go/issues/7706)) ([22a666c](https://github.com/googleapis/google-cloud-go/commit/22a666c766fa4565ee120574709b345e7fc37c5f)) + + +### Bug Fixes + +* **bigquery:** Respect context during query execution ([#7693](https://github.com/googleapis/google-cloud-go/issues/7693)) ([56772f5](https://github.com/googleapis/google-cloud-go/commit/56772f50217574e6776efeefef767c16e374e593)) + +## [1.50.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.49.0...bigquery/v1.50.0) (2023-04-03) + + +### Features + +* **bigquery/connection:** Add spark connection properties type ([#7570](https://github.com/googleapis/google-cloud-go/issues/7570)) ([499b489](https://github.com/googleapis/google-cloud-go/commit/499b489d8d6bc8db203c864db97f1462bbeff3d2)) +* **bigquery/migration:** Add request_source field and update formatting ([#7586](https://github.com/googleapis/google-cloud-go/issues/7586)) ([c967961](https://github.com/googleapis/google-cloud-go/commit/c967961ed95750e173af0193ec8d0974471f43ff)) +* **bigquery/reservation:** Add edition/autoscale related fields ([#7608](https://github.com/googleapis/google-cloud-go/issues/7608)) ([2b7bb66](https://github.com/googleapis/google-cloud-go/commit/2b7bb662eb00671b8ee933766f4254f897131a7c)) +* **bigquery/storage/managedwriter:** Decouple connections and writers ([#7314](https://github.com/googleapis/google-cloud-go/issues/7314)) ([7d085b4](https://github.com/googleapis/google-cloud-go/commit/7d085b4b25a29ff1a81164409fc68b8bcb5eacc4)) +* **bigquery/storage/managedwriter:** Introduce location routing header ([#7663](https://github.com/googleapis/google-cloud-go/issues/7663)) ([cf06802](https://github.com/googleapis/google-cloud-go/commit/cf068024f1066ee391191066039d7ba2668dd3f4)) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** Fix option propagation ([#7669](https://github.com/googleapis/google-cloud-go/issues/7669)) ([f684e16](https://github.com/googleapis/google-cloud-go/commit/f684e1610c51311c597763b5d1447c178173940a)) + + +### Documentation + +* **bigquery/reservation:** Mention that some fields are deprecated ([597ea0f](https://github.com/googleapis/google-cloud-go/commit/597ea0fe09bcea04e884dffe78add850edb2120d)) + +## [1.49.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.48.0...bigquery/v1.49.0) (2023-03-16) + + +### Features + +* **bigquery:** Add support for storage billing model ([#7510](https://github.com/googleapis/google-cloud-go/issues/7510)) ([0132ca9](https://github.com/googleapis/google-cloud-go/commit/0132ca9e43f979d0e164b31a1fde203694311b43)), refs [#6978](https://github.com/googleapis/google-cloud-go/issues/6978) +* **bigquery:** Update iam and longrunning deps ([91a1f78](https://github.com/googleapis/google-cloud-go/commit/91a1f784a109da70f63b96414bba8a9b4254cddd)) + +## [1.48.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.47.0...bigquery/v1.48.0) (2023-03-01) + + +### Features + +* **bigquery/connection:** Add cloud spanner connection properties - serverless analytics ([#7487](https://github.com/googleapis/google-cloud-go/issues/7487)) ([14771b1](https://github.com/googleapis/google-cloud-go/commit/14771b146b7add234183d0884ac822b2f05af0e5)) +* **bigquery/storage/managedwriter:** Mark managedwriter as GA ([#6804](https://github.com/googleapis/google-cloud-go/issues/6804)) ([3d3eeda](https://github.com/googleapis/google-cloud-go/commit/3d3eedacbaa209ac63f9ada17074620585d03726)) + +## [1.47.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.46.0...bigquery/v1.47.0) (2023-02-22) + + +### Features + +* **bigquery/storage:** Add default_value_expression to TableFieldSchema ([#7400](https://github.com/googleapis/google-cloud-go/issues/7400)) ([1244b3f](https://github.com/googleapis/google-cloud-go/commit/1244b3f63338ffe7af9051fd368b6b81ca63ff37)) +* **bigquery:** Add support for session in load jobs ([#7418](https://github.com/googleapis/google-cloud-go/issues/7418)) ([f9ff2ca](https://github.com/googleapis/google-cloud-go/commit/f9ff2ca3a01736b049873ff43005626e8c06e6b2)) + + +### Bug Fixes + +* **bigquery:** Avoid double-channel-close during context cancellation ([#7467](https://github.com/googleapis/google-cloud-go/issues/7467)) ([ca4b2ef](https://github.com/googleapis/google-cloud-go/commit/ca4b2efbda670566f2cfed4eacd559f31cf460ff)) + +## [1.46.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.45.0...bigquery/v1.46.0) (2023-02-06) + + +### Features + +* **bigquery:** Add dataset/table collation ([#7235](https://github.com/googleapis/google-cloud-go/issues/7235)) ([9f7bbeb](https://github.com/googleapis/google-cloud-go/commit/9f7bbeb466bd7572544c4178a33370a25b5f1496)) +* **bigquery:** Use storage api for query jobs ([#6822](https://github.com/googleapis/google-cloud-go/issues/6822)) ([26c04f4](https://github.com/googleapis/google-cloud-go/commit/26c04f4cd5083b4aa3c219500572d3af2f291645)) + + +### Bug Fixes + +* **bigquery:** Create/update an isolated dataset for collation feature ([#7256](https://github.com/googleapis/google-cloud-go/issues/7256)) ([b371558](https://github.com/googleapis/google-cloud-go/commit/b3715585aa6892fc41a29027694c72f31390441a)) +* **bigquery:** Fetch dst table for jobs when readings with Storage API ([#7325](https://github.com/googleapis/google-cloud-go/issues/7325)) ([0bf80d7](https://github.com/googleapis/google-cloud-go/commit/0bf80d72a893755adefdead900e8990ed53d9627)), refs [#7322](https://github.com/googleapis/google-cloud-go/issues/7322) + +## [1.45.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.44.0...bigquery/v1.45.0) (2023-01-05) + + +### Features + +* **bigquery/datapolicies:** Start generating apiv1 ([#7204](https://github.com/googleapis/google-cloud-go/issues/7204)) ([fd71cba](https://github.com/googleapis/google-cloud-go/commit/fd71cba7b6d5a015dcdb24b9eacc7fae1aa54c89)) +* **bigquery/datatransfer:** Add location methods ([06a54a1](https://github.com/googleapis/google-cloud-go/commit/06a54a16a5866cce966547c51e203b9e09a25bc0)) +* **bigquery:** Add REST client ([06a54a1](https://github.com/googleapis/google-cloud-go/commit/06a54a16a5866cce966547c51e203b9e09a25bc0)) +* **bigquery:** Rewrite signatures and type in terms of new location ([620e6d8](https://github.com/googleapis/google-cloud-go/commit/620e6d828ad8641663ae351bfccfe46281e817ad)) + +## [1.44.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.43.0...bigquery/v1.44.0) (2022-11-30) + + +### Features + +* **bigquery/datatransfer:** added Location API methods docs: updated comments ([22ec3e3](https://github.com/googleapis/google-cloud-go/commit/22ec3e3e727f8c0232059a5d31bccd12b7b5034c)) +* **bigquery/storage:** add missing_value_interpretations to AppendRowsRequest ([2a0b1ae](https://github.com/googleapis/google-cloud-go/commit/2a0b1aeb1683222e6aa5c876cb945845c00cef79)) +* **bigquery:** Add default partition expiration to Dataset ([#7096](https://github.com/googleapis/google-cloud-go/issues/7096)) ([601c77a](https://github.com/googleapis/google-cloud-go/commit/601c77a69a27b5f13ebb4508f8222a98c8a904bc)), refs [#7021](https://github.com/googleapis/google-cloud-go/issues/7021) +* **bigquery:** Remove code for reservation/apiv1beta1 ([#7010](https://github.com/googleapis/google-cloud-go/issues/7010)) ([451acc1](https://github.com/googleapis/google-cloud-go/commit/451acc1bfc04cc600ab3c1f50f5494e609e65ce2)) +* **bigquery:** Start generating proto stubs ([#7026](https://github.com/googleapis/google-cloud-go/issues/7026)) ([debc4c7](https://github.com/googleapis/google-cloud-go/commit/debc4c70786fece5d04d8cad9e9211c55a0a692f)) +* **bigquery:** Widen retry predicate ([#6976](https://github.com/googleapis/google-cloud-go/issues/6976)) ([753b751](https://github.com/googleapis/google-cloud-go/commit/753b75139f4b9e8593db5d45d8ab1e0cc8969350)) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** Remove old header routing ([#6960](https://github.com/googleapis/google-cloud-go/issues/6960)) ([434b407](https://github.com/googleapis/google-cloud-go/commit/434b407f4ba66247cb0a15288a2de8e76b691605)) + + +### Documentation + +* **bigquery/storage:** remove stale header guidance for AppendRows ([9c5d6c8](https://github.com/googleapis/google-cloud-go/commit/9c5d6c857b9deece4663d37fc6c834fd758b98ca)) + +## [1.43.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.42.0...bigquery/v1.43.0) (2022-10-24) + + +### Features + +* **bigquery/analyticshub:** rename nodejs analyticshub library package name ([52dddd1](https://github.com/googleapis/google-cloud-go/commit/52dddd1ed89fbe77e1859311c3b993a77a82bfc7)) +* **bigquery/storage/managedwriter:** Enable field name indirection ([#6247](https://github.com/googleapis/google-cloud-go/issues/6247)) ([1969273](https://github.com/googleapis/google-cloud-go/commit/19692735b0fbafa176d0315bda923528e1eedf6d)) +* **bigquery/storage/managedwriter:** Retry on FailedPrecondition ([#6761](https://github.com/googleapis/google-cloud-go/issues/6761)) ([d1a444d](https://github.com/googleapis/google-cloud-go/commit/d1a444d769c9578b586bef608d343b4b0abd3658)) +* **bigquery/storage/managedwriter:** Support append retries ([#6695](https://github.com/googleapis/google-cloud-go/issues/6695)) ([6ae9c67](https://github.com/googleapis/google-cloud-go/commit/6ae9c670a11d80b34872cb05fda933303b81851d)) +* **bigquery/storage/managedwriter:** Switch to opt-in retry ([#6765](https://github.com/googleapis/google-cloud-go/issues/6765)) ([a3e97a6](https://github.com/googleapis/google-cloud-go/commit/a3e97a6f15ad1989ef815b9bd5838192f9f226f1)) +* **bigquery:** Add remote function options to routine metadata ([#6702](https://github.com/googleapis/google-cloud-go/issues/6702)) ([d9a437d](https://github.com/googleapis/google-cloud-go/commit/d9a437de75a5f5151cd000d8f9a6b7fc567d8551)) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** Address possible resource leak ([#6775](https://github.com/googleapis/google-cloud-go/issues/6775)) ([979440b](https://github.com/googleapis/google-cloud-go/commit/979440b43573c1cfd744d3f63d0c633c7319ad46)) +* **bigquery:** Avoid stack overflow on query param with recursive types ([#6890](https://github.com/googleapis/google-cloud-go/issues/6890)) ([854ccfc](https://github.com/googleapis/google-cloud-go/commit/854ccfca259d747759d283fc0d0053893f3c8f8d)), refs [#6884](https://github.com/googleapis/google-cloud-go/issues/6884) +* **bigquery:** Bq connection auth scopes ([#6752](https://github.com/googleapis/google-cloud-go/issues/6752)) ([8e09288](https://github.com/googleapis/google-cloud-go/commit/8e09288185f721d90288c3aa873980fc44b98613)), refs [#6744](https://github.com/googleapis/google-cloud-go/issues/6744) + + +### Documentation + +* **bigquery/storage/managedwriter/adapt:** Typo in error string ([#6729](https://github.com/googleapis/google-cloud-go/issues/6729)) ([bb26153](https://github.com/googleapis/google-cloud-go/commit/bb26153d38475cd9784edbf241df84c368f5a166)) +* **bigquery/storage/managedwriter:** Add retry info to package docs ([#6803](https://github.com/googleapis/google-cloud-go/issues/6803)) ([81e52e5](https://github.com/googleapis/google-cloud-go/commit/81e52e59dcf3c4a44108e039fb0e3a0e2ce8284f)) + +## [1.42.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.41.0...bigquery/v1.42.0) (2022-09-21) + + +### Features + +* **bigquery/analyticshub:** Start generating apiv1 ([#6707](https://github.com/googleapis/google-cloud-go/issues/6707)) ([feb7d7d](https://github.com/googleapis/google-cloud-go/commit/feb7d7d4b85d51aef6798d87a6ba8e9c536d040c)) +* **bigquery/datapolicies:** Start generating apiv1beta1 ([#6697](https://github.com/googleapis/google-cloud-go/issues/6697)) ([f5443e8](https://github.com/googleapis/google-cloud-go/commit/f5443e81ae14e6aed2befe03c0df611bf5533b1f)) +* **bigquery/reservation/apiv1beta1:** add REST transport ([f7b0822](https://github.com/googleapis/google-cloud-go/commit/f7b082212b1e46ff2f4126b52d49618785c2e8ca)) +* **bigquery/storage/managedwriter:** Define append retry predicate ([#6650](https://github.com/googleapis/google-cloud-go/issues/6650)) ([478b8dd](https://github.com/googleapis/google-cloud-go/commit/478b8dd4e0d722cbf02fa2e216929eb561694fe0)) +* **bigquery/storage:** add proto annotation for non-ascii field mapping ([ec1a190](https://github.com/googleapis/google-cloud-go/commit/ec1a190abbc4436fcaeaa1421c7d9df624042752)) +* **bigquery:** Add reference file schema option for federated formats ([#6693](https://github.com/googleapis/google-cloud-go/issues/6693)) ([3d26091](https://github.com/googleapis/google-cloud-go/commit/3d26091bb8861ccfcc8d0a1727f8bbb9014ef866)) +* **bigquery:** Add support for explicit query parameter type ([#6596](https://github.com/googleapis/google-cloud-go/issues/6596)) ([d59b5b2](https://github.com/googleapis/google-cloud-go/commit/d59b5b2da7d1caa6622aec84b4004cf02fb4b066)), refs [#4704](https://github.com/googleapis/google-cloud-go/issues/4704) + + +### Bug Fixes + +* **bigquery/connection:** integrate gapic-generator-python-1.4.1 and enable more py_test targets ([ec1a190](https://github.com/googleapis/google-cloud-go/commit/ec1a190abbc4436fcaeaa1421c7d9df624042752)) + +## [1.41.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.40.0...bigquery/v1.41.0) (2022-09-14) + + +### Features + +* **bigquery/storage:** add location to WriteStream and add WriteStreamView support ([6a0080a](https://github.com/googleapis/google-cloud-go/commit/6a0080ad69398c572d856886293e19c79cf0fc0e)) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** Fix incorrect error retention ([#6659](https://github.com/googleapis/google-cloud-go/issues/6659)) ([dc02bca](https://github.com/googleapis/google-cloud-go/commit/dc02bca4ac14acb4f536f078a7d8f209626340bb)) +* **bigquery:** Parse timestamp query parameter with RFC3339 ([#6653](https://github.com/googleapis/google-cloud-go/issues/6653)) ([aabd2d6](https://github.com/googleapis/google-cloud-go/commit/aabd2d61c81ed598755656b4e7c3fd84dcd3b2d4)) + +## [1.40.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.39.0...bigquery/v1.40.0) (2022-09-08) + + +### ⚠ BREAKING CHANGES + +* **bigquery/dataexchange:** update BigQuery Analytics Hub API v1beta1 client BREAKING CHANGE: refresh current dataexchange/v1beta1/* directory to include recent change in protos. Removed common directory and use local enum Category fix!: refactor references to Category message docs: improve proto documentation. + +### Features + +* **bigquery/dataexchange:** update BigQuery Analytics Hub API v1beta1 client BREAKING CHANGE: refresh current dataexchange/v1beta1/* directory to include recent change in protos. Removed common directory and use local enum Category fix!: refactor references to Category message docs: improve proto documentation. ([e45ad9a](https://github.com/googleapis/google-cloud-go/commit/e45ad9af568c59151decc0dacedf137653b576dd)) +* **bigquery/storage/managedwriter:** Augment reconnection logic ([#6609](https://github.com/googleapis/google-cloud-go/issues/6609)) ([6b0ac0c](https://github.com/googleapis/google-cloud-go/commit/6b0ac0c400d2d5b26689176c71cc6db1db9b283f)) +* **bigquery:** Add trace instrumentation support for individual rpcs ([#6493](https://github.com/googleapis/google-cloud-go/issues/6493)) ([eedc632](https://github.com/googleapis/google-cloud-go/commit/eedc6327b845850d9d6109014a5d531dfbfa7d04)) +* **bigquery:** Improve error when reading null values ([#6566](https://github.com/googleapis/google-cloud-go/issues/6566)) ([e9a94c2](https://github.com/googleapis/google-cloud-go/commit/e9a94c2e52ca3d07bc15030cf411f7e1c5235d39)), refs [#2612](https://github.com/googleapis/google-cloud-go/issues/2612) + + +### Documentation + +* **bigquery:** Add numeric and bignumeric to RowIterator docs ([#6560](https://github.com/googleapis/google-cloud-go/issues/6560)) ([bea4028](https://github.com/googleapis/google-cloud-go/commit/bea4028a5fde6e790f70b0a98c33b81b3ad4023e)) + + +### Miscellaneous Chores + +* **bigquery:** Release 1.40.0 ([#6635](https://github.com/googleapis/google-cloud-go/issues/6635)) ([628deae](https://github.com/googleapis/google-cloud-go/commit/628deae4e0e0f4f1ae7e99433eefdc8f7cc41b41)) + +## [1.39.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.38.0...bigquery/v1.39.0) (2022-08-23) + + +### Features + +* **bigquery/storage:** allow users to set Apache Avro output format options through avro_serialization_options param in TableReadOptions message Through AvroSerializationOptions, users can set enable_display_name_attribute, which populates displayName for every avro field with the original column name Improved documentation for selected_fields, added example for clarity. ([41ab4ec](https://github.com/googleapis/google-cloud-go/commit/41ab4ec00552931b12f61a9fcb27b36a7c0b5d77)) +* **bigquery:** add PreserveAsciiControlCharacters support for CSV ([#6448](https://github.com/googleapis/google-cloud-go/issues/6448)) ([b7bac2f](https://github.com/googleapis/google-cloud-go/commit/b7bac2fbf63c2a681da6fdbf5af217bf8de1455f)) +* **bigquery:** add preview support for default values ([#6464](https://github.com/googleapis/google-cloud-go/issues/6464)) ([edc3be5](https://github.com/googleapis/google-cloud-go/commit/edc3be586f9e8b65c34318773f5c55e1a4ccb07b)) + +## [1.38.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.37.0...bigquery/v1.38.0) (2022-08-12) + + +### Features + +* **bigquery/migration:** Add MySQL dialect to bigquerymigration v2 client library ([370e23e](https://github.com/googleapis/google-cloud-go/commit/370e23eaa342a7055a8d8b6f8fe9420f83afe43e)) +* **bigquery/storage/managedwriter:** improve error communication ([#6360](https://github.com/googleapis/google-cloud-go/issues/6360)) ([b30d89d](https://github.com/googleapis/google-cloud-go/commit/b30d89d5bd4a8ce553a328abb4b78f8fc51b43f0)) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** propagate calloptions to append ([#6488](https://github.com/googleapis/google-cloud-go/issues/6488)) ([c65f9da](https://github.com/googleapis/google-cloud-go/commit/c65f9dab8118295e49a7b863f59cb64ace4c2d5b)) + +## [1.37.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.36.0...bigquery/v1.37.0) (2022-08-04) + + +### Features + +* **bigquery/connection:** Add service_account_id output field to CloudSQL properties ([1d6fbcc](https://github.com/googleapis/google-cloud-go/commit/1d6fbcc6406e2063201ef5a98de560bf32f7fb73)) +* **bigquery/storage/managedwriter:** refactor AppendResponse ([#6402](https://github.com/googleapis/google-cloud-go/issues/6402)) ([c07bca2](https://github.com/googleapis/google-cloud-go/commit/c07bca2d65ec9903ba0c592da11440cebe8b7d9e)) +* **bigquery:** support JSON as a data type ([#5986](https://github.com/googleapis/google-cloud-go/issues/5986)) ([835fe4f](https://github.com/googleapis/google-cloud-go/commit/835fe4fe59f4a3c64c5762a530228d5369618897)) + + +### Bug Fixes + +* **bigquery:** include user_email field when requesting job information ([#6256](https://github.com/googleapis/google-cloud-go/issues/6256)) ([da42b4e](https://github.com/googleapis/google-cloud-go/commit/da42b4e05faa067b5afa0a9a479d1db72296948e)) + + +### Documentation + +* **bigquery/storage:** clarify size limitations for AppendRowsRequest chore: add preferred_min_stream_count to CreateReadSessionRequest chore: add write_stream to AppendRowsResponse ([1d6fbcc](https://github.com/googleapis/google-cloud-go/commit/1d6fbcc6406e2063201ef5a98de560bf32f7fb73)) + +## [1.36.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.35.0...bigquery/v1.36.0) (2022-07-18) + + +### Features + +* **bigquery/migration:** Add Presto dialect to bigquerymigration v2 client library ([89a049a](https://github.com/googleapis/google-cloud-go/commit/89a049a98e1d18b922cc6ad08622161448544902)) +* **bigquery/storage/managedwriter/adapt:** support packed field option ([#6312](https://github.com/googleapis/google-cloud-go/issues/6312)) ([fc3417b](https://github.com/googleapis/google-cloud-go/commit/fc3417be70cd01a0044ec934c5c6426ea833d90c)) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** improve network reconnection ([#6338](https://github.com/googleapis/google-cloud-go/issues/6338)) ([085a038](https://github.com/googleapis/google-cloud-go/commit/085a03865d20122c74e107ea43883ae33bdf25bc)) + +## [1.35.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.34.1...bigquery/v1.35.0) (2022-07-07) + + +### Features + +* **bigquery:** start generating REST client for beta clients ([25b7775](https://github.com/googleapis/google-cloud-go/commit/25b77757c1e6f372e03bf99ab7461264bba48d26)) + + +### Bug Fixes + +* **bigquery/storage/managedstorage:** improve internal locking ([#6304](https://github.com/googleapis/google-cloud-go/issues/6304)) ([a2925ce](https://github.com/googleapis/google-cloud-go/commit/a2925ce2f96c538d3994e2d0cef49fbcdd727217)) +* **bigquery/storage/managedwriter/adapt:** schema->protodescriptor ([#6267](https://github.com/googleapis/google-cloud-go/issues/6267)) ([a017230](https://github.com/googleapis/google-cloud-go/commit/a01723055cb7604047c4fddd7d00213d800e4122)), refs [#6258](https://github.com/googleapis/google-cloud-go/issues/6258) +* **bigquery/storage:** Modify client lib retry policy for CreateWriteStream with longer backoff, more error code and longer overall time ([199b725](https://github.com/googleapis/google-cloud-go/commit/199b7250f474b1a6f53dcf0aac0c2966f4987b68)) + +## [1.34.1](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.34.0...bigquery/v1.34.1) (2022-06-23) + + +### Bug Fixes + +* **bigquery:** release 1.34.1 ([#6251](https://github.com/googleapis/google-cloud-go/issues/6251)) ([c742b0e](https://github.com/googleapis/google-cloud-go/commit/c742b0ee644246162acaa964fc2a65eef392846f)) + +## [1.34.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.33.0...bigquery/v1.34.0) (2022-06-23) + + +### Features + +* **bigquery/storage:** add fields to eventually contain row level errors ([5fe3b1d](https://github.com/googleapis/google-cloud-go/commit/5fe3b1d946db991aebdfd279f6f3b06b8baec205)) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** address locking and schema updates ([#6243](https://github.com/googleapis/google-cloud-go/issues/6243)) ([fe264a5](https://github.com/googleapis/google-cloud-go/commit/fe264a5ccfe5b13f6b7215d66a04282f5e38457f)) + +## [1.33.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.32.0...bigquery/v1.33.0) (2022-06-16) + + +### Features + +* **bigquery/migration:** Add SQL Server dialect to bigquerymigration v2 client library ([90489b1](https://github.com/googleapis/google-cloud-go/commit/90489b10fd7da4cfafe326e00d1f4d81570147f7)) +* **bigquery/storage/managedwriter/adapt:** support proto3 presence ([#6021](https://github.com/googleapis/google-cloud-go/issues/6021)) ([2984600](https://github.com/googleapis/google-cloud-go/commit/29846003d4bebb1a07ac11cac462ae65cb0bc59c)) +* **bigquery/storage/managedwriter:** improve proto3 normalization ([#6082](https://github.com/googleapis/google-cloud-go/issues/6082)) ([6a742ff](https://github.com/googleapis/google-cloud-go/commit/6a742ffb16da991a0bf2df37218dc40af5ee0011)) +* **bigquery:** add support for dataset tags ([#6114](https://github.com/googleapis/google-cloud-go/issues/6114)) ([1f35044](https://github.com/googleapis/google-cloud-go/commit/1f35044894c7395326d7a5b787a2406d5cd92cb1)) +* **bigquery:** support partial projection of table metadata ([#6186](https://github.com/googleapis/google-cloud-go/issues/6186)) ([507a2be](https://github.com/googleapis/google-cloud-go/commit/507a2be8e4fda152d517dcb972be6353a6da2914)) + + +### Bug Fixes + +* **bigquery/dataexchange:** Include common protos in google-cloud-bigquery-data_exchange-v1beta1 ([6ef576e](https://github.com/googleapis/google-cloud-go/commit/6ef576e2d821d079e7b940cd5d49fe3ca64a7ba2)) + +## [1.32.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.31.0...bigquery/v1.32.0) (2022-05-06) + + +### Features + +* **bigquery:** add interval support ([#5907](https://github.com/googleapis/google-cloud-go/issues/5907)) ([9e979c9](https://github.com/googleapis/google-cloud-go/commit/9e979c9718df1de440d440e4c3e20bb3cb8c5aa1)) +* **bigquery:** expose connections and schema autodetect modifier ([#5739](https://github.com/googleapis/google-cloud-go/issues/5739)) ([c72e34f](https://github.com/googleapis/google-cloud-go/commit/c72e34fd79990eedaa56ed9e5121ab1a7fc4e2da)) + +## [1.31.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.30.2...bigquery/v1.31.0) (2022-04-12) + + +### Features + +* **bigquery/storage:** Deprecate format specific `row_count` field in Read API ([57896d1](https://github.com/googleapis/google-cloud-go/commit/57896d1491c04fa53d3f3e2344ef10c3d91c4b65)) +* **bigquery:** enhance SchemaFromJSON ([#5877](https://github.com/googleapis/google-cloud-go/issues/5877)) ([16289f0](https://github.com/googleapis/google-cloud-go/commit/16289f086ae15ea18c70d387b542796e099d4a09)) +* **bigquery:** support table cloning ([#5672](https://github.com/googleapis/google-cloud-go/issues/5672)) ([74c120a](https://github.com/googleapis/google-cloud-go/commit/74c120a81d2181d9809e5d3c0462bd859297d073)) + +### [1.30.2](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.30.1...bigquery/v1.30.2) (2022-03-30) + + +### Bug Fixes + +* **bigquery/storage/managedwriter/adapt:** fix enum append ([#5819](https://github.com/googleapis/google-cloud-go/issues/5819)) ([9eeaf0f](https://github.com/googleapis/google-cloud-go/commit/9eeaf0fe9de6e9583a6994e49f95ad524bc9e68e)) + +### [1.30.1](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.30.0...bigquery/v1.30.1) (2022-03-30) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** correct enum processing in NormalizeDescriptor ([#5811](https://github.com/googleapis/google-cloud-go/issues/5811)) ([52cf48e](https://github.com/googleapis/google-cloud-go/commit/52cf48edff487352c2755de86e2ea069b1b29617)) +* **bigquery:** improve retry for table create ([#5807](https://github.com/googleapis/google-cloud-go/issues/5807)) ([f27d1dc](https://github.com/googleapis/google-cloud-go/commit/f27d1dc43acbd437f517c05d65c992644f3f3111)) + +## [1.30.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.29.0...bigquery/v1.30.0) (2022-03-16) + + +### Features + +* **bigquery:** support authorized datasets ([#5666](https://github.com/googleapis/google-cloud-go/issues/5666)) ([859048e](https://github.com/googleapis/google-cloud-go/commit/859048e491dd840c9aea218fa670ed2fb46d78e2)) + + +### Bug Fixes + +* **bigquery:** Query.Read fails with dry-run queries ([#5753](https://github.com/googleapis/google-cloud-go/issues/5753)) ([e279584](https://github.com/googleapis/google-cloud-go/commit/e279584727e2a496b3d566ed6f6683715a594a6d)) + +## [1.29.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.28.0...bigquery/v1.29.0) (2022-03-02) + + +### Features + +* **bigquery/storage/managedwriter/adapt:** handle oneof normalization ([#5670](https://github.com/googleapis/google-cloud-go/issues/5670)) ([c7f54d8](https://github.com/googleapis/google-cloud-go/commit/c7f54d81baa34ce0f31bbe0af1cb03c2598e5e74)) +* **bigquery/storage/managedwriter:** minor ease-of-use improvements ([#5660](https://github.com/googleapis/google-cloud-go/issues/5660)) ([d253c24](https://github.com/googleapis/google-cloud-go/commit/d253c24fd61f181971056ba00749efd69b3ae691)) +* **bigquery/storage:** add trace_id for Read API ([080adb0](https://github.com/googleapis/google-cloud-go/commit/080adb0b855289ddbd86ac9e5e6eb236673f6884)) +* **bigquery:** add job timeout support ([#5707](https://github.com/googleapis/google-cloud-go/issues/5707)) ([868363c](https://github.com/googleapis/google-cloud-go/commit/868363cbc68c655d4c1f8959280cf1acba5073a7)) +* **bigquery:** set versionClient to module version ([55f0d92](https://github.com/googleapis/google-cloud-go/commit/55f0d92bf112f14b024b4ab0076c9875a17423c9)) + + +### Bug Fixes + +* **bigquery/storage:** remove bigquery.readonly auth scope ([5af548b](https://github.com/googleapis/google-cloud-go/commit/5af548bee4ffde279727b2e1ad9b072925106a74)) + +## [1.28.0](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.27.0...bigquery/v1.28.0) (2022-02-14) + + +### Features + +* **bigquery/datatransfer:** add owner email to TransferConfig message feat: allow customer to enroll a datasource programmatically docs: improvements to various message and field descriptions ([f560b1e](https://github.com/googleapis/google-cloud-go/commit/f560b1ed0263956ef84fbf2fbf34bdc66dbc0a88)) +* **bigquery:** add better version metadata to calls ([d1ad921](https://github.com/googleapis/google-cloud-go/commit/d1ad921d0322e7ce728ca9d255a3cf0437d26add)) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** address possible panic due to flow ([#5436](https://github.com/googleapis/google-cloud-go/issues/5436)) ([50c6e38](https://github.com/googleapis/google-cloud-go/commit/50c6e38c2798b3d4f2a9560239753ecd04502273)) +* **bigquery/storage/managedwriter:** append improvements ([#5465](https://github.com/googleapis/google-cloud-go/issues/5465)) ([aa167bd](https://github.com/googleapis/google-cloud-go/commit/aa167bd5e57facb0f0d6834ab65805956e4ef08c)) + +## [1.27.0](https://www.github.com/googleapis/google-cloud-go/compare/bigquery/v1.26.0...bigquery/v1.27.0) (2022-01-24) + + +### Features + +* **bigquery:** augment retry predicate ([#5387](https://www.github.com/googleapis/google-cloud-go/issues/5387)) ([f9608d4](https://www.github.com/googleapis/google-cloud-go/commit/f9608d4622c56362b2ed0a5845b8fe27f81995aa)) +* **bigquery:** support null marker for csv in external data config ([#5287](https://www.github.com/googleapis/google-cloud-go/issues/5287)) ([132904a](https://www.github.com/googleapis/google-cloud-go/commit/132904a061809ba7117c51e8a8000f1adac34e48)) + +## [1.26.0](https://www.github.com/googleapis/google-cloud-go/compare/bigquery/v1.25.0...bigquery/v1.26.0) (2022-01-04) + + +### Features + +* **bigquery/reservation:** increase the logical timeout (retry deadline) to 5 minutes ([5444809](https://www.github.com/googleapis/google-cloud-go/commit/5444809e0b7cf9f5416645ea2df6fec96f8b9023)) +* **bigquery/storage/managedwriter:** support schema change notification ([#5253](https://www.github.com/googleapis/google-cloud-go/issues/5253)) ([70e40db](https://www.github.com/googleapis/google-cloud-go/commit/70e40db88bc016f228a425da1e278fc76dbf2e36)) +* **bigquery/storage:** add write_mode support for BigQuery Storage Write API v1 ([615b42b](https://www.github.com/googleapis/google-cloud-go/commit/615b42bbb549b6fd3e8b1ba751bc109f79a5575b)) + +## [1.25.0](https://www.github.com/googleapis/google-cloud-go/compare/bigquery/v1.24.0...bigquery/v1.25.0) (2021-12-02) + + +### ⚠ BREAKING CHANGES + +* **bigquery/storage/managedwriter:** changes function signatures to add variadic call options + +### Features + +* **bigquery/storage/managedwriter:** extend managedstream to support call options ([#5078](https://www.github.com/googleapis/google-cloud-go/issues/5078)) ([fbc2717](https://www.github.com/googleapis/google-cloud-go/commit/fbc2717ec84b1c5557873efaa732c047da66c1e6)) +* **bigquery/storage/managedwriter:** improve method parity in managedwriter ([#5007](https://www.github.com/googleapis/google-cloud-go/issues/5007)) ([a2af4de](https://www.github.com/googleapis/google-cloud-go/commit/a2af4de215a42848368ec3081263d34782032caa)) +* **bigquery/storage/managedwriter:** support variadic appends ([#5102](https://www.github.com/googleapis/google-cloud-go/issues/5102)) ([014b314](https://www.github.com/googleapis/google-cloud-go/commit/014b314b2db70147a26120a1d54a6bc7142d5665)) +* **bigquery:** add BI Engine information to query statistics ([#5081](https://www.github.com/googleapis/google-cloud-go/issues/5081)) ([b78c89b](https://www.github.com/googleapis/google-cloud-go/commit/b78c89b18a81ce155441554cb5455600168eb8fd)) +* **bigquery:** add support for AvroOptions in external data config ([#4945](https://www.github.com/googleapis/google-cloud-go/issues/4945)) ([8844e40](https://www.github.com/googleapis/google-cloud-go/commit/8844e40b7c2a7347e174587ea2cf438a6da9e16f)) +* **bigquery:** allow construction of jobs from other projects ([#5048](https://www.github.com/googleapis/google-cloud-go/issues/5048)) ([6d07eca](https://www.github.com/googleapis/google-cloud-go/commit/6d07eca680362807f6dd870ba9df8c26256601ab)) +* **bigquery:** expose identifiers using a variety of formats ([#5017](https://www.github.com/googleapis/google-cloud-go/issues/5017)) ([c9cd984](https://www.github.com/googleapis/google-cloud-go/commit/c9cd9846b6707d236648d33d44434e64eced9cdd)) + + +### Bug Fixes + +* **bigquery/migration:** correct python namespace for migration API Committer: [@shollyman](https://www.github.com/shollyman) ([8c5c6cf](https://www.github.com/googleapis/google-cloud-go/commit/8c5c6cf9df046b67998a8608d05595bd9e34feb0)) +* **bigquery/storage/managedwriter:** correctly copy request ([#5122](https://www.github.com/googleapis/google-cloud-go/issues/5122)) ([cd43a5c](https://www.github.com/googleapis/google-cloud-go/commit/cd43a5cde5e4e388266f3773f206ead90d666261)) +* **bigquery:** address one other callsite for the job construction feature ([#5059](https://www.github.com/googleapis/google-cloud-go/issues/5059)) ([98779eb](https://www.github.com/googleapis/google-cloud-go/commit/98779eba0f1f95b195aa6194210208767c169f5e)) + + +### Miscellaneous Chores + +* **bigquery:** release 1.25.0 ([#5128](https://www.github.com/googleapis/google-cloud-go/issues/5128)) ([f58a9f7](https://www.github.com/googleapis/google-cloud-go/commit/f58a9f7b88e2ce6101cb4bd3c85c267a688a1a1d)) +* **bigquery:** release 1.25.0 ([#5177](https://www.github.com/googleapis/google-cloud-go/issues/5177)) ([359f5b1](https://www.github.com/googleapis/google-cloud-go/commit/359f5b1ca118ff6f92603da083eb943b672ed779)) + +## [1.24.0](https://www.github.com/googleapis/google-cloud-go/compare/bigquery/v1.23.0...bigquery/v1.24.0) (2021-09-27) + + +### Features + +* **bigquery/migration:** Add PAUSED state to Subtask and add task details protos ([bddab08](https://www.github.com/googleapis/google-cloud-go/commit/bddab08dfd0b9a0a79b113a46a0dd84dba1f3d3b)) + + +### Bug Fixes + +* **bigquery/storage:** add missing read api retry setting on SplitReadStream ([797a9bd](https://www.github.com/googleapis/google-cloud-go/commit/797a9bdcb68c0c3ff7eef04cd3a3a0747937975b)) + +## [1.23.0](https://www.github.com/googleapis/google-cloud-go/compare/bigquery/v1.22.0...bigquery/v1.23.0) (2021-09-23) + + +### Features + +* **bigquery/reservation:** + * Deprecated SearchAssignments in favor of SearchAllAssignments + * feat: Reservation objects now contain a creation time and an update time + * feat: Added commitment_start_time to capacity commitments + * feat: Force deleting capacity commitments is allowed while reservations with active assignments exist + * feat: ML_EXTERNAL job type is supported + * feat: Optional id can be passed into CreateCapacityCommitment and CreateAssignment + * docs: Clarified docs for None assignments + * fix!: Fixed pattern for BiReservation object BREAKING_CHANGE: Changed from `bireservation` to `biReservation` + * ([d9ce9d0](https://www.github.com/googleapis/google-cloud-go/commit/d9ce9d0ee64f59c4e07ce4752bfd721051a95ac7)) +* **bigquery/storage/managedwriter:** BREAKING CHANGE: changeAppendRows behavior ([#4729](https://github.com/googleapis/google-cloud-go/pull/4729)) +* **bigquery/storage:** add BigQuery Storage Write API v1 ([e52c204](https://www.github.com/googleapis/google-cloud-go/commit/e52c2042a2b7cdd7dd799a561421f32fecc5d1d2)) +* **bigquery/storage:** migrate managedwriter to v1 write from v1beta2 ([#4788](https://github.com/googleapis/google-cloud-go/pull/4788)) +* **bigquery:** add session and connection support ([#4754](https://www.github.com/googleapis/google-cloud-go/issues/4754)) ([e846dfd](https://www.github.com/googleapis/google-cloud-go/commit/e846dfdefbba88320088667525e5fdd966c80c4b)) +* **bigquery:** expose the query source of a rowiterator via SourceJob() ([#4748](https://github.com/googleapis/google-cloud-go/pull/4748)) + +## [1.22.0](https://www.github.com/googleapis/google-cloud-go/compare/bigquery/v1.21.0...bigquery/v1.22.0) (2021-08-30) + + +### Features + +* **bigquery/storage/managedwriter/adapt:** add NormalizeDescriptor ([#4681](https://www.github.com/googleapis/google-cloud-go/issues/4681)) ([c54aa74](https://www.github.com/googleapis/google-cloud-go/commit/c54aa74f7a0574cbbe3f65dc90b96cf5a0b1aa88)) +* **bigquery/storage/managedwriter:** more metrics instrumentation ([#4690](https://www.github.com/googleapis/google-cloud-go/issues/4690)) ([9505384](https://www.github.com/googleapis/google-cloud-go/commit/9505384b2c771d7d0c95f7786744bdf76174c706)) + +## [1.21.0](https://www.github.com/googleapis/google-cloud-go/compare/bigquery/v1.20.1...bigquery/v1.21.0) (2021-08-16) + + +### Features + +* **bigquery/storage/managedwriter:** add project autodetection ([#4605](https://www.github.com/googleapis/google-cloud-go/issues/4605)) ([d8cc9be](https://www.github.com/googleapis/google-cloud-go/commit/d8cc9be6f0314f585f708638834abfc209799724)) +* **bigquery/storage/managedwriter:** improve protobuf support ([#4589](https://www.github.com/googleapis/google-cloud-go/issues/4589)) ([a455082](https://www.github.com/googleapis/google-cloud-go/commit/a45508272a730e0ad81021695d2d8564e7c81631)) +* **bigquery/storage/managedwriter:** more instrumentation support ([#4601](https://www.github.com/googleapis/google-cloud-go/issues/4601)) ([ff488c8](https://www.github.com/googleapis/google-cloud-go/commit/ff488c86b9c1a1f02397bb579905fa049e59ac05)) +* **bigquery:** switch to centralized project autodetect logic ([#4625](https://www.github.com/googleapis/google-cloud-go/issues/4625)) ([18ff070](https://www.github.com/googleapis/google-cloud-go/commit/18ff070b8baa3ed7d324ca9ea00dcd66d7742340)) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** support non-default regions ([#4566](https://www.github.com/googleapis/google-cloud-go/issues/4566)) ([68418f9](https://www.github.com/googleapis/google-cloud-go/commit/68418f9e340def179eb5556aea433c0d07000b79)) + +### [1.20.1](https://www.github.com/googleapis/google-cloud-go/compare/bigquery/v1.20.0...bigquery/v1.20.1) (2021-08-06) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** fix flowcontroller double-release ([#4555](https://www.github.com/googleapis/google-cloud-go/issues/4555)) ([67facd9](https://www.github.com/googleapis/google-cloud-go/commit/67facd9697e931e193f3cd8e188f1dd819ba31eb)) + +## [1.20.0](https://www.github.com/googleapis/google-cloud-go/compare/bigquery/v1.19.0...bigquery/v1.20.0) (2021-07-30) + + +### Features + +* **bigquery/connection:** add cloud spanner connection support ([458f15b](https://www.github.com/googleapis/google-cloud-go/commit/458f15bb6f1193ce83dbfc7a82c3f2a672f52c06)) +* **bigquery/storage/managedwriter/adapt:** add schema -> proto support ([#4375](https://www.github.com/googleapis/google-cloud-go/issues/4375)) ([4ff6243](https://www.github.com/googleapis/google-cloud-go/commit/4ff62433f58c1c92976a66e890b7d5394198f77b)) +* **bigquery/storage/managedwriter:** add append stream plumbing ([#4452](https://www.github.com/googleapis/google-cloud-go/issues/4452)) ([b085384](https://www.github.com/googleapis/google-cloud-go/commit/b0853846a34a32ca45deb92a3cc6ab843473acd8)) +* **bigquery/storage/managedwriter:** add base client ([#4422](https://www.github.com/googleapis/google-cloud-go/issues/4422)) ([4f7193b](https://www.github.com/googleapis/google-cloud-go/commit/4f7193b74f4b1954cf7b664d61b5cc9805337e84)) +* **bigquery/storage/managedwriter:** add flow controller ([#4404](https://www.github.com/googleapis/google-cloud-go/issues/4404)) ([9dc78e0](https://www.github.com/googleapis/google-cloud-go/commit/9dc78e073b5f69037c6328460554c4354fcee11f)) +* **bigquery/storage/managedwriter:** add opencensus instrumentation ([#4512](https://www.github.com/googleapis/google-cloud-go/issues/4512)) ([73b6f5e](https://www.github.com/googleapis/google-cloud-go/commit/73b6f5e012d0b89d36850cb986fd7e288bf1e3c5)) +* **bigquery/storage/managedwriter:** add state tracking ([#4407](https://www.github.com/googleapis/google-cloud-go/issues/4407)) ([4638e17](https://www.github.com/googleapis/google-cloud-go/commit/4638e17dacd1fa76f9976f44974c4037fe4358dc)) +* **bigquery/storage/managedwriter:** naming and doc improvements ([#4508](https://www.github.com/googleapis/google-cloud-go/issues/4508)) ([663c899](https://www.github.com/googleapis/google-cloud-go/commit/663c899c3b8aa751527d24f541d964f2ba91a233)) +* **bigquery/storage/managedwriter:** wire in flow controller ([#4501](https://www.github.com/googleapis/google-cloud-go/issues/4501)) ([40571fa](https://www.github.com/googleapis/google-cloud-go/commit/40571fa0e3b5ab326fd592a6907061c2304893aa)) +* **bigquery:** add more dml statistics to query statistics ([#4405](https://www.github.com/googleapis/google-cloud-go/issues/4405)) ([99d5728](https://www.github.com/googleapis/google-cloud-go/commit/99d57282f6668de91390ad29a888a89209689f39)) +* **bigquery:** support decimalTargetType prioritization ([#4343](https://www.github.com/googleapis/google-cloud-go/issues/4343)) ([95a27f7](https://www.github.com/googleapis/google-cloud-go/commit/95a27f711a1c7dfdaa16ae5d3c52644769b6fc39)) +* **bigquery:** support multistatement transaction statistics in jobs ([#4485](https://www.github.com/googleapis/google-cloud-go/issues/4485)) ([4565eb7](https://www.github.com/googleapis/google-cloud-go/commit/4565eb7fe730eade294fb3baa85bd255df008bfa)) + + +### Bug Fixes + +* **bigquery/storage/managedwriter:** fix double-close error, add tests ([#4502](https://www.github.com/googleapis/google-cloud-go/issues/4502)) ([c6cf659](https://www.github.com/googleapis/google-cloud-go/commit/c6cf6590a41368885b7399c993c47dc965862558)) + +## [1.19.0](https://www.github.com/googleapis/google-cloud-go/compare/bigquery/v1.18.0...bigquery/v1.19.0) (2021-06-29) + + +### Features + +* **bigquery/storage:** Add ZSTD compression as an option for Arrow. ([770db30](https://www.github.com/googleapis/google-cloud-go/commit/770db3083270d485d265362fe5a4b2a1b23619ff)) +* **bigquery/storage:** remove alpha client ([#4100](https://www.github.com/googleapis/google-cloud-go/issues/4100)) ([a2d137d](https://www.github.com/googleapis/google-cloud-go/commit/a2d137d233e7a401976fbe1fd8ff81145dda515d)), refs [#4098](https://www.github.com/googleapis/google-cloud-go/issues/4098) +* **bigquery:** add support for parameterized types ([#4103](https://www.github.com/googleapis/google-cloud-go/issues/4103)) ([a2330e4](https://www.github.com/googleapis/google-cloud-go/commit/a2330e4d66c0a1832fb3b9e23a33c006c9345c28)) +* **bigquery:** add support for snapshot/restore ([#4112](https://www.github.com/googleapis/google-cloud-go/issues/4112)) ([4c12b42](https://www.github.com/googleapis/google-cloud-go/commit/4c12b424eec06c7d87244eaa922995bbe6e46e7e)) +* **bigquery:** add support for user defined TVF ([#4043](https://www.github.com/googleapis/google-cloud-go/issues/4043)) ([37607b4](https://www.github.com/googleapis/google-cloud-go/commit/37607b4afbc4c42baa4a931a9a86cddcc6d885ca)) +* **bigquery:** enable project autodetection, expose project ids further ([#4312](https://www.github.com/googleapis/google-cloud-go/issues/4312)) ([267787e](https://www.github.com/googleapis/google-cloud-go/commit/267787eb245d9307cf78304c1ce34bdfb2aaf5ab)) +* **bigquery:** support job deletion ([#3935](https://www.github.com/googleapis/google-cloud-go/issues/3935)) ([363ba03](https://www.github.com/googleapis/google-cloud-go/commit/363ba03e1c3c813749a65ff3c050877ce4f60016)) +* **bigquery:** support nullable params and geography params ([#4225](https://www.github.com/googleapis/google-cloud-go/issues/4225)) ([43755d3](https://www.github.com/googleapis/google-cloud-go/commit/43755d38b5d928222127cc6be26183d6bfbb1cb4)) + + +### Bug Fixes + +* **bigquery:** minor rename to feature that's not yet in a release ([#4320](https://www.github.com/googleapis/google-cloud-go/issues/4320)) ([ef8d138](https://www.github.com/googleapis/google-cloud-go/commit/ef8d1386149cff28ae6258ab167789bae6af6407)) +* **bigquery:** update streaming insert error test ([#4321](https://www.github.com/googleapis/google-cloud-go/issues/4321)) ([12f3042](https://www.github.com/googleapis/google-cloud-go/commit/12f3042716d51fb0d7a23071d00a20f9751bac91)) + +## [1.18.0](https://www.github.com/googleapis/google-cloud-go/compare/bigquery/v1.17.0...bigquery/v1.18.0) (2021-05-06) + + +### Features + +* **bigquery/storage:** new JSON type through BigQuery Write ([9029071](https://www.github.com/googleapis/google-cloud-go/commit/90290710158cf63de918c2d790df48f55a23adc5)) +* **bigquery:** augment retry predicate to support additional errors ([#4046](https://www.github.com/googleapis/google-cloud-go/issues/4046)) ([d4af6f7](https://www.github.com/googleapis/google-cloud-go/commit/d4af6f7707b3c5ee12cde53c7485a9b743034119)) +* **bigquery:** expose ParquetOptions for loads and external tables ([#4016](https://www.github.com/googleapis/google-cloud-go/issues/4016)) ([f9c4ccb](https://www.github.com/googleapis/google-cloud-go/commit/f9c4ccb6efb271c421edf3f67d5249b1cfb0ecb2)) +* **bigquery:** support mutable clustering configuration ([#3950](https://www.github.com/googleapis/google-cloud-go/issues/3950)) ([0ab30da](https://www.github.com/googleapis/google-cloud-go/commit/0ab30dadc43ae85354dc12a4130ecfcc56273882)) + +## [1.17.0](https://www.github.com/googleapis/google-cloud-go/compare/bigquery/v1.15.0...bigquery/v1.17.0) (2021-04-08) + + +### Features + +* **bigquery/storage:** add a Arrow compression options (Only LZ4 for now). feat: Return schema on first ReadRowsResponse. doc: clarify limit on filter string. ([2b02a03](https://www.github.com/googleapis/google-cloud-go/commit/2b02a03ff9f78884da5a8e7b64a336014c61bde7)) +* **bigquery/storage:** deprecate bigquery storage v1alpha2 API ([9cc6d2c](https://www.github.com/googleapis/google-cloud-go/commit/9cc6d2cce96235b0a144c1c6b48eff496f9e5fa7)) +* **bigquery/storage:** updates for v1beta2 storage API - Updated comments on BatchCommitWriteStreams - Added new support Bigquery types BIGNUMERIC and INTERVAL to TableSchema - Added read rows schema in ReadRowsResponse - Misc comment updates ([48b4e59](https://www.github.com/googleapis/google-cloud-go/commit/48b4e596206cef879194d2888186d603a6f51292)) +* **bigquery:** export HivePartitioningOptions in load job configurations ([#3877](https://www.github.com/googleapis/google-cloud-go/issues/3877)) ([7c759be](https://www.github.com/googleapis/google-cloud-go/commit/7c759be074ce1f6b8ccce88c86dbe49bd38fd6b5)) +* **bigquery:** support type alias names for numeric/bignumeric schemas. ([#3760](https://www.github.com/googleapis/google-cloud-go/issues/3760)) ([2ee6bf4](https://www.github.com/googleapis/google-cloud-go/commit/2ee6bf451524fc1f9735634320a55ca0b07d3d8b)) + +## v1.16.0 + +- Updates to various dependencies. + +## [1.15.0](https://www.github.com/googleapis/google-cloud-go/compare/bigquery/v1.14.0...v1.15.0) (2021-01-14) + + +### Features + +* **bigquery:** add reservation usage stats to query statistics ([#3403](https://www.github.com/googleapis/google-cloud-go/issues/3403)) ([112bcde](https://www.github.com/googleapis/google-cloud-go/commit/112bcdeb7cee1b44f337d3e5398a0d0820e93162)) +* **bigquery:** add support for allowing Javascript UDFs to indicate determinism ([#3534](https://www.github.com/googleapis/google-cloud-go/issues/3534)) ([2f417a3](https://www.github.com/googleapis/google-cloud-go/commit/2f417a39d93402fbb1e5e3001645019782d7d656)), refs [#3533](https://www.github.com/googleapis/google-cloud-go/issues/3533) + + +### Bug Fixes + +* **bigquery:** address possible panic due to offset checking in handleInsertErrors ([#3524](https://www.github.com/googleapis/google-cloud-go/issues/3524)) ([5288511](https://www.github.com/googleapis/google-cloud-go/commit/52885115af3e95cdfd1ec784837fb1df7fe01446)), refs [#3519](https://www.github.com/googleapis/google-cloud-go/issues/3519) + +## [1.14.0](https://www.github.com/googleapis/google-cloud-go/compare/bigquery/v1.13.0...v1.14.0) (2020-12-04) + + +### Features + +* **bigquery:** add support for bignumeric ([#2779](https://www.github.com/googleapis/google-cloud-go/issues/2779)) ([ea3cde5](https://www.github.com/googleapis/google-cloud-go/commit/ea3cde55ad3d8d843bce8d023747cf69552850b5)) +* **bigquery:** expose hive partitioning options ([#3240](https://www.github.com/googleapis/google-cloud-go/issues/3240)) ([fa77efa](https://www.github.com/googleapis/google-cloud-go/commit/fa77efa1a1880ff89307d54cc7e9e8c09430e4e2)) + +## v1.13.0 + +* Support retries for specific http2 transport race. +* Remove unused datasource client from bigquery/datatransfer. +* Adds support for authorized User Defined Functions (UDFs). +* Documentation improvements. +* Various updates to autogenerated clients. + + +## v1.12.0 + +* Adds additional retry support for table deletion. +* Various updates to autogenerated clients. + +## v1.11.2 + +* Addresses issue with consuming query results using an iterator.Pager + +## v1.11.1 + +* Addresses issue with optimized query path changes, released + in v1.11.0 + +## v1.11.0 + +* Add support for optimized query path. +* Documentation improvements. +* Fix issue related to the ReturnType of a bigquery Routine. +* Various updates to autogenerated clients. + +## v1.10.0 + +* Support for Infinity/-Infinity/NaN values in NullFloat64. +* Updates to RowIterator to address issues related to retrieving query + results without explicit destination table references. +* Various updates to autogenerated clients. + +## v1.9.0 + +* SchemaFromJSON will now accept alias type names (e.g. INT64 vs INTEGER, STRUCT vs RECORD). +* Support for IAM on table resources. +* Various updates to autogenerated clients. + +## v1.8.0 + +* Add support for hourly time partitioning. +* Various updates to autogenerated clients. + +## v1.7.0 + +* Add support for extracting BQML models to cloud storage. +* Add support for specifying projected fields when ingesting + datastore backups. +* Fix issue related to defining a range partitioning range + using default values. +* Add bigquery/reservation/v1 API. +* Various updates to autogenerated clients. + +## v1.6.0 + +* Add support for materialized views. +* Add support for policy tags (column ACLs). +* Add bigquery/connection/v1beta1 API. +* Documentation improvements. +* Various updates to autogenerated clients. + +## v1.5.0 + +* Add v1 endpoint for bigquerystorage API. +* Improved error message in bigquery.PutMultiError. +* Various updates to autogenerated clients. + +## v1.4.0 + +* Add v1beta2, v1alpha2 endpoints for bigquerystorage API. + +* Location is now reported as part of TableMetadata. + +## v1.3.0 + +* Add Description field for Routine entities. + +* Add support for iamMember entities on dataset ACLs. + +* Address issue when constructing a Pager from a RowIterator + that referenced a result with zero result rows. + +* Add support for integer range partitioning, which affects + table creation directly and via query/load jobs. + +* Add opt-out support for streaming inserts via experimental + `NoDedupeID` sentinel. + +## v1.2.0 + +* Adds support for scripting feature, which includes script statistics + and the ability to list jobs run as part of a script query. + +* Updates default endpoint for BigQuery from www.googleapis.com + to bigquery.googleapis.com. + +## v1.1.0 + +* Added support for specifying default `EncryptionConfig` settings on the + dataset. + +* Added support for `EncyptionConfig` as part of an ML model. + +* Added `Relax()` to make all fields within a `Schema` nullable. + +* Added a `UseAvroLogicalTypes` option when defining an avro extract job. + +## v1.0.1 + +This patch release is a small fix to the go.mod to point to the post-carve out +cloud.google.com/go. + +## v1.0.0 + +This is the first tag to carve out bigquery as its own module. See: +https://github.com/golang/go/wiki/Modules#is-it-possible-to-add-a-module-to-a-multi-module-repository. diff --git a/vendor/cloud.google.com/go/bigquery/LICENSE b/vendor/cloud.google.com/go/bigquery/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/cloud.google.com/go/bigquery/README.md b/vendor/cloud.google.com/go/bigquery/README.md new file mode 100644 index 000000000..94f5c6d30 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/README.md @@ -0,0 +1,47 @@ +## BigQuery [![Go Reference](https://pkg.go.dev/badge/cloud.google.com/go/bigquery.svg)](https://pkg.go.dev/cloud.google.com/go/bigquery) + +- [About BigQuery](https://cloud.google.com/bigquery/) +- [API documentation](https://cloud.google.com/bigquery/docs) +- [Go client documentation](https://pkg.go.dev/cloud.google.com/go/bigquery) +- [Complete sample programs](https://github.com/GoogleCloudPlatform/golang-samples/tree/main/bigquery) + +### Example Usage + +First create a `bigquery.Client` to use throughout your application: +[snip]:# (bq-1) +```go +c, err := bigquery.NewClient(ctx, "my-project-ID") +if err != nil { + // TODO: Handle error. +} +``` + +Then use that client to interact with the API: +[snip]:# (bq-2) +```go +// Construct a query. +q := c.Query(` + SELECT year, SUM(number) + FROM [bigquery-public-data:usa_names.usa_1910_2013] + WHERE name = "William" + GROUP BY year + ORDER BY year +`) +// Execute the query. +it, err := q.Read(ctx) +if err != nil { + // TODO: Handle error. +} +// Iterate through the results. +for { + var values []bigquery.Value + err := it.Next(&values) + if err == iterator.Done { // from "google.golang.org/api/iterator" + break + } + if err != nil { + // TODO: Handle error. + } + fmt.Println(values) +} +``` diff --git a/vendor/cloud.google.com/go/bigquery/arrow.go b/vendor/cloud.google.com/go/bigquery/arrow.go new file mode 100644 index 000000000..1e8da9a41 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/arrow.go @@ -0,0 +1,286 @@ +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "bytes" + "encoding/base64" + "errors" + "fmt" + "io" + "math/big" + + "cloud.google.com/go/civil" + "github.com/apache/arrow/go/v14/arrow" + "github.com/apache/arrow/go/v14/arrow/array" + "github.com/apache/arrow/go/v14/arrow/ipc" + "github.com/apache/arrow/go/v14/arrow/memory" + "google.golang.org/api/iterator" +) + +// ArrowRecordBatch represents an Arrow RecordBatch with the source PartitionID +type ArrowRecordBatch struct { + reader io.Reader + // Serialized Arrow Record Batch. + Data []byte + // Serialized Arrow Schema. + Schema []byte + // Source partition ID. In the Storage API world, it represents the ReadStream. + PartitionID string +} + +// Read makes ArrowRecordBatch implements io.Reader +func (r *ArrowRecordBatch) Read(p []byte) (int, error) { + if r.reader == nil { + buf := bytes.NewBuffer(r.Schema) + buf.Write(r.Data) + r.reader = buf + } + return r.reader.Read(p) +} + +// ArrowIterator represents a way to iterate through a stream of arrow records. +// Experimental: this interface is experimental and may be modified or removed in future versions, +// regardless of any other documented package stability guarantees. +type ArrowIterator interface { + Next() (*ArrowRecordBatch, error) + Schema() Schema + SerializedArrowSchema() []byte +} + +// NewArrowIteratorReader allows to consume an ArrowIterator as an io.Reader. +// Experimental: this interface is experimental and may be modified or removed in future versions, +// regardless of any other documented package stability guarantees. +func NewArrowIteratorReader(it ArrowIterator) io.Reader { + return &arrowIteratorReader{ + it: it, + } +} + +type arrowIteratorReader struct { + buf *bytes.Buffer + it ArrowIterator +} + +// Read makes ArrowIteratorReader implement io.Reader +func (r *arrowIteratorReader) Read(p []byte) (int, error) { + if r.it == nil { + return -1, errors.New("bigquery: nil ArrowIterator") + } + if r.buf == nil { // init with schema + buf := bytes.NewBuffer(r.it.SerializedArrowSchema()) + r.buf = buf + } + n, err := r.buf.Read(p) + if err == io.EOF { + batch, err := r.it.Next() + if err == iterator.Done { + return 0, io.EOF + } + r.buf.Write(batch.Data) + return r.Read(p) + } + return n, err +} + +type arrowDecoder struct { + allocator memory.Allocator + tableSchema Schema + arrowSchema *arrow.Schema +} + +func newArrowDecoder(arrowSerializedSchema []byte, schema Schema) (*arrowDecoder, error) { + buf := bytes.NewBuffer(arrowSerializedSchema) + r, err := ipc.NewReader(buf) + if err != nil { + return nil, err + } + defer r.Release() + p := &arrowDecoder{ + tableSchema: schema, + arrowSchema: r.Schema(), + allocator: memory.DefaultAllocator, + } + return p, nil +} + +func (ap *arrowDecoder) createIPCReaderForBatch(arrowRecordBatch *ArrowRecordBatch) (*ipc.Reader, error) { + return ipc.NewReader( + arrowRecordBatch, + ipc.WithSchema(ap.arrowSchema), + ipc.WithAllocator(ap.allocator), + ) +} + +// decodeArrowRecords decodes BQ ArrowRecordBatch into rows of []Value. +func (ap *arrowDecoder) decodeArrowRecords(arrowRecordBatch *ArrowRecordBatch) ([][]Value, error) { + r, err := ap.createIPCReaderForBatch(arrowRecordBatch) + if err != nil { + return nil, err + } + defer r.Release() + rs := make([][]Value, 0) + for r.Next() { + rec := r.Record() + values, err := ap.convertArrowRecordValue(rec) + if err != nil { + return nil, err + } + rs = append(rs, values...) + } + return rs, nil +} + +// decodeRetainedArrowRecords decodes BQ ArrowRecordBatch into a list of retained arrow.Record. +func (ap *arrowDecoder) decodeRetainedArrowRecords(arrowRecordBatch *ArrowRecordBatch) ([]arrow.Record, error) { + r, err := ap.createIPCReaderForBatch(arrowRecordBatch) + if err != nil { + return nil, err + } + defer r.Release() + records := []arrow.Record{} + for r.Next() { + rec := r.Record() + rec.Retain() + records = append(records, rec) + } + return records, nil +} + +// convertArrowRows converts an arrow.Record into a series of Value slices. +func (ap *arrowDecoder) convertArrowRecordValue(record arrow.Record) ([][]Value, error) { + rs := make([][]Value, record.NumRows()) + for i := range rs { + rs[i] = make([]Value, record.NumCols()) + } + for j, col := range record.Columns() { + fs := ap.tableSchema[j] + ft := ap.arrowSchema.Field(j).Type + for i := 0; i < col.Len(); i++ { + v, err := convertArrowValue(col, i, ft, fs) + if err != nil { + return nil, fmt.Errorf("found arrow type %s, but could not convert value: %v", ap.arrowSchema.Field(j).Type, err) + } + rs[i][j] = v + } + } + return rs, nil +} + +// convertArrow gets row value in the given column and converts to a Value. +// Arrow is a colunar storage, so we navigate first by column and get the row value. +// More details on conversions can be seen here: https://cloud.google.com/bigquery/docs/reference/storage#arrow_schema_details +func convertArrowValue(col arrow.Array, i int, ft arrow.DataType, fs *FieldSchema) (Value, error) { + if !col.IsValid(i) { + return nil, nil + } + switch ft.(type) { + case *arrow.BooleanType: + v := col.(*array.Boolean).Value(i) + return convertBasicType(fmt.Sprintf("%v", v), fs.Type) + case *arrow.Int8Type: + v := col.(*array.Int8).Value(i) + return convertBasicType(fmt.Sprintf("%v", v), fs.Type) + case *arrow.Int16Type: + v := col.(*array.Int16).Value(i) + return convertBasicType(fmt.Sprintf("%v", v), fs.Type) + case *arrow.Int32Type: + v := col.(*array.Int32).Value(i) + return convertBasicType(fmt.Sprintf("%v", v), fs.Type) + case *arrow.Int64Type: + v := col.(*array.Int64).Value(i) + return convertBasicType(fmt.Sprintf("%v", v), fs.Type) + case *arrow.Float16Type: + v := col.(*array.Float16).Value(i) + return convertBasicType(fmt.Sprintf("%v", v.Float32()), fs.Type) + case *arrow.Float32Type: + v := col.(*array.Float32).Value(i) + return convertBasicType(fmt.Sprintf("%v", v), fs.Type) + case *arrow.Float64Type: + v := col.(*array.Float64).Value(i) + return convertBasicType(fmt.Sprintf("%v", v), fs.Type) + case *arrow.BinaryType: + v := col.(*array.Binary).Value(i) + encoded := base64.StdEncoding.EncodeToString(v) + return convertBasicType(encoded, fs.Type) + case *arrow.StringType: + v := col.(*array.String).Value(i) + return convertBasicType(v, fs.Type) + case *arrow.Date32Type: + v := col.(*array.Date32).Value(i) + return convertBasicType(v.FormattedString(), fs.Type) + case *arrow.Date64Type: + v := col.(*array.Date64).Value(i) + return convertBasicType(v.FormattedString(), fs.Type) + case *arrow.TimestampType: + v := col.(*array.Timestamp).Value(i) + dft := ft.(*arrow.TimestampType) + t := v.ToTime(dft.Unit) + if dft.TimeZone == "" { // Datetime + return Value(civil.DateTimeOf(t)), nil + } + return Value(t.UTC()), nil // Timestamp + case *arrow.Time32Type: + v := col.(*array.Time32).Value(i) + return convertBasicType(v.FormattedString(arrow.Microsecond), fs.Type) + case *arrow.Time64Type: + v := col.(*array.Time64).Value(i) + return convertBasicType(v.FormattedString(arrow.Microsecond), fs.Type) + case *arrow.Decimal128Type: + dft := ft.(*arrow.Decimal128Type) + v := col.(*array.Decimal128).Value(i) + rat := big.NewRat(1, 1) + rat.Num().SetBytes(v.BigInt().Bytes()) + d := rat.Denom() + d.Exp(big.NewInt(10), big.NewInt(int64(dft.Scale)), nil) + return Value(rat), nil + case *arrow.Decimal256Type: + dft := ft.(*arrow.Decimal256Type) + v := col.(*array.Decimal256).Value(i) + rat := big.NewRat(1, 1) + rat.Num().SetBytes(v.BigInt().Bytes()) + d := rat.Denom() + d.Exp(big.NewInt(10), big.NewInt(int64(dft.Scale)), nil) + return Value(rat), nil + case *arrow.ListType: + arr := col.(*array.List) + dft := ft.(*arrow.ListType) + values := []Value{} + start, end := arr.ValueOffsets(i) + slice := array.NewSlice(arr.ListValues(), start, end) + for j := 0; j < slice.Len(); j++ { + v, err := convertArrowValue(slice, j, dft.Elem(), fs) + if err != nil { + return nil, err + } + values = append(values, v) + } + return values, nil + case *arrow.StructType: + arr := col.(*array.Struct) + nestedValues := []Value{} + fields := ft.(*arrow.StructType).Fields() + for fIndex, f := range fields { + v, err := convertArrowValue(arr.Field(fIndex), i, f.Type, fs.Schema[fIndex]) + if err != nil { + return nil, err + } + nestedValues = append(nestedValues, v) + } + return nestedValues, nil + default: + return nil, fmt.Errorf("unknown arrow type: %v", ft) + } +} diff --git a/vendor/cloud.google.com/go/bigquery/bigquery.go b/vendor/cloud.google.com/go/bigquery/bigquery.go new file mode 100644 index 000000000..c597679bc --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/bigquery.go @@ -0,0 +1,310 @@ +// Copyright 2015 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "context" + "errors" + "fmt" + "io" + "net/http" + "net/url" + "os" + "strings" + "time" + + "cloud.google.com/go/bigquery/internal" + cloudinternal "cloud.google.com/go/internal" + "cloud.google.com/go/internal/detect" + "cloud.google.com/go/internal/trace" + "cloud.google.com/go/internal/version" + gax "github.com/googleapis/gax-go/v2" + bq "google.golang.org/api/bigquery/v2" + "google.golang.org/api/googleapi" + "google.golang.org/api/option" +) + +const ( + // Scope is the Oauth2 scope for the service. + // For relevant BigQuery scopes, see: + // https://developers.google.com/identity/protocols/googlescopes#bigqueryv2 + Scope = "https://www.googleapis.com/auth/bigquery" + userAgentPrefix = "gcloud-golang-bigquery" +) + +var xGoogHeader = fmt.Sprintf("gl-go/%s gccl/%s", version.Go(), internal.Version) + +func setClientHeader(headers http.Header) { + headers.Set("x-goog-api-client", xGoogHeader) +} + +// Client may be used to perform BigQuery operations. +type Client struct { + // Location, if set, will be used as the default location for all subsequent + // dataset creation and job operations. A location specified directly in one of + // those operations will override this value. + Location string + + projectID string + bqs *bq.Service + rc *readClient + + // governs use of preview query features. + enableQueryPreview bool +} + +// DetectProjectID is a sentinel value that instructs NewClient to detect the +// project ID. It is given in place of the projectID argument. NewClient will +// use the project ID from the given credentials or the default credentials +// (https://developers.google.com/accounts/docs/application-default-credentials) +// if no credentials were provided. When providing credentials, not all +// options will allow NewClient to extract the project ID. Specifically a JWT +// does not have the project ID encoded. +const DetectProjectID = "*detect-project-id*" + +// NewClient constructs a new Client which can perform BigQuery operations. +// Operations performed via the client are billed to the specified GCP project. +// +// If the project ID is set to DetectProjectID, NewClient will attempt to detect +// the project ID from credentials. +// +// This client supports enabling query-related preview features via environmental +// variables. By setting the environment variable QUERY_PREVIEW_ENABLED to the string +// "TRUE", the client will enable preview features, though behavior may still be +// controlled via the bigquery service as well. Currently, the feature(s) in scope +// include: stateless queries (query execution without corresponding job metadata). +func NewClient(ctx context.Context, projectID string, opts ...option.ClientOption) (*Client, error) { + o := []option.ClientOption{ + option.WithScopes(Scope), + option.WithUserAgent(fmt.Sprintf("%s/%s", userAgentPrefix, internal.Version)), + } + o = append(o, opts...) + bqs, err := bq.NewService(ctx, o...) + if err != nil { + return nil, fmt.Errorf("bigquery: constructing client: %w", err) + } + + // Handle project autodetection. + projectID, err = detect.ProjectID(ctx, projectID, "", opts...) + if err != nil { + return nil, err + } + + var preview bool + if v, ok := os.LookupEnv("QUERY_PREVIEW_ENABLED"); ok { + if strings.ToUpper(v) == "TRUE" { + preview = true + } + } + + c := &Client{ + projectID: projectID, + bqs: bqs, + enableQueryPreview: preview, + } + return c, nil +} + +// EnableStorageReadClient sets up Storage API connection to be used when fetching +// large datasets from tables, jobs or queries. +// Currently out of pagination methods like PageInfo().Token and RowIterator.StartIndex +// are not supported when the Storage API is enabled. +// Calling this method twice will return an error. +func (c *Client) EnableStorageReadClient(ctx context.Context, opts ...option.ClientOption) error { + if c.isStorageReadAvailable() { + return fmt.Errorf("failed: storage read client already set up") + } + rc, err := newReadClient(ctx, c.projectID, opts...) + if err != nil { + return err + } + c.rc = rc + return nil +} + +func (c *Client) isStorageReadAvailable() bool { + return c.rc != nil +} + +// Project returns the project ID or number for this instance of the client, which may have +// either been explicitly specified or autodetected. +func (c *Client) Project() string { + return c.projectID +} + +// Close closes any resources held by the client. +// Close should be called when the client is no longer needed. +// It need not be called at program exit. +func (c *Client) Close() error { + if c.isStorageReadAvailable() { + err := c.rc.close() + if err != nil { + return err + } + } + return nil +} + +// Calls the Jobs.Insert RPC and returns a Job. +func (c *Client) insertJob(ctx context.Context, job *bq.Job, media io.Reader, mediaOpts ...googleapi.MediaOption) (*Job, error) { + call := c.bqs.Jobs.Insert(c.projectID, job).Context(ctx) + setClientHeader(call.Header()) + if media != nil { + call.Media(media, mediaOpts...) + } + var res *bq.Job + var err error + invoke := func() error { + sCtx := trace.StartSpan(ctx, "bigquery.jobs.insert") + res, err = call.Do() + trace.EndSpan(sCtx, err) + return err + } + // A job with a client-generated ID can be retried; the presence of the + // ID makes the insert operation idempotent. + // We don't retry if there is media, because it is an io.Reader. We'd + // have to read the contents and keep it in memory, and that could be expensive. + // TODO(jba): Look into retrying if media != nil. + if job.JobReference != nil && media == nil { + // We deviate from default retries due to BigQuery wanting to retry structured internal job errors. + err = runWithRetryExplicit(ctx, invoke, jobRetryReasons) + } else { + err = invoke() + } + if err != nil { + return nil, err + } + return bqToJob(res, c) +} + +// runQuery invokes the optimized query path. +// Due to differences in options it supports, it cannot be used for all existing +// jobs.insert requests that are query jobs. +func (c *Client) runQuery(ctx context.Context, queryRequest *bq.QueryRequest) (*bq.QueryResponse, error) { + call := c.bqs.Jobs.Query(c.projectID, queryRequest).Context(ctx) + setClientHeader(call.Header()) + + var res *bq.QueryResponse + var err error + invoke := func() error { + sCtx := trace.StartSpan(ctx, "bigquery.jobs.query") + res, err = call.Do() + trace.EndSpan(sCtx, err) + return err + } + + // We control request ID, so we can always runWithRetry. + err = runWithRetryExplicit(ctx, invoke, jobRetryReasons) + if err != nil { + return nil, err + } + return res, nil +} + +// Convert a number of milliseconds since the Unix epoch to a time.Time. +// Treat an input of zero specially: convert it to the zero time, +// rather than the start of the epoch. +func unixMillisToTime(m int64) time.Time { + if m == 0 { + return time.Time{} + } + return time.Unix(0, m*1e6) +} + +// runWithRetry calls the function until it returns nil or a non-retryable error, or +// the context is done. +// See the similar function in ../storage/invoke.go. The main difference is the +// reason for retrying. +func runWithRetry(ctx context.Context, call func() error) error { + return runWithRetryExplicit(ctx, call, defaultRetryReasons) +} + +func runWithRetryExplicit(ctx context.Context, call func() error, allowedReasons []string) error { + // These parameters match the suggestions in https://cloud.google.com/bigquery/sla. + backoff := gax.Backoff{ + Initial: 1 * time.Second, + Max: 32 * time.Second, + Multiplier: 2, + } + return cloudinternal.Retry(ctx, backoff, func() (stop bool, err error) { + err = call() + if err == nil { + return true, nil + } + return !retryableError(err, allowedReasons), err + }) +} + +var ( + defaultRetryReasons = []string{"backendError", "rateLimitExceeded"} + jobRetryReasons = []string{"backendError", "rateLimitExceeded", "internalError"} + retry5xxCodes = []int{ + http.StatusInternalServerError, + http.StatusBadGateway, + http.StatusServiceUnavailable, + http.StatusGatewayTimeout, + } +) + +// retryableError is the unary retry predicate for this library. In addition to structured error +// reasons, it specifies some HTTP codes (500, 502, 503, 504) and network/transport reasons. +func retryableError(err error, allowedReasons []string) bool { + if err == nil { + return false + } + if err == io.ErrUnexpectedEOF { + return true + } + // Special case due to http2: https://github.com/googleapis/google-cloud-go/issues/1793 + // Due to Go's default being higher for streams-per-connection than is accepted by the + // BQ backend, it's possible to get streams refused immediately after a connection is + // started but before we receive SETTINGS frame from the backend. This generally only + // happens when we try to enqueue > 100 requests onto a newly initiated connection. + if err.Error() == "http2: stream closed" { + return true + } + + switch e := err.(type) { + case *googleapi.Error: + // We received a structured error from backend. + var reason string + if len(e.Errors) > 0 { + reason = e.Errors[0].Reason + for _, r := range allowedReasons { + if reason == r { + return true + } + } + } + for _, code := range retry5xxCodes { + if e.Code == code { + return true + } + } + case *url.Error: + retryable := []string{"connection refused", "connection reset"} + for _, s := range retryable { + if strings.Contains(e.Error(), s) { + return true + } + } + case interface{ Temporary() bool }: + if e.Temporary() { + return true + } + } + // Check wrapped error. + return retryableError(errors.Unwrap(err), allowedReasons) +} diff --git a/vendor/cloud.google.com/go/bigquery/bigquery.replay b/vendor/cloud.google.com/go/bigquery/bigquery.replay new file mode 100644 index 000000000..86bd3a3ea --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/bigquery.replay @@ -0,0 +1,28376 @@ +{ + "Initial": "IjIwMTktMTAtMjhUMTg6MzU6MDYuNTkwMDkzNjU5WiI=", + "Version": "0.2", + "Converter": { + "ClearHeaders": [ + "^X-Goog-.*Encryption-Key$" + ], + "RemoveRequestHeaders": [ + "^Authorization$", + "^Proxy-Authorization$", + "^Connection$", + "^Content-Type$", + "^Date$", + "^Host$", + "^Transfer-Encoding$", + "^Via$", + "^X-Forwarded-.*$", + "^X-Cloud-Trace-Context$", + "^X-Goog-Api-Client$", + "^X-Google-.*$", + "^X-Gfe-.*$" + ], + "RemoveResponseHeaders": [ + "^X-Google-.*$", + "^X-Gfe-.*$" + ], + "ClearParams": null, + "RemoveParams": null + }, + "Entries": [ + { + "ID": "05a0f97b61e4f9bc", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "74" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJkYXRhc2V0UmVmZXJlbmNlIjp7ImRhdGFzZXRJZCI6ImRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMSJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:07 GMT" + ], + "Etag": [ + "gs3AYtwXmh7aF/dUsSnjCA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42RbWvCMBSF/0v2VZu0vtQWhLnNDWEvUBU3xpCYXmu0TbokVUT870ulyj6o+Clwcs65T252aMVFjEI048lvAWp7F1NDNRhUQ2BoYm8S3eh9mc1ntvDpM47HeiiWj71u1zp4mdQLmabbjIp6DJmsG9AmrEqmHnEDl3idabsdkHYrICRo2GNKCHFtXkM6f+ViZVsWxuQ6xPjI4SRSJinQnGuHyeyk47WHcyWXwIzGZ0bjarTGNzJUtgjmoEAwQOHuqA3K591YUzENLmwE7WuIMgZao/B7h5RM7SA0iQajflQuIgfGafqiZJFbvSqbKG5AaZs9JT4m71cCHxtxwV9oUA/bfkZ5atWSqK7kTJr7M6wOp5mT2MCaM7DQshCm/IP/vVG/93QFJAIaH0h+aogpoIZLMeJZmXRbvud1fJ/4zWbTFqRUmzcZ8zmH+JJFskODvRoP0f4PCVPOULQCAAA=" + } + }, + { + "ID": "f0be3768141a8a07", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "210" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODg2MDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoicmVjIiwidHlwZSI6IlJFQ09SRCJ9XX0sInRhYmxlUmVmZXJlbmNlIjp7ImRhdGFzZXRJZCI6ImRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QiLCJ0YWJsZUlkIjoidF9iYWQifX0K" + ] + }, + "Response": { + "StatusCode": 400, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:07 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6WOMQvCMBCF9/6KI7NDBye3YqsUtEJRFxFJm6MNpI3kUkFK/7tJzODudHz37r17cwLA0Bht2AZmBw5bLdDROk1X38WARLzzO7aTqAQYbEES2PcToS62pzqHZrLQc4JRA7U9DpxFcwgn570Fhvjl7+AQIPTA5ej9ndINV7+aQU46aHJ8cSUFi9oS5j32I8vt5PuxsrpmhzJ/ZPX+ciyqs79fkiX5AH4fDhokAQAA" + } + }, + { + "ID": "007350d4f29cb23a", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "366" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im1vZGUiOiJSRVBFQVRFRCIsIm5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifSx7ImZpZWxkcyI6W3sibmFtZSI6ImJvb2wiLCJ0eXBlIjoiQk9PTEVBTiJ9XSwibmFtZSI6InJlYyIsInR5cGUiOiJSRUNPUkQifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:08 GMT" + ], + "Etag": [ + "xGHJs5vCc0GIeyRFDLpKQA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Q3U7CQBCF32W9RXapgZYmXIBURCtoqVfGkKUdykrbrd1VaQjv7rSCNf6F7MVmzpwz82W2ZC3SkNhkIaLnF8iLE80XMZAGAc0j1DejyyvVfj0P2GgMhXcxdLPru36vhw5R5tRKxnGR8PQ0hESealDaDrnmCvTcYK1uixnWvNPpsk67y1j3DL85Y6zVrPb8a8EVCuKlK9I1LlppnSmb0gNoM5IyioFnQjUDmXzq9NWgWS6fINCK/kJH93SKHoNJK0xFj6KtTB4sIYc0AGJvyR5k/MelMLOHqBzHAB3WVIEjqHZ4xGAFCS9xlgLiUBH7YUtSniDhx4cji6ysZr43nowwU/dfElX3xxPfGTkeCokMS8Fzbp2+7wy/RnII6oTnnE+9IdY/Vy+kjGvjYDp1nf6E7B7xNcq9gwJPhB1GqtKVaeRD/l325NuhCnLgWsjUF9X8Vts0DMs0mWkZ5dlgk4n8p8E6YyZeCg0xV/pGhgJRw+8zLNYxali/P3CdMiGDaiBK9zOyewcC/my7TQMAAA==" + } + }, + { + "ID": "f84d1553f81296b8", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "311" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRfdmlld19zdGFuZGFyZHNxbCJ9LCJ2aWV3Ijp7InF1ZXJ5IjoiU0VMRUNUIEFQUFJPWF9DT1VOVF9ESVNUSU5DVChuYW1lKSBGUk9NIGBzaG9sbHltYW4tZGVtby10ZXN0LmRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMS50YWJsZV8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDAxYCIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:08 GMT" + ], + "Etag": [ + "1a06HZtgBjvaM+E52VYphA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SXY+aQBSG/4qZ3rRpVwY2KpLshVrakqBuELdfadhZOODsDjMsM7ohxv/eA9E2aW3jFTnv+XrOO+zJE5cZ8cgDL563UDevDHsQQN4RMKxA3WZ0+OmbKaaPOzZ/6w+cu6/VZnJzgxW87dMbJURTMnmVQamuDGjjZcwwDSZxqD22qeMmw+GYDgdjSsfX+EkopXbfJDsOL4k2TGaszvSzwJEaRB5y+YSDN8ZU2rOsE1i/UKoQwCqu+6kqf+nWzrGqWj1CarR1hsY60mjrEiyrO19bZ+m6XAQ51CBTIN6eHBcH/3ACe45Lu4pLAE5ruoYzFAc0Kd1Aydr1OQeRaeJ93xPJSiQiOU3aCU3VBsEi9j/6EQqlylphsQ7DyTT0yeEHzpHbctogJiYo6cJQySKG+k85Ui+nKK2BGa5kzLt19mDkOO5oRF3bdTEtmDZzlXEEy/4qubYHv9nuAv8zRu197SXdU6K88kN/Fvcmt7fR8ksyW64XcfI+WMXBYha/bm980/sQLee9+zNu9y/771p3/1tyj1xbDSEULG1W6LmXM6EBHRMq7a5H0PWKHH4CKQGoMj0DAAA=" + } + }, + { + "ID": "73dcf15f72046f29", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_view_standardsql?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:08 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "8f7c14edaa1ce301", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:08 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "de3d3e08c604b81c", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "366" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im1vZGUiOiJSRVBFQVRFRCIsIm5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifSx7ImZpZWxkcyI6W3sibmFtZSI6ImJvb2wiLCJ0eXBlIjoiQk9PTEVBTiJ9XSwibmFtZSI6InJlYyIsInR5cGUiOiJSRUNPUkQifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDIifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:08 GMT" + ], + "Etag": [ + "Sqn5ZaQqM5uZ6kSzqV4eAw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42R3U7CQBCF32W9RXYpAm0TLkAbQ8KPttULjSFLO5SVtlu6i4qEd3dawRpRQ3qxmTPnzHyZbslSpCGxyUxEqzXkmzPNZzGQGgHNI9S9Vdp64LerUWv90F5676v7C+i9drvoEEVOLWQcbxKenoeQyHMNStsh11yBnhqsYTWYYU7bbYu1WxZjVhOfKWOsUS/3/GcxcIWCeD4U6RIXLbTOlE3pAbQeSRnFwDOh6oFMvnT6YtAsl88QaEV/oaN7OkVPwaQlpqIn0ZYmF+aQQxoAsbdkDzL441KY2UOUjlOADmvKwAlUOzxisICEFzhzAXGoiP24JSlPkPDzwZGbrKg83x2MrzFT9deJqvqDse9cOy4KiQwLwXVunJ7vXH2P5BBUCde5nLhXWB+vnkkZV8b+ZDJ0emOye8KvVuztb/BE2GGkLIcyjXzIf8qufD1UQQ5cC5n6opzfaHUMw+x0mGk2i78Db5nIjw1mk3XwUmiIudIjGQpEDY9mWAarYP1ef+gUCRmUA1G688juAygkJNdNAwAA" + } + }, + { + "ID": "25e7e6880f82d40d", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0002?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:09 GMT" + ], + "Etag": [ + "Sqn5ZaQqM5uZ6kSzqV4eAw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42R3U7CQBCF32W9RXYpAm0TLkAbQ8KPttULjSFLO5SVtlu6i4qEd3dawRpRQ3qxmTPnzHyZbslSpCGxyUxEqzXkmzPNZzGQGgHNI9S9Vdp64LerUWv90F5676v7C+i9drvoEEVOLWQcbxKenoeQyHMNStsh11yBnhqsYTWYYU7bbYu1WxZjVhOfKWOsUS/3/GcxcIWCeD4U6RIXLbTOlE3pAbQeSRnFwDOh6oFMvnT6YtAsl88QaEV/oaN7OkVPwaQlpqIn0ZYmF+aQQxoAsbdkDzL441KY2UOUjlOADmvKwAlUOzxisICEFzhzAXGoiP24JSlPkPDzwZGbrKg83x2MrzFT9deJqvqDse9cOy4KiQwLwXVunJ7vXH2P5BBUCde5nLhXWB+vnkkZV8b+ZDJ0emOye8KvVuztb/BE2GGkLIcyjXzIf8qufD1UQQ5cC5n6opzfaHUMw+x0mGk2i78Db5nIjw1mk3XwUmiIudIjGQpEDY9mWAarYP1ef+gUCRmUA1G688juAygkJNdNAwAA" + } + }, + { + "ID": "949d602f771a3353", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "302" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im5hbWUiOiJkYXRlIiwidHlwZSI6IkRBVEUifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRfbWV0YWRhdGFfcGFydGl0aW9uX25vY2x1c3Rlcl8wIn0sInRpbWVQYXJ0aXRpb25pbmciOnsidHlwZSI6IkRBWSJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:09 GMT" + ], + "Etag": [ + "/9ZgIqtBre0gTvY495t1AA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Sy07DMBBF/8VsoXZS+kgkFq1AqFJBqIRFQSgyyTQ1JHawp0BV9d8Zh7YgHqIra8Z37j0eecWelM5ZzB5U8bwAuzxA+VACO2SAsqA+j26L0TMOLYgieZkeRx0MBoOTE1IoP+fmpiyXldRHOVTmCMFhnEuUDjANRRAFIuyn3W4kup1IiKhNRyqECFqYVhThpWktLSpURqfaZOXCIdhUUICDcjZW+oli5oi1iznfYrYKY4oSZK1cKzPVrs9fQl5b8wgZOv4LG9+wOb4PJG+W4fgerI1yAjOwoDNg8YptMEZ/bIlmNgiNYh+cbUwz8C/TmhaYzaGSHmamoMwdi+9WTMuK+D4OMlzWvrpOJqPLc5rZ3ZPzl/vTQXLG1vfkiaqCq22g0oV334mmPlUvquGSnkgdvxkqx0YXCdjv7Yl53VaZBekNE9WEB51eGPZ7PRGF4th/xrda2Z+Cflv0aDEkKKXDC5Mremf+w6Mdis+XJIPh+MxPmKwxpNbNNVu/A063LnIJAwAA" + } + }, + { + "ID": "56b227398f0c30ea", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_nocluster_0?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:09 GMT" + ], + "Etag": [ + "/9ZgIqtBre0gTvY495t1AA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Sy07DMBBF/8VsoXZS+kgkFq1AqFJBqIRFQSgyyTQ1JHawp0BV9d8Zh7YgHqIra8Z37j0eecWelM5ZzB5U8bwAuzxA+VACO2SAsqA+j26L0TMOLYgieZkeRx0MBoOTE1IoP+fmpiyXldRHOVTmCMFhnEuUDjANRRAFIuyn3W4kup1IiKhNRyqECFqYVhThpWktLSpURqfaZOXCIdhUUICDcjZW+oli5oi1iznfYrYKY4oSZK1cKzPVrs9fQl5b8wgZOv4LG9+wOb4PJG+W4fgerI1yAjOwoDNg8YptMEZ/bIlmNgiNYh+cbUwz8C/TmhaYzaGSHmamoMwdi+9WTMuK+D4OMlzWvrpOJqPLc5rZ3ZPzl/vTQXLG1vfkiaqCq22g0oV334mmPlUvquGSnkgdvxkqx0YXCdjv7Yl53VaZBekNE9WEB51eGPZ7PRGF4th/xrda2Z+Cflv0aDEkKKXDC5Mremf+w6Mdis+XJIPh+MxPmKwxpNbNNVu/A063LnIJAwAA" + } + }, + { + "ID": "4176229c3cdc06af", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "333" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjbHVzdGVyaW5nIjp7ImZpZWxkcyI6WyJuYW1lIl19LCJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im5hbWUiOiJkYXRlIiwidHlwZSI6IkRBVEUifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRfbWV0YWRhdGFfcGFydGl0aW9uX2NsdXN0ZXJfMCJ9LCJ0aW1lUGFydGl0aW9uaW5nIjp7InR5cGUiOiJEQVkifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:09 GMT" + ], + "Etag": [ + "yedqPy1Zkhz/hCIcO9Y15w==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SXU/CMBSG/0u9FdrNwNgSLlCJIcGP4LxAQ5a6HbbK1o61qJPw3z0dHxo/oldNT9/znue86ZoshExIQB5FulxBVR8Z/pgDOSZgeIr1GpLlTe3cL7I3mp2N4mt/6nRe+n1UCNunM5XndcFlK4FCtQxoEyTccA0mcpnjO8ztRd2uz7odnzH/BI+IMea0TVTgCCuNSl4ZYYSSUZyvtIEqYmivIZ+PhVzgkMyYUgeU7iHbqVJpDrwUuh2r4lCnzy4tK/UEsdH0BzK6I9P0P4i0iULTP0kb3QTmUIGMgQRrsoMY/ZIQ9uwAGsV/YPZjmoY/iDYYXpxBwS3KXECeaBI8rInkBdJtD7SrS3u7DSejqwvsObyj76f380E4JJsZehpRwM1+nJCpdT+IpnaqXBWnNS6IFZsLXsdKpiFUX8sT9bK/xRVwaxiKZrjT8Vy353nM77qu/Yavpai+C3onzMNYUJBzbS5VInDP5JuH5/Y+NgkHp+Oh7VBxY4ilu1tLsA1ut9Ehr20cs83mHReJFo8kAwAA" + } + }, + { + "ID": "935482881ea36a18", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_cluster_0?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:09 GMT" + ], + "Etag": [ + "yedqPy1Zkhz/hCIcO9Y15w==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SXU/CMBSG/0u9FdrNwNgSLlCJIcGP4LxAQ5a6HbbK1o61qJPw3z0dHxo/oldNT9/znue86ZoshExIQB5FulxBVR8Z/pgDOSZgeIr1GpLlTe3cL7I3mp2N4mt/6nRe+n1UCNunM5XndcFlK4FCtQxoEyTccA0mcpnjO8ztRd2uz7odnzH/BI+IMea0TVTgCCuNSl4ZYYSSUZyvtIEqYmivIZ+PhVzgkMyYUgeU7iHbqVJpDrwUuh2r4lCnzy4tK/UEsdH0BzK6I9P0P4i0iULTP0kb3QTmUIGMgQRrsoMY/ZIQ9uwAGsV/YPZjmoY/iDYYXpxBwS3KXECeaBI8rInkBdJtD7SrS3u7DSejqwvsObyj76f380E4JJsZehpRwM1+nJCpdT+IpnaqXBWnNS6IFZsLXsdKpiFUX8sT9bK/xRVwaxiKZrjT8Vy353nM77qu/Yavpai+C3onzMNYUJBzbS5VInDP5JuH5/Y+NgkHp+Oh7VBxY4ilu1tLsA1ut9Ehr20cs83mHReJFo8kAwAA" + } + }, + { + "ID": "0afa71eb8a71812c", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_nocluster_0?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "32" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJyZXF1aXJlUGFydGl0aW9uRmlsdGVyIjp0cnVlfQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:10 GMT" + ], + "Etag": [ + "hMOSCWlX5GKYUPYQ/XU40w==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SX0/bMBTFv4t5XWsnpX8SiYcCpUIrG2tTjWpCkUluU4NjB9uBVRXffddZWyZgok+Rr8859+ejbMiDUDmJyZ0oHmsw6yPH7ySQLwQcL3C+uvo+O/spb7rjr4v59eIHvZkfs+eTE1QI77MrLeW65KqVQ6lbDqyLc+64BZeGLIgCFg7SXi9ivW7EWNTBT8oYC9ouLXGFl6YVN044oVWqdCZr68CkDBdYkMuJUA8ew7nKxpTuMNuF1oUEXgnbznS5n9OnkFZG30PmLP2AjW7ZLD0EkjZlWHoAa6OcwhIMqAxIvCFbjMv/tISeLUKjOARnt6YxfMr0ggVmKyi5h1kKkLkl8a8NUbxEvr8fDFxX/jRLppffxujZ32PyP/fnw2REXm4x04kSrncLhSp8+l60QIeBx1qYV82FkAhEYmdqQL+qy9M1FoB63xseJ1oVCZi346l+3p0yA9xHJaJBC7r9MBz0+ywK2bH/VX9XwrwXDDqsj7WhQHLrrnQusIX8TUbAOmH0+s5keDoZeYfOmkAczWefPeoPApFHpEUDAAA=" + } + }, + { + "ID": "a904db128d354ce7", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_nocluster_0?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "32" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJyZXF1aXJlUGFydGl0aW9uRmlsdGVyIjp0cnVlfQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:10 GMT" + ], + "Etag": [ + "SZfujLFgKyd7haukqhQKlw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SQU/jMBCF/4u5Qu2kS9NE4gBaQIiCoA0HWK0ik0wTU8dObQeIKv4749CWFbsreoo8fu/N56esyEKogiTkUZTLFky35/ijBLJPwPES57OHefs0OSsvuyKqeLtYVreX8uXoCBXC+2ylpexqrg4KqPWBA+uSgjtuwWUhC+KAheNsNIrZ6DBmLB7iJ2OMBQOX1bjCS7OGGyec0CpTOpetdWAyhgssyPlEqAWuqZxrbELpBnNQal1K4I2wg1zX2zl9Dmlj9BPkztJ/sNE1m6W7QNK+DEt3YO2VU5iDAZUDSVZkjXHxn5bQs0boFbvgbNb0hm+Z3rDAvIKae5i5AFlYkvxaEcVr5Pv4YGDX+NMsnV5cn6Nne4/Jf9z/PE5PydtvzHSihpvNQqFKn74V3aPDwLIV5lNzJiQCkcSZFtCv2vqkwwJQ73vD40SrMgXzdTzVL5tTboD7qFT0aMFhFIbjKGJxyH74X/W1EeZvwXjIIqwNBZJbd6ULgS0UXzICFg2Hn+9Mj08mp96h8z4QR3ez7x71DqGtDHhFAwAA" + } + }, + { + "ID": "dea634411117aae5", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "324" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im5hbWUiOiJkYXRlIiwidHlwZSI6IkRBVEUifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRfbWV0YWRhdGFfcGFydGl0aW9uX25vY2x1c3Rlcl8xIn0sInRpbWVQYXJ0aXRpb25pbmciOnsiZXhwaXJhdGlvbk1zIjoiMTAwMCIsInR5cGUiOiJEQVkifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:10 GMT" + ], + "Etag": [ + "R5OBB6v5jqD4cvp5U45csA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SXU/CMBSG/0u9VdpNxtgSLyASY4IfwXFhjFlqdxiFrZ1rQQnhv3s6Ab8jV835et/nnHRN5lJlJCZPMn9eQL06svypAHJMwPIc86Pgpt/vLIPZ83lbLKtg3A6E6Z2dYYd0c2aqi2JVcnWSQalPLBgbZ9xyAzb1mRd5zO+mnU7EOkHEWHSKT8oY81o2LdHCtaYVr620UqtUaVEsjIU69dDAQDEZSjVHm6m1lYkp3WG2cq3zAnglTUvocp+nS59WtZ6BsIb+wka3bIYeAkmbYxh6AGvTOYIJ1KAEkHhNthiXf1wJZ7YITcchODubZuBfpg0eUEyh5A5mIqHIDIkf1kTxEvneHxRcVS66S0aX1xc4s6+j8qf6eS8ZkM0jalpZwu3OUKrcqe+b7t3Hea1kzV31Cg2Jh+SORS3K/goXxxQjTTjUKk+g/p4e6ZddJGpohBLZIHlB6PvdMPRYNwi/OH1p6J6y0Jkek4Ibe6UzidtnPzQiP/zYL+n1hwM3oUUjiKnxHdm8AYs0pW0fAwAA" + } + }, + { + "ID": "18a74cb64db8020c", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_nocluster_1?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:11 GMT" + ], + "Etag": [ + "R5OBB6v5jqD4cvp5U45csA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SXU/CMBSG/0u9VdpNxtgSLyASY4IfwXFhjFlqdxiFrZ1rQQnhv3s6Ab8jV835et/nnHRN5lJlJCZPMn9eQL06svypAHJMwPIc86Pgpt/vLIPZ83lbLKtg3A6E6Z2dYYd0c2aqi2JVcnWSQalPLBgbZ9xyAzb1mRd5zO+mnU7EOkHEWHSKT8oY81o2LdHCtaYVr620UqtUaVEsjIU69dDAQDEZSjVHm6m1lYkp3WG2cq3zAnglTUvocp+nS59WtZ6BsIb+wka3bIYeAkmbYxh6AGvTOYIJ1KAEkHhNthiXf1wJZ7YITcchODubZuBfpg0eUEyh5A5mIqHIDIkf1kTxEvneHxRcVS66S0aX1xc4s6+j8qf6eS8ZkM0jalpZwu3OUKrcqe+b7t3Hea1kzV31Cg2Jh+SORS3K/goXxxQjTTjUKk+g/p4e6ZddJGpohBLZIHlB6PvdMPRYNwi/OH1p6J6y0Jkek4Ibe6UzidtnPzQiP/zYL+n1hwM3oUUjiKnxHdm8AYs0pW0fAwAA" + } + }, + { + "ID": "72c3f8f5da79ab24", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "355" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjbHVzdGVyaW5nIjp7ImZpZWxkcyI6WyJuYW1lIl19LCJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im5hbWUiOiJkYXRlIiwidHlwZSI6IkRBVEUifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRfbWV0YWRhdGFfcGFydGl0aW9uX2NsdXN0ZXJfMSJ9LCJ0aW1lUGFydGl0aW9uaW5nIjp7ImV4cGlyYXRpb25NcyI6IjEwMDAiLCJ0eXBlIjoiREFZIn19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:11 GMT" + ], + "Etag": [ + "8m4hqWfphAvrKD22YeJv8A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Sa0/bMBSG/4v5CvUl0KaR+FAEQmxlmkqmCU0oMslpYojtYLvdqqr/fcfpZWMXwSfr3N73OUdek2dlKpKRR1W/LMCtjoJ8bIEcEwiyxnyqT5uXr/OumSzdx0sh7uHDMp2cn2OHinO+sW270tKcVKDtSQAfskoG6SEUgvExZyIthsMxG56NGRsn+BSMMT4IhUaL2Fp00gUVlDVF2S58AFdwlPfQzqfKPKNJE0LnM0r3kIPa2roF2Sk/KK0+5OlS0M7ZJyiDp/8gozsyT9+DSPtTePomad83gzk4MCWQbE12EDf/uRDO7AD6jvfA7G36gTeINni8sgEtI8pcQVt5kn1bEyM10m0flFt1MbrLZzefrnHmUEfd3+qXk/yKbB5QMygNn/d2ytRR/dB0H7/Mj045Gau3aEg4ckcWs9AXK1wbU4z04dSaOgf3Z3pmv++j0kEvlKseiZ+NhEhHI86FSF45vWpIEzaKpseklT7c2krh9tVfGknCf+2XTy6mV3HClr0gpr7cRYLtOXd7Hq64PdLDZvMTDj8byDoDAAA=" + } + }, + { + "ID": "636377dfb40ad235", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_cluster_1?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:11 GMT" + ], + "Etag": [ + "8m4hqWfphAvrKD22YeJv8A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Sa0/bMBSG/4v5CvUl0KaR+FAEQmxlmkqmCU0oMslpYojtYLvdqqr/fcfpZWMXwSfr3N73OUdek2dlKpKRR1W/LMCtjoJ8bIEcEwiyxnyqT5uXr/OumSzdx0sh7uHDMp2cn2OHinO+sW270tKcVKDtSQAfskoG6SEUgvExZyIthsMxG56NGRsn+BSMMT4IhUaL2Fp00gUVlDVF2S58AFdwlPfQzqfKPKNJE0LnM0r3kIPa2roF2Sk/KK0+5OlS0M7ZJyiDp/8gozsyT9+DSPtTePomad83gzk4MCWQbE12EDf/uRDO7AD6jvfA7G36gTeINni8sgEtI8pcQVt5kn1bEyM10m0flFt1MbrLZzefrnHmUEfd3+qXk/yKbB5QMygNn/d2ytRR/dB0H7/Mj045Gau3aEg4ckcWs9AXK1wbU4z04dSaOgf3Z3pmv++j0kEvlKseiZ+NhEhHI86FSF45vWpIEzaKpseklT7c2krh9tVfGknCf+2XTy6mV3HClr0gpr7cRYLtOXd7Hq64PdLDZvMTDj8byDoDAAA=" + } + }, + { + "ID": "99b89f6b096e557d", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_nocluster_1?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "32" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJyZXF1aXJlUGFydGl0aW9uRmlsdGVyIjp0cnVlfQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:12 GMT" + ], + "Etag": [ + "ors7Ie/+Jrme10hRIhQsSg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SW2/aMBTHv4v7uIKdIAhE6kOrXsREpw2yh2maIjc5JC6+pLazDaF+9x2H21q1Kk+Rj/+Xn4+yISuhS5KSB1E9tWDXZ54/SCDnBDyvcG6sS6ZAP322CiJWz6f1N7eoLi5QIYLP1UbKteK6V4IyPQ/OpyX33IHPYxZNIhaP89FowkbDCWOTAX5yxljU97nCiiDNG2698MLoXJtCts6DzSMscCCXM6FXWFN737iU0j1mvzKmksAb4fqFUYc5/R3TxppHKLyjb7DRHZujp0DSbhmOnsDaKeewBAu6AJJuyA5j+s6W0LND6BSn4OxrOsOHTM+4wKIGxQPMUoAsHUl/bojmCvm2HwxcN+G0yObTL3foOdxj8n/315fZDXn+hZleKPi6LxS6CukH0Y/w4/xthOXh9h4LSYTkOLXw1Ap7dN4KiZgk9bYFTNWtulrjWtAQ1HicGV1lYF+P5+bP/lRY6Goy0QFHwySOx0kSsfEwecHxQjAesGSLJLnz96YUuJvydUbMBvHx9dnl1ewmOEzRBeLo++KjR/0DU9+2oFsDAAA=" + } + }, + { + "ID": "162574a9830d41af", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_nocluster_1?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "32" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJyZXF1aXJlUGFydGl0aW9uRmlsdGVyIjp0cnVlfQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:12 GMT" + ], + "Etag": [ + "X62OLE2TahFdIQbWC+Rx3A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42S207jMBCG38VcArWT0qaNxEXZLahSOWwJghVaRW4yTQ2OHWwHWlW8+45DWxbEil5FHv+Hz6OsyKNQOYnJVBRPNZjlnuNTCeSAgOMFzu+64eV4GCZ8fpqPfk1vf+xPFu3B8TEqhPfZuZZyWXJ1mEOpDx1YF+fccQsuDVnQD1jYS7vdPut2+oz12/hJGWNBy6UlVnhpWnHjhBNapUpnsrYOTBpggQU5Gwv1iDVz5yobU7rBbBVaFxJ4JWwr0+V2Tp9DWhn9AJmz9As2umazdBdI2izD0h1YG+UEZmBAZUDiFVljjP6zJfSsERrFLjibmsbwLdMrLjCbQ8k9zEyAzC2J71dE8RL53j4YuKz86TqZjC7O0LO9x+R/7n8OkiF5/YOZTpRwtSkUqvDpW9Fv/+MsKmG4vz3HQhIgOU4NPNXCvDtPhURMEjtTA6aqujxZ4lrQ4NV4HGtVJGA+jyf6ZXPKDDQ1iWiAg04Uhr0oClivE33g+CDotVn0hiS5dec6F7ib/HNGeNQ+en99MjgZD71DZ00gjm6uv3vUX6/OeGpbAwAA" + } + }, + { + "ID": "7dbfbda208b1c486", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "332" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im5hbWUiOiJkYXRlIiwidHlwZSI6IkRBVEUifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRfbWV0YWRhdGFfcGFydGl0aW9uX25vY2x1c3Rlcl8yIn0sInRpbWVQYXJ0aXRpb25pbmciOnsicmVxdWlyZVBhcnRpdGlvbkZpbHRlciI6dHJ1ZSwidHlwZSI6IkRBWSJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:12 GMT" + ], + "Etag": [ + "zH3uptlELKNbbZuQe4DlHg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SUU/bMBSF/4v3OmonpU0TiQcQ3UAUtJXwANMUucltanDsYN/AStX/zk1oyzQ2rU+Wr88598tRVuxBmYIlbKbKxwbc8hPKmQb2mQHKkuYvZ/2mRj2eXFzNZnfNdzg81Wfl0REpVOvzC6v1spLmoIDKHiB4TAqJ0gNmoQjiQISjbDiMxXAQCxH36ciEEEEPs4pWtNKslg4VKmsyY3PdeASXhbTAg55PlHmgNQvE2iecbzF7pbWlBlkr38tttZvzp5DXzt5Djp7/hY1v2DzfB5J3ZXi+B2unnMIcHJgcWLJiG4zzf7REng1Cp9gHZ7umM/yXaU0F5guoZAszV6ALz5IfK2ZkRXxvBwUu6/Z2nU7Pr76SZ/dOyb+9nx6nY7b+SZmoKvi2XahM2abvRLfkcPDYKPeu+aI0AbEEXQPkN011sqQCSC9Yd51YU6bg/hxP7fP2ljuQbVSqOrRgEIXhKIqCcHAYtb/qr1q5j4JRX0RUGwm09HhpC0UtFB8yhkH8/p3p8clk3Dps3gXS6OaarV8BptmUvCcDAAA=" + } + }, + { + "ID": "d6b7e7a4d1020e41", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_nocluster_2?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:12 GMT" + ], + "Etag": [ + "zH3uptlELKNbbZuQe4DlHg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42S0U/bMBDG/xfvFWonpU0TiQcQ3UAUBCV7GNMUuck1NTh2sC9Aqfjfd8nagsYm+mTd+fu++/nkFbtXpmAJm6nyoQG3/IJypoHtMUBZUv/ltN/UqMeT88vZ7La5hoMTfVoeHpJCtT6/sFovK2n2C6jsPoLHpJAoPWAWiiAORDjKhsNYDAexEHGfjkwIEfQwq2hEK81q6VChsiYzNteNR3BZSAM86PlEmXsas0CsfcL5BrNXWltqkLXyvdxW2z5/DHnt7B3k6Pk/2PiazfNdIHm3DM93YO2UU5iDA5MDS1ZsjXH2ny2RZ43QKXbB2YzpDJ8yvdIC8wVUsoWZK9CFZ8nPFTOyIr4/BwUu67a6Sadnl9/Is72n5Hf3J0fpmL3+okxUFVxtBipTtulb0Q9yOHholHvTfFWagFiCrgHym6Y6XtICSC9YV06sKVNwf7en9mlT5Q5kG5WqDi0YRGE4iqIgHBxE7Vd9rpX7KBj1RURrI4GWHi9soWgLxYeMYRC/vTM9Op6MW4fNu0Bqfb/57FG/AcvAUy5FAwAA" + } + }, + { + "ID": "b7a1a05804c4db09", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "363" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjbHVzdGVyaW5nIjp7ImZpZWxkcyI6WyJuYW1lIl19LCJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im5hbWUiOiJkYXRlIiwidHlwZSI6IkRBVEUifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRfbWV0YWRhdGFfcGFydGl0aW9uX2NsdXN0ZXJfMiJ9LCJ0aW1lUGFydGl0aW9uaW5nIjp7InJlcXVpcmVQYXJ0aXRpb25GaWx0ZXIiOnRydWUsInR5cGUiOiJEQVkifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:13 GMT" + ], + "Etag": [ + "9HsBS6c1OUU7Wi7IObMI+w==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42S3U7jMBCF38VcstROKpomUi+oloVKZUFtqtUKochNpqnBsYPtLFRV351x+gNiQXAVeXzOmc9HWZMHoQqSkLkoHxswqyPH5xLIDwKOlziPL+1w2suD69ks+iOi0fX8anT8NBigQnifXWopVxVXJwVU+sSBdUnBHbfgspAFccDCftbrxax3GjMWd/GTMcaCjssqXOGlWc2NE05oleWysQ5MFmK8BbkYC/WAS5bO1TahdA/ZKbUuJfBa2E6uq8Oc/gtpbfQ95M7SD8jojszS7yDStgpLvyRtdRNYgAGVA0nWZAcx+qQh9OwAWsV3YPZrWsMXRBssL19CxT3KQoAsLElu10TxCum2H4xb1f40TSej3xfoOdxj7pv7n2fpOdncYaYTFdzs1wlV+vSD6C86DDw2wrxqfgmJQCRxpgH0q6YarvD5qGekPY61KlMw78cT/bQ/5Qa4j0pFixacRmHYj6IgjFnf/6TPtTD/C/pdFmFpKJDcuitdCGyheJ/Rxapf35meDcfn3qHzNhBHs6kn2Na6e++hzW1Zd5vNCx0B1uxCAwAA" + } + }, + { + "ID": "d5bc9af784dd4fc8", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_cluster_2?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:13 GMT" + ], + "Etag": [ + "9HsBS6c1OUU7Wi7IObMI+w==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SXW/aMBSG/4t32YGdoBISiYuisRWJrhUETdM0RSY5BLeOndrOWoT47z0OH53YR3tl+fg973nOK2/Jg1AFSchSlI8NmM0Hx5cSyEcCjpdYj6/taN7Pg9vFIvomosnt8mZy8TQcokL4PrvWUm4qrjoFVLrjwLqk4I5bcFnIgjhg4SDr92PWv4wZi3t4ZIyxoOuyCkd4aVZz44QTWmW5bKwDk4Vob0GupkI94JC1c7VNKD1CdkutSwm8Frab6+pUp79CWht9D7mz9C9k9EBm6XsQaRuFpW+StroZrMCAyoEkW3KAmPwjIew5ALSK98Acx7QNbxDtMLx8DRX3KCsBsrAk+bElildItz/QblP72zydTb5+wZ7TO/r+9v7pKh2T3U/0dKKCu+M4oUrvfhJ9xw4Dj40wr5rPQiIQSZxpAPtVU402uD7qGWmvU63KFMx5eaafjrfcAPdWqWjRgssoDAdRFIQxG/hP+lwL86dg0GMRhoYCya270YXAFIpzjx5G/bpnejWajn2HzltDLC3mnmAf62HfU5r7sHws/936BaLlN9NgAwAA" + } + }, + { + "ID": "9affe0731b3a4f40", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_nocluster_2?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "33" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJyZXF1aXJlUGFydGl0aW9uRmlsdGVyIjpmYWxzZX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:13 GMT" + ], + "Etag": [ + "5sU7NtKUea+MywanKU3aAw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42S3U7jMBCF38V7CdROummaSFwULawQBaE2vVghFJlkmhocO9judqOq78442xbEj+hVNOMz53wzypo8CVWSlDyI6nkJpv3h+IMEckzA8Qr7kZ3FN+5qBvzoul1xdTXr89Hq9BQVws/ZhZayrbk6KaHWJw6sS0vuuAWXhyxIAhYO88EgYYMoYSzp4ydnjAU9l9cY4aV5w40TTmiVK13IpXVg8hADLMj5WKgnjFk419iU0h1mr9K6ksAbYXuFrvd9+jekjdGPUDhLP2GjWzZLD4Gk3TEsPYC1U05gDgZUASRdky3G5RdXwpktQqc4BGcX0w18y7TBAxYLqLmHmQuQpSXp3ZooXiPf/w8ato2vptnk8uY3zuzf0fnN+69Rdk429+jpRA23u0ChKu++F/3xqWpZn7W4InYY6cqxVlUG5n17ole7qjDAvWEmuvAgisNwGMdBGP2M/c/4rxHmo2DYZzEeBgWSW3etS4F7lu89+lGYvG6Sjc7G535CF50htmZTrA08L4V5Xe1CSLwjSedcWti8ALU4j3EoAwAA" + } + }, + { + "ID": "9ef1fdbea03d3c74", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_nocluster_2?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "33" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJyZXF1aXJlUGFydGl0aW9uRmlsdGVyIjpmYWxzZX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:13 GMT" + ], + "Etag": [ + "5sU7NtKUea+MywanKU3aAw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42S3U7jMBCF38V7CdROummaSFwULawQBaE2vVghFJlkmhocO9judqOq78442xbEj+hVNOMz53wzypo8CVWSlDyI6nkJpv3h+IMEckzA8Qr7kZ3FN+5qBvzoul1xdTXr89Hq9BQVws/ZhZayrbk6KaHWJw6sS0vuuAWXhyxIAhYO88EgYYMoYSzp4ydnjAU9l9cY4aV5w40TTmiVK13IpXVg8hADLMj5WKgnjFk419iU0h1mr9K6ksAbYXuFrvd9+jekjdGPUDhLP2GjWzZLD4Gk3TEsPYC1U05gDgZUASRdky3G5RdXwpktQqc4BGcX0w18y7TBAxYLqLmHmQuQpSXp3ZooXiPf/w8ato2vptnk8uY3zuzf0fnN+69Rdk429+jpRA23u0ChKu++F/3xqWpZn7W4InYY6cqxVlUG5n17ole7qjDAvWEmuvAgisNwGMdBGP2M/c/4rxHmo2DYZzEeBgWSW3etS4F7lu89+lGYvG6Sjc7G535CF50htmZTrA08L4V5Xe1CSLwjSedcWti8ALU4j3EoAwAA" + } + }, + { + "ID": "a0b285c02b2703d5", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "369" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im5hbWUiOiJkYXRlIiwidHlwZSI6IkRBVEUifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRfbWV0YWRhdGFfcGFydGl0aW9uX25vY2x1c3Rlcl8zIn0sInRpbWVQYXJ0aXRpb25pbmciOnsiZXhwaXJhdGlvbk1zIjoiMTAwMCIsImZpZWxkIjoiZGF0ZSIsInJlcXVpcmVQYXJ0aXRpb25GaWx0ZXIiOnRydWUsInR5cGUiOiJEQVkifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:14 GMT" + ], + "Etag": [ + "jPXOPS5eOIfOz/1rTfnDYQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Sa2/TMBSG/4v5ymo7pZdE2odNG6hSR0sbpE0TirzkJPXm2JntAKXqf+c464VNIPrJOpf3fR8deUOepC5IQh5k9dyCXb/z4kEBeU/Aiwr7j/Pb2Xw5gNmknP2i3Kalvrr7cn6OGzLo3Moota6FPiugNmcenE8K4YUDn0WMx5xF42w4jNlwEDMW9/HJGGO857MaI8Jq1gjrpZdGZ9rkqnUebNbHAAeqnEr9hDEr7xuXULrH7FXGVApEI10vN/WhT79HtLHmEXLv6F/Y6I7N0VMgaXcMR09g7TYXUIIFnQNJNmSHMfnHlVCzQ+g2TsHZx3SC/zJt8YD5CmoRYEoJqnAkud8QLWrke3nQcN2EapkuJp8/oeYwR+c/5lcX6TXZfkNPL2uY7wOlroL7YekufJyfjbQiTG8wkHAkx24HcLS18NxKezT6KBVSk8TbFjBEt/XlGq+EgiDGcmp0lYJ9216YH/sqt9ClprLj54NRFI1HI96PB/wV1quFcZ+NXgiVcP7GFBJJi7ceH1jEj8dILy6n10Fh8s4QW1+XZPsbGqa4hkwDAAA=" + } + }, + { + "ID": "b0491c13f2cfcb3e", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_nocluster_3?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:14 GMT" + ], + "Etag": [ + "jPXOPS5eOIfOz/1rTfnDYQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Sa0/bMBSG/4v3ddR2ul4SiQ8g2FSprF2bSUNoikxykhocO9jORlfx33ccegG0iX6yzuV93ydH2ZB7qQuSkFtZPbRg1x+8uFVAPhLwosL+3fzHbL4cwGxSzv5QbtNSX1x/Oz3FDRl0bmWUWtdCnxRQmxMPzieF8MKBzyLGY86icTYcxmw4iBmL+/hkjDHe81mNEWE1a4T10kujM21y1ToPNutjgANVTqW+x5iV941LKN1h9ipjKgWika6Xm3rfp78i2lhzB7l39B9sdMvm6DGQtDuGo0ewdpsLKMGCzoEkG7LFmPznSqjZInQbx+DsYjrBu0xPeMB8BbUIMKUEVTiS3GyIFjXyPT9ouG5CtUwXk69fULOfo/OL+cVZekmefqKnlzXMd4FSV8F9v3QdfpzHRloRplcYSDiSY7cDONhaeGilPRh9lgqpSeJtCxii2/p8jVdCQRBjOTW6SsG+bS/M712VW+hSU9nx88EoisajEe/HA/4K69XCuM9Gz4RKOH9lComkxVuPTyzih2OkZ+fTy6AweWeIre/L9z7qLzM78v1qAwAA" + } + }, + { + "ID": "00a9957de4c2948b", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "400" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjbHVzdGVyaW5nIjp7ImZpZWxkcyI6WyJuYW1lIl19LCJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im5hbWUiOiJkYXRlIiwidHlwZSI6IkRBVEUifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRfbWV0YWRhdGFfcGFydGl0aW9uX2NsdXN0ZXJfMyJ9LCJ0aW1lUGFydGl0aW9uaW5nIjp7ImV4cGlyYXRpb25NcyI6IjEwMDAiLCJmaWVsZCI6ImRhdGUiLCJyZXF1aXJlUGFydGl0aW9uRmlsdGVyIjp0cnVlLCJ0eXBlIjoiREFZIn19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:14 GMT" + ], + "Etag": [ + "0T5ZkW3wj1HKjwQqST7u3Q==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SXW/TMBiF/4u5ZbWTrE0TaRebGDDRIdYGTQNNkZe8Td06cWo7lKrqf+e1+8X40HZlvV/nPDryhixEU5KUPIlq2YFev7H8SQJ5S8DyCvss639b3EerefDx03x1t5xkcRfdXVzghnB3ZqakXNe8OSuhVmcWjE1LbrkBm4csSAIWDvPBIGGDfsJYEuGTM8aCns1rtHCrecu1FVaoJi9kZyzoPEJ5A3I6Es0CTWbWtial9ADZq5SqJPBWmF6h6mOf/ghpq9UcCmvoP8jonszQ1yBSH4WhL5L6vTFMQUNTAEk3ZA9x85+E8GYP4DdeA3Ow8QcvEG0xvGIGNXcoUwGyNCT9viENr5Fu96DcunXVJBvffP6AN8c56v42f3eZXZPtI2paUcOXg51oKqd+XHpwX+ZnKzR301s0JAFyY9cDnGQ1LDuhT0LvhURqklrdAZo0XX21xozc1yO+HKmmykD/2R6r1aEqNHjXTHj+oB+H4TCOg/OIRc+wni0MIxbvCCU39laVAknLvzTOw+QURnZ5Nbp2F6rwgtj6OnEEu+z3oRwj3yX6uN3+AjVBonZnAwAA" + } + }, + { + "ID": "a029148b82625564", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_cluster_3?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:14 GMT" + ], + "Etag": [ + "0T5ZkW3wj1HKjwQqST7u3Q==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SXU/bMBiF/4u5HbWT0KaJxAVosKGVabSZpjFNkUnepm4dO7WddVXFf9/r9Av2BVeW349zHh95QxZClSQlD6JatmDWJ44/SCBvCDheYZ1l/fvFl2g1D95/mK/ulpMsbqO783OcEH7PzrSU65qr0xJqferAurTkjltweciCJGDhMB8MEjboJ4wlER45YyzoubxGCz+aN9w44YRWeSFb68DkEcpbkNORUAs0mTnX2JTSPWSv0rqSwBthe4WuD3X6I6SN0XMonKV/IaM7Mktfg0i7KCx9kbSbG8MUDKgCSLohO4ibfySEOzuAbuI1MHubbuEFokcMr5hBzT3KVIAsLUm/bYjiNdJtD5RbN/42ycY3H9/hzqGPuk/6by+yK/L4HTWdqOHT3k6oyqsfhr76L/OzEYb77i0akgC5sdoBHGUNLFthjkLXQiI1SZ1pAU1UW1+uMSP/9Uh3HWlVZWB+L4/1an8rDHSumej4g34chsM4Ds4iFj3DejYwjFi8JZTcultdCiQt/9A4C5NjGNnF5ejKb+iiE8TS54kn2Ga/C+UQ+TZRn91/X/0LAme45YUDAAA=" + } + }, + { + "ID": "7ba557d43113b6f5", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_nocluster_3?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "33" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJyZXF1aXJlUGFydGl0aW9uRmlsdGVyIjpmYWxzZX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:15 GMT" + ], + "Etag": [ + "jXlEkPcyZpPt/vdyy8xxIw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SW0/jMBCF/4v3damdRL0kEg8gyqpSWVUlSAtoFZlkmpo6drBdaFT1v+84NOWiRfQpmpkz53weZUtWQhUkIQ+ifFqDaX44/iCB/CTgeIn9xz9yvJrlzV09c/S5aJrRZjN5OT1FhfB7dqmlbCquTgqo9IkD65KCO27BZSEL4oCFo2wwiNmgHzMWR/jJGGNBz2UVRnhpVnPjhBNaZUrncm0dmCzCAAtyMRVqhTFL52qbUNph9kqtSwm8FraX6+rQp88hrY1+hNxZ+h82umez9BhI2h7D0iNYW+UcFmBA5UCSLdljTL64Eu7sEVrFMThdTLvwLdMOD5gvoeIeZiFAFpYk91uieIV8rx80bGpfXafzye9fuHOYo/O7+cVZOia7v+jpRAWzLlCo0rsfRLf+x9nUwnA/vcJAEiA5dluAzhZt1Lo6b/AO2PJjLKdalSmYz+25fumq3EDrm4qWMOgPw3A0HAZR3A8+BH8QjCI2fGWQ3LorXQhkKT579FkUvT03PTufjv2GzltDbN1cY23gaS3M2/svhcRjk2TBpYXdP6DSilNNAwAA" + } + }, + { + "ID": "0455d09eee791c07", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_nocluster_3?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "33" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJyZXF1aXJlUGFydGl0aW9uRmlsdGVyIjpmYWxzZX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:15 GMT" + ], + "Etag": [ + "jXlEkPcyZpPt/vdyy8xxIw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SW0/jMBCF/4v3damdRL0kEg8gyqpSWVUlSAtoFZlkmpo6drBdaFT1v+84NOWiRfQpmpkz53weZUtWQhUkIQ+ifFqDaX44/iCB/CTgeIn9xz9yvJrlzV09c/S5aJrRZjN5OT1FhfB7dqmlbCquTgqo9IkD65KCO27BZSEL4oCFo2wwiNmgHzMWR/jJGGNBz2UVRnhpVnPjhBNaZUrncm0dmCzCAAtyMRVqhTFL52qbUNph9kqtSwm8FraX6+rQp88hrY1+hNxZ+h82umez9BhI2h7D0iNYW+UcFmBA5UCSLdljTL64Eu7sEVrFMThdTLvwLdMOD5gvoeIeZiFAFpYk91uieIV8rx80bGpfXafzye9fuHOYo/O7+cVZOia7v+jpRAWzLlCo0rsfRLf+x9nUwnA/vcJAEiA5dluAzhZt1Lo6b/AO2PJjLKdalSmYz+25fumq3EDrm4qWMOgPw3A0HAZR3A8+BH8QjCI2fGWQ3LorXQhkKT579FkUvT03PTufjv2GzltDbN1cY23gaS3M2/svhcRjk2TBpYXdP6DSilNNAwAA" + } + }, + { + "ID": "16579c8f7469ad6f", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_nocluster_3?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:15 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "7ea0df705f752418", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_nocluster_2?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:15 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "f6fb6ad58a1f3be9", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_nocluster_1?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:15 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "3305dfab8cd99722", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_metadata_partition_nocluster_0?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:16 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "946d03804e0c508e", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0002?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:16 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "f3548433f3d748dd", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "246" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDMifSwidGltZVBhcnRpdGlvbmluZyI6eyJleHBpcmF0aW9uTXMiOiI4NjQwMDAwMCIsInR5cGUiOiJEQVkifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:16 GMT" + ], + "Etag": [ + "aYCSY0ris6vF95xjwQk65A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Ry27CMBBF/8XdAnYSkpBIXUAfUiWQWqALVsgkQzAkcWqbR4T499pWqERfijf2XN+Ze2Sf0Y6VKYrRimUfexD1naKrHFAHgaKZ1uniYbYggsng8Bz5p+3xbRf4w/t77WCmT254ntcFLbspFLyrQKo4pYpKUEuXOJFD3MEyCCIS+BEhkae3JSHE6dmc/yyejpCQr8es3OmgjVKVjDG+gvYyzrMcaMVkL+HFl44PLq4E30KiJP6FDjd0ErfBxBZT4la01jSFNQgoE0DxGTUgL3+8lO5pIKyjDdA1xja0oLroR0w2UFCNo8+KFfBKhWKK8ZKVmYFUdaVh0eNwYb79VDFBze1EanEQ9IlZZk65L0a1xtYyQbYc8zKbg/guT/nxWiUC7LC5ztWS44euOwhDJ+i73k3ajWHgkdCEdlBOpZrwlK0ZpD9m+J6xNPjz4Wj8ZDp4Ygdq6X2GLp9VTpwQ4QIAAA==" + } + }, + { + "ID": "d323529b2485cade", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0003?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:16 GMT" + ], + "Etag": [ + "aYCSY0ris6vF95xjwQk65A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42RXW+CMBiF/0t3q7aAgJDsQveRLNFkU3fhlanwilWgrK0fxPjf1za4xH2F3jQ9Pec9T9oz2rEyRTFasexjD6K+U3SVA+ogUDTTOl08zBZEMBkcniP/tD2+7QJ/eH+vHczk5IbneV3QsptCwbsKpIpTqqgEtXSJEznEHSyDICKBHxESeXpbEkKcnu35z+LpCgn5eszKnS7aKFXJGOMraC/jPMuBVkz2El586fjg4krwLSRK4l/ocEMncRtMbDElbkVrTVNYg4AyARSfUQPy8sdL6UwDYR1tgK41NtCC6qL9rIBXKhRTjJeszAyYqisNiB6HC/PVp4oJam4nUouDoE/MMtlyX4xqjaplguxxzMtsDuK7POXH6ykRYIfNda+WHD903UEYOkHf9W7abgwDj4SmtINyKtWEp2zNIP0xw/eMpcGfD0fjJ5PgiR2opfcZunwCsYG+D9UCAAA=" + } + }, + { + "ID": "8cac08485ab3feec", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0003?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "87" + ], + "If-Match": [ + "aYCSY0ris6vF95xjwQk65A==" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJ0aW1lUGFydGl0aW9uaW5nIjp7ImV4cGlyYXRpb25NcyI6bnVsbCwicmVxdWlyZVBhcnRpdGlvbkZpbHRlciI6ZmFsc2UsInR5cGUiOiJEQVkifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:17 GMT" + ], + "Etag": [ + "Q8hVT33taI/7sP2nLAhDAw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42QXW+CMBSG/0t3O22BCULihcYtMWGJc27JrkyFA3RCi22dM8b/vgPTLXEf8Yr0zfvxcPZkJWRKIrIU+XoDendl+bIEck3A8hz1h37xPPc8yyc0MFNXxsNiPNwOBugQTc4Uqix3FZedFCrVsWBslHLLDdiFy5zQYW5/4fsh83shY6GHnwVjzOm2O/9ZPJwwUGaxkCscKqytTUTpCbSbK5WXwGthuomqvnT65tJaq1dIrKG/0NEjnaGXYNIW09CLaFvTDDLQIBMg0Z4cQSZ/XAozR4jWcQnQaaYNXEB1QL+oYMq1FVYoKWTegNldjYBkPHzBQg3rjdDfnjtRWtAkynhpAAvkphrtkBcDjLTPWMl8Dvpcnqnt6ZVo4E3XHMdRcnqB6/aDwPFv3OZU8F4L/dPQ91iA2GgoubH3KhWZgPS8I3Bcv7nD5z/Mh6P4tkmopC1E6emRHD4AnT+vw9oCAAA=" + } + }, + { + "ID": "bfd4ce24c91cd4bf", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0003?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:17 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "1152dee9028a6971", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "112" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJkYXRhc2V0UmVmZXJlbmNlIjp7ImRhdGFzZXRJZCI6ImRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMiJ9LCJmcmllbmRseU5hbWUiOiJuYW1lIiwibG9jYXRpb24iOiJFVSJ9Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:18 GMT" + ], + "Etag": [ + "em8j2Aev8yrSn6pl3yNEpA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41RW2vCMBT+L9lr7U3sDYQ5VoawKXQbPowhMT2t0TTpktRRxP++VKrsQcWnwHe+2znZoy3lOUrQipY/Dcj2IccaK9DIQqBxaSZQRRt/Aruole88qNmwnaX1ZDw2DNop1Vow1laYD3KoxECD0klvsvRdL/ZcP1oGQewGo9h146F5lq7r+kavgBWvlG+Ny1rrWiWOc+phl0KUDHBNlU1Edcadne/UUmyAaOVciHb6aOXc2aGnZVCABE4AJfsTNu3Wu9Om7zS9chF0sFAhKfCctTNcmRTEu8dCmBBQCiVfeyQF6waLbPqRZt15aiAUsxcpmtrgfcRCUg1SGcezYr6Y3RDMf/kVfqNAPrVphSkzaNdzIMVK6McLG9gUV3ZpBDtKwJQWDdfdz/z3zdLJ840iGeD82OTbQkQC1lTwD3o8hjcKfT8KQy+MQs8YMKz0m8hpQSG/RhHk6GBG6Sc6/AEaYK+sygIAAA==" + } + }, + { + "ID": "e454119731b44203", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0002?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:18 GMT" + ], + "Etag": [ + "em8j2Aev8yrSn6pl3yNEpA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41RW2vCMBT+L9lr7U3sDYQ5VoawKXQbPowhMT2t0TTpktRRxP++VKrsQcWnwHe+2znZoy3lOUrQipY/Dcj2IccaK9DIQqBxaSZQRRt/Aruole88qNmwnaX1ZDw2DNop1Vow1laYD3KoxECD0klvsvRdL/ZcP1oGQewGo9h146F5lq7r+kavgBWvlG+Ny1rrWiWOc+phl0KUDHBNlU1Edcadne/UUmyAaOVciHb6aOXc2aGnZVCABE4AJfsTNu3Wu9Om7zS9chF0sFAhKfCctTNcmRTEu8dCmBBQCiVfeyQF6waLbPqRZt15aiAUsxcpmtrgfcRCUg1SGcezYr6Y3RDMf/kVfqNAPrVphSkzaNdzIMVK6McLG9gUV3ZpBDtKwJQWDdfdz/z3zdLJ840iGeD82OTbQkQC1lTwD3o8hjcKfT8KQy+MQs8YMKz0m8hpQSG/RhHk6GBG6Sc6/AEaYK+sygIAAA==" + } + }, + { + "ID": "8d3d9e6b3a3a89bb", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0002?alt=json\u0026deleteContents=false\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:19 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "71a529607d51c3ba", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:19 GMT" + ], + "Etag": [ + "gs3AYtwXmh7aF/dUsSnjCA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42RbWvCMBSF/0v2VZu0vtQWhLnNDWEvUBU3xpCYXmu0TbokVUT870ulyj6o+Clwcs65T252aMVFjEI048lvAWp7F1NDNRhUQ2BoYm8S3eh9mc1ntvDpM47HeiiWj71u1zp4mdQLmabbjIp6DJmsG9AmrEqmHnEDl3idabsdkHYrICRo2GNKCHFtXkM6f+ViZVsWxuQ6xPjI4SRSJinQnGuHyeyk47WHcyWXwIzGZ0bjarTGNzJUtgjmoEAwQOHuqA3K591YUzENLmwE7WuIMgZao/B7h5RM7SA0iQajflQuIgfGafqiZJFbvSqbKG5AaZs9JT4m71cCHxtxwV9oUA/bfkZ5atWSqK7kTJr7M6wOp5mT2MCaM7DQshCm/IP/vVG/93QFJAIaH0h+aogpoIZLMeJZmXRbvud1fJ/4zWbTFqRUmzcZ8zmH+JJFskODvRoP0f4PCVPOULQCAAA=" + } + }, + { + "ID": "dd0fee87e150af29", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/does_not_exist?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 404, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:19 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/62OsQ7CMAxE935FlJlKDJ06Vx3bBSaEKkNMqZTEUuxKoKr/ThIy8AFM1vnsd7dVSmkMgYJu1RZFlHcyGFVzbA7fhUNmmNNODyTqQas3repAgFEUP8natwNfG3RUC7K0hpAnTzLha2HRhZNzOGIuWasS+M+MzDLkYPEJNVu6gf31AgJT9uJrn1J0Mfc8r6UrC8jKuc54mvrxPHTpcK/26gOm62vXNAEAAA==" + } + }, + { + "ID": "ad5a63405b6cae67", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "74" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJkYXRhc2V0UmVmZXJlbmNlIjp7ImRhdGFzZXRJZCI6ImRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMyJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:20 GMT" + ], + "Etag": [ + "BsNiNGQ6iMsm3h86/XQ0Pw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42RUWvCMBSF/0v2qm2ss2pB2GQiwtTZORyMITG91jvTpktSRcT/vlSq7EHFp8DJOed+udmTNaYRCcgC498c1O4hYoZpMKRCwLDY3nT1CEf9iY9DndRXLd/9nNC3badjHVgk9UoKsUtYWo0gkVUD2gRlydyjtXaNeq2577ep32hT2q7bY04prdu8BrF8xXRtW1bGZDpw3ROHE0sZC2AZaofL5Ky7G8/NlPwBbrR7YbRbjtbunQylLYQlKEg5kGB/0gbF8+6sKZkGVzZCDhXCOAetSfC1J0oKO4jMwsG0FxaLyIAjE30l88zqZdlMoQGlbfacGM9GNwLjbXrFn2tQ3V0vYSisWhBVlVxI83SB1UGWOLENbJCDhZZ5aoo/+N8b9p5fboCEwKIjyXeFcAXMoEynmBTJWqPpea1m06PeY7E4wbQZygiXCNE1i+THBnv18U4Of/r/Bp+0AgAA" + } + }, + { + "ID": "ff9c4499e0d0f8f2", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0003?alt=json\u0026deleteContents=false\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:20 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "5216747da6c55790", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "74" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJkYXRhc2V0UmVmZXJlbmNlIjp7ImRhdGFzZXRJZCI6ImRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwNCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:21 GMT" + ], + "Etag": [ + "xEvfhxdEvTOWvagy/brMPw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42RXWvCMBiF/0t2q/3I/GpB2MbKEOYcnaMXY0hM39bMtOmStFrE/75UquxCxavAyTnnffJmh9Ysj5GPliz9LUHWdzHRRIFGHQSapOZmG1TJahsH1XwWVSSt7aWcvm/GY+NgTVKtBOd1RvJuDJnoalDab0sW2HE918GjxWDgOYO+5zjevTkWjuP0TF4BT15ZvjYtK60L5dv2kcNKhUg5kIIpi4rspNsVtgspfoBqZZ8ZbbejlX0jQ2sLIQEJOQXk747apHnejTUt0+TCRtC+gwiloBTyv3ZICm4GoSiczIOwWUQBlBH+IkVZGL0tiyTTIJXJnhKz6O1KYLbJL/hLBfKpDjLCuFEboq4US6EfzrBajGRWagIVo2CgRZnr5g/+94bB4/MVkBBIfCD57iAqgWgm8jnLmqTbH2I8Gg6xi3vYFHCi9FTELGEQX7IIemgwV58faP8HYF01VLQCAAA=" + } + }, + { + "ID": "c37fe938a3b20714", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0004/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "153" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDQiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDQifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:21 GMT" + ], + "Etag": [ + "+5BPv6XuuESE0Eks2iCBbA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42QX2+CMBTFv0v3uGlLJygkPsjCwxKXLOqSvZkKV+yEltHiQozffZdG9rB/4ant6Tk9v94zOUqVkYjsZP7eQN3eWLErgNwRsCJH/daPn0/Ba9Mk64QlR8PlQ7xbzOfokF3OHHRRtKVQowxKPbJgbJQJKwzYLWde6DE+2wZByAI/ZCy8x2XLGJuMXc+/FqwwUOyXUh2x6GBtZSJKe9BxrnVegKikGae6/NLpidOq1m+QWkN/oaNXOkOHYFKHaeggWmdawR5qUCmQ6EyuII9/TAozVwjnGALU17jAAKoLDjE9QCkQB/eqKeMWqzHMiDsutco3UH+XV/qjP6U1CCu12sgSP0U8f8r5bDrl3iSY4XUhjH3SmdxLyH5YAr+z2Lbq5M0iXiZdQqfuQZRe1uTyCfc+2hGEAgAA" + } + }, + { + "ID": "0333c5be8413e358", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0004?alt=json\u0026deleteContents=false\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 400, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:21 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/72PQQuCQBCF7/6KYc8JY5lkt6AIoTxEdYmQLQcTVhd21kOE/7119dAv6DS892b43nwCAEHGaCPW8HHCyacuyakYcTYaDTHLavDEVlrJZIFfWql3I9uwpEaHltiuyzEr5hilEc5XRZKkmCxTxHThRoGIMdQMbGuloG6hYxITwldgR7h5DVOXP+E9ptSNrNuBUin9kOo3MyRZ+8wQ6848KWsv7nza6P28T7+wlbYbfhFZft0csm2xOe0vx11+Hvb7oA++nXKyHnYBAAA=" + } + }, + { + "ID": "96d76e422e436cad", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0004?alt=json\u0026deleteContents=true\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:22 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "2436c3369263bad2", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:22 GMT" + ], + "Etag": [ + "gs3AYtwXmh7aF/dUsSnjCA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42RbWvCMBSF/0v2VZu0vtQWhLnNDWEvUBU3xpCYXmu0TbokVUT870ulyj6o+Clwcs65T252aMVFjEI048lvAWp7F1NDNRhUQ2BoYm8S3eh9mc1ntvDpM47HeiiWj71u1zp4mdQLmabbjIp6DJmsG9AmrEqmHnEDl3idabsdkHYrICRo2GNKCHFtXkM6f+ViZVsWxuQ6xPjI4SRSJinQnGuHyeyk47WHcyWXwIzGZ0bjarTGNzJUtgjmoEAwQOHuqA3K591YUzENLmwE7WuIMgZao/B7h5RM7SA0iQajflQuIgfGafqiZJFbvSqbKG5AaZs9JT4m71cCHxtxwV9oUA/bfkZ5atWSqK7kTJr7M6wOp5mT2MCaM7DQshCm/IP/vVG/93QFJAIaH0h+aogpoIZLMeJZmXRbvud1fJ/4zWbTFqRUmzcZ8zmH+JJFskODvRoP0f4PCVPOULQCAAA=" + } + }, + { + "ID": "a7e5815df464a0e7", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "41" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJkZXNjcmlwdGlvbiI6ImQyIiwiZnJpZW5kbHlOYW1lIjoibjIifQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:23 GMT" + ], + "Etag": [ + "YzOg8uDabREdMsJ19QQPCA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41RW2vCMBj9L9mr2rReWxjsogzH1Nk5ZIwhMf2smWnSJanDif99iXQyhhOfAifnlpMtWjGRoAjNWfpRgNpcJMQQDQZVEBiS2puXr1HaKbpkHveSgb73w/H48fb68tIymFPqpeR8kxFRTSCTVQPaRKXJLMB+6OOgM2u1QtxqhhiHdXvMMMa+1WvgiwcmVtZlaUyuI8/76VFLpUw5kJzpGpXZAffWgZcr+Q7UaO9ItFdGa+/MDiUthgUoEBRQtP3B+u55Z9qUnfr/LIJ2FbRQDETCN0OS2RQkApcOmiqWGyaFy3IQoRS0RtHrFinJHXMa9ye92O2VA2WE3ylZ5BYvM6eKGVDaRhwUo+nwhGD0Kf7hFxrUzaaXEcYt6opXlZxLc3XkSTVGslpqBWtGwZaWhTDuq377xr3r7okiMZBk3+StgqgC4maYsP06frMdBJ12G7cbjYY14ESbgUzYgkHyhxLUGx33BVxSUg75/IR2337Wlk/bAgAA" + } + }, + { + "ID": "da31b5eda2068596", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "39" + ], + "If-Match": [ + "gs3AYtwXmh7aF/dUsSnjCA==" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJkZXNjcmlwdGlvbiI6ImQiLCJmcmllbmRseU5hbWUiOiJuIn0K" + ] + }, + "Response": { + "StatusCode": 412, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:23 GMT" + ], + "Etag": [ + "YzOg8uDabREdMsJ19QQPCA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6vmUlBQSi0qyi9SslKoBnKA3OT8lFQgz8TAQAcikJtaXJyYDhJTCihKTc7PS8ksyczPU0jOSE3OVkhLzMxJTdFTgioGG1YMVBsN5itATSXZILCGlPzcxMw8kPr0nPykxBxkuaLUxOJ8sBxEI7KJSlBltWA6Fuq04pLEklKQ05TcHD19XF3iA4Jcnf39XDxDPP39QFpquWq5AH1JwmMSAQAA" + } + }, + { + "ID": "faea53f38565dc75", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "37" + ], + "If-Match": [ + "YzOg8uDabREdMsJ19QQPCA==" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJkZXNjcmlwdGlvbiI6IiIsImZyaWVuZGx5TmFtZSI6IiJ9Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:24 GMT" + ], + "Etag": [ + "yNL/q8jRoElmNa7RVFBHzQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41R3U7CMBh9l3oLrEzYYAmJElFJcMSJcmEMKd3HKHTraAtmEt7dFgcxBgxXTU7PX0+3aMmyGAVoypLVGmRxFRNNFGhUQaBJYm6KcOCsWotI9HgaEj96u+8+fj13OobBrFLNBedFSrJqDKmoalA6KE0mLq6369htTTyvjb1mG+P2tTkmGOO60SvgswHLlsZlrnWuAsc59KglQiQcSM5UjYr0iDsb18mlWADVyjkR7ZTRyrmwQ0mLYAYSMgoo2B6wvn3ehTZlp/6ZRdCugmaSQRbzIiSpSUE2GxSVLNdMZD8AoRSUQsH7FknBLWsc9Ue9yG6VA2WEP0ixzg1e5o0l0yCVsT8qhuPwH8HwMzvDXyuQ3aKXEsYNaktXpZgKfXPiOTVG0lpiBBtGwZQW60zbb/rtG/Vu7/4pEgGJ900+KohKIHaEEdsvU2/6rtvyfew3Gg1jwInSTyJmMwbxH4rb8PympQhKyhlfX9DuGxUevcnXAgAA" + } + }, + { + "ID": "bdc51f83de22e1d1", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:25 GMT" + ], + "Etag": [ + "yNL/q8jRoElmNa7RVFBHzQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41R3U7CMBh9l3oLrEzYYAmJElFJcMSJcmEMKd3HKHTraAtmEt7dFgcxBgxXTU7PX0+3aMmyGAVoypLVGmRxFRNNFGhUQaBJYm6KcOCsWotI9HgaEj96u+8+fj13OobBrFLNBedFSrJqDKmoalA6KE0mLq6369htTTyvjb1mG+P2tTkmGOO60SvgswHLlsZlrnWuAsc59KglQiQcSM5UjYr0iDsb18mlWADVyjkR7ZTRyrmwQ0mLYAYSMgoo2B6wvn3ehTZlp/6ZRdCugmaSQRbzIiSpSUE2GxSVLNdMZD8AoRSUQsH7FknBLWsc9Ue9yG6VA2WEP0ixzg1e5o0l0yCVsT8qhuPwH8HwMzvDXyuQ3aKXEsYNaktXpZgKfXPiOTVG0lpiBBtGwZQW60zbb/rtG/Vu7/4pEgGJ900+KohKIHaEEdsvU2/6rtvyfew3Gg1jwInSTyJmMwbxH4rb8PympQhKyhlfX9DuGxUevcnXAgAA" + } + }, + { + "ID": "11b10e65685e63d0", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "39" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJkZWZhdWx0VGFibGVFeHBpcmF0aW9uTXMiOiIzNjAwMDAwIn0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:25 GMT" + ], + "Etag": [ + "82fDkwNf6G0lWINzlSWb2A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41RYWvCMBT8L9lXtbHTVoXBHJMhbArV0Q9jSExfuzfTpktSnRP/+xKpYwwn9kvh3t29e5cdWWGRkAFZYvZRgdpeJcwwDYY0CBiW2UnPT+9Xm0kaPFARjydfYhYv/eHNjWWgU+o3KcQ2Z0UzgVw2DWgzqE0WPm3329TvLYKgT4Nun9L+tf0tKKVtq9cg0kcsVtblzZhSDzzvmKOVSZkJYCXqFpf5D+6tfa9U8h240d6J1V69WnsXZqhpEaSgoOBABrsjNnbnXWhTZxr/0wjZN0iqEIpEbCcst1uI2w2aKywNyuIIpKwSZs6WAkafJSrmZk/aTq8D6j5LYpyDttDLjigpnFUcjeejyBVaAkcmHpSsSovXoWKFBpS2GX4U03hyRjDdFP/wKw3qbjvKGQqLusuaSi6luT1xcwtZ3sqsYI0cbGhZFca95W/faDS8PxMkApYckrw2CFdwaGOOh/ra3dD3e2FIw06nYw0E0+ZJJpgiJH8ofjfsuDcSkrO66+cZ2X8DHvNmK/wCAAA=" + } + }, + { + "ID": "04e2e7bc83a46cd3", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "23" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJmcmllbmRseU5hbWUiOiJ4eXoifQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:26 GMT" + ], + "Etag": [ + "7RnTP/b60fUeA//pVhQgAg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41R0W7iMBD8F/cVsAmQFKRKR1VUIV3buxTKw+mEjLMJezh2znZ6TRH/XhulVXWiVfNiaXZmdnayJztUGZmQDRZ/azDNWcYdt+BIh4DjhZ8kqVr8oJuY5UuYUlo9bH8W0+LiwjMwKO1WS9mUXHUzKHXXgXWT1mQdsf64z6LzdRyPWTwaMzYe+GfNGOt7vQWZf0e18y5b5yo7ofQ1R6/QupDAK7Q9ocs3nD5GtDL6Dwhn6YnVtF1t6RcztLQUcjCgBJDJ/hWbh/O+aNNmmn/QCDl0SG4QVCabW176LeSpeQ7rwQqDlUOtPHYEcl5Lt+AbCbOnCg0Psxvrp4OYhc+TuBBgPfRrT4yWwW2VzhezNHRagUAur42uK4+3uVYGHRjrY7wp7la3nwju/qkP+LUFc9nMSo7So+G4rtEb7b6dOLuHvOwVXvCIAnxoXSsXfud733Q2vfokSAo8Oyb53SHCwLGNBR4b7I+SKDpPEpYMh0NvILl1NzrDHCH7jxLFo+EgULTgbdfLe3J4AVHICbv/AgAA" + } + }, + { + "ID": "666f6234d8f9226a", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "34" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJkZWZhdWx0VGFibGVFeHBpcmF0aW9uTXMiOm51bGx9Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:27 GMT" + ], + "Etag": [ + "Ju4EHHqB6coSrRM7CG640A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41R3U7CMBh9l3oLrMyxwRISQYlgBJOB4cIYUrqPUe3W0XboJL67LRnEGDBcNTk9fz3doXeWxShES5ZsCpDlVUw0UaBRDYEmibl5KLzBcLjp+1RMZTQObu99D/e6XcNgVqnWgvMyJVk9hlTUNSgdViYLFzc7Tey2F77fwX6rg3Hn2hwLjHHT6BXw1SPL3o3LWutchY5z6NFIhEg4kJypBhXpEXe2rpNL8QZUK+dEtFNFK+fCDhUtghVIyCigcHfARvZ5F9pUnUZnFkHfNbSSDLKYlxOSmhT0WX7ZeFBUslwzkRnMAIRSUAqFLzskBbfEeTSaDSI7Vw6UEX4vRZEbvIqcS6ZBKpNwVDzNJ/8Inj6yM/xCgeyXg5QwblDbuy7FUuibEy9qMJI2EiPYMgqmtCgybX/qt2806N39UyQCEu+bvNYQlUDsCDO2H6fZCly3HQQ48DzPGHCi9FjEbMUg/kNxAy8ILEVQUs34PEXfP5i88/LaAgAA" + } + }, + { + "ID": "b135c79f00d9ca1a", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:27 GMT" + ], + "Etag": [ + "Ju4EHHqB6coSrRM7CG640A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41R3U7CMBh9l3oLrMyxwRISQYlgBJOB4cIYUrqPUe3W0XboJL67LRnEGDBcNTk9fz3doXeWxShES5ZsCpDlVUw0UaBRDYEmibl5KLzBcLjp+1RMZTQObu99D/e6XcNgVqnWgvMyJVk9hlTUNSgdViYLFzc7Tey2F77fwX6rg3Hn2hwLjHHT6BXw1SPL3o3LWutchY5z6NFIhEg4kJypBhXpEXe2rpNL8QZUK+dEtFNFK+fCDhUtghVIyCigcHfARvZ5F9pUnUZnFkHfNbSSDLKYlxOSmhT0WX7ZeFBUslwzkRnMAIRSUAqFLzskBbfEeTSaDSI7Vw6UEX4vRZEbvIqcS6ZBKpNwVDzNJ/8Inj6yM/xCgeyXg5QwblDbuy7FUuibEy9qMJI2EiPYMgqmtCgybX/qt2806N39UyQCEu+bvNYQlUDsCDO2H6fZCly3HQQ48DzPGHCi9FjEbMUg/kNxAy8ILEVQUs34PEXfP5i88/LaAgAA" + } + }, + { + "ID": "eb71c152631f03cd", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "299" + ], + "If-Match": [ + "Ju4EHHqB6coSrRM7CG640A==" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJhY2Nlc3MiOlt7InJvbGUiOiJXUklURVIiLCJzcGVjaWFsR3JvdXAiOiJwcm9qZWN0V3JpdGVycyJ9LHsicm9sZSI6Ik9XTkVSIiwic3BlY2lhbEdyb3VwIjoicHJvamVjdE93bmVycyJ9LHsicm9sZSI6Ik9XTkVSIiwidXNlckJ5RW1haWwiOiJ0ZXN0LXJvYm90QHNob2xseW1hbi1kZW1vLXRlc3QuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20ifSx7InJvbGUiOiJSRUFERVIiLCJzcGVjaWFsR3JvdXAiOiJwcm9qZWN0UmVhZGVycyJ9LHsicm9sZSI6IlJFQURFUiIsInVzZXJCeUVtYWlsIjoiSm9lQGV4YW1wbGUuY29tIn1dfQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:28 GMT" + ], + "Etag": [ + "gssiuE7itlrIEvMCm3TuRA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41RW0/CMBj9L/UVWDcugyUmoi4Go5JMDA/GkNp9zE+7dbYdMgn/3VYHUaPGpyan59bTDXnCIiURucfsuQJVH6TMMA2GtAgYltmbTGus4hCNUJN4dXmSd2dVMj48tAx0Sv0ghahzVrRTyGXbgDZRY7IIqD/yaTBcDAYjOuiPKB117bGglPpWr0EsL7B4si4PxpQ68rxdj04mZSaAlag7XOZ73FsFXqnkI3CjvR+ivSZae//s0NASWIKCggOJNjts4p73T5um0+SXRci2RZYKoUhFfcVym0LW9auLB80VlgZlYTELMM5BaxLdboiSwhHnyWQWJ26uEjgycaZkVVq8iZwrNKC0TdgrpvOrPwTTl+IXfqVBHddxzlBY1PVuK3kvzdEPL+ogyzuZFayQgy0tq8K4n/rsm8Tj0z+KJMDSb032iq9VziUcwZrlpYCPjLsW4QqYm22G73P6/TAIhmFIw16vZw0E0+ZSprhESL9RgmG/13cUyVkz/M012b4BMa3NQAwDAAA=" + } + }, + { + "ID": "802f8f50ceceb493", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "249" + ], + "If-Match": [ + "gssiuE7itlrIEvMCm3TuRA==" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJhY2Nlc3MiOlt7InJvbGUiOiJXUklURVIiLCJzcGVjaWFsR3JvdXAiOiJwcm9qZWN0V3JpdGVycyJ9LHsicm9sZSI6Ik9XTkVSIiwic3BlY2lhbEdyb3VwIjoicHJvamVjdE93bmVycyJ9LHsicm9sZSI6Ik9XTkVSIiwidXNlckJ5RW1haWwiOiJ0ZXN0LXJvYm90QHNob2xseW1hbi1kZW1vLXRlc3QuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20ifSx7InJvbGUiOiJSRUFERVIiLCJzcGVjaWFsR3JvdXAiOiJwcm9qZWN0UmVhZGVycyJ9XX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:29 GMT" + ], + "Etag": [ + "8RdOge1OhUaADc100cxRQA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41R3WrCMBh9l+xWbVqrtQVhDmUIm7JO8WIMielnzUybLolunfjuS6TKGCpeBU7OX052aM3yBEVowdLPDcjyLiGaKNCohkCT1Nx04mScgjteTUmvT12M6Xf80ut2DYNZpVoJzsuM5PUEMlHXoHRUmcw97IYu9jrzdjvE7VaIcdg0xxxj7Bq9Ar58YvnauKy0LlTkOMcejVSIlAMpmGpQkZ1wZ+s5hRQfQLVyzkQ7VbRybuxQ0WJYgoScAop2R2xon3ejTdVpeGERtK+hpWSQJ7wckcykoO/yx8aDopIVmoncYAYglIJSKHrbISm4Jc7i4WQQ27kKoIzwRyk2hcGryJlkGqQyCSfFeDa6Ihh/5Rf4GwXyoRxkhHGD2t51KRZC3595UYORrJEawZZRMKXFJtf2p/76xoNe/0qRGEhyaPJeQ1QCsSNM2GEctxV4XicIcOD7vjHgROlnkbAlg+QfxQubPrYUQUk14/QV7X8BxPh5rNoCAAA=" + } + }, + { + "ID": "a50d859181ddb439", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:29 GMT" + ], + "Etag": [ + "8RdOge1OhUaADc100cxRQA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41R3WrCMBh9l+xWbVqrtQVhDmUIm7JO8WIMielnzUybLolunfjuS6TKGCpeBU7OX052aM3yBEVowdLPDcjyLiGaKNCohkCT1Nx04mScgjteTUmvT12M6Xf80ut2DYNZpVoJzsuM5PUEMlHXoHRUmcw97IYu9jrzdjvE7VaIcdg0xxxj7Bq9Ar58YvnauKy0LlTkOMcejVSIlAMpmGpQkZ1wZ+s5hRQfQLVyzkQ7VbRybuxQ0WJYgoScAop2R2xon3ejTdVpeGERtK+hpWSQJ7wckcykoO/yx8aDopIVmoncYAYglIJSKHrbISm4Jc7i4WQQ27kKoIzwRyk2hcGryJlkGqQyCSfFeDa6Ihh/5Rf4GwXyoRxkhHGD2t51KRZC3595UYORrJEawZZRMKXFJtf2p/76xoNe/0qRGEhyaPJeQ1QCsSNM2GEctxV4XicIcOD7vjHgROlnkbAlg+QfxQubPrYUQUk14/QV7X8BxPh5rNoCAAA=" + } + }, + { + "ID": "afa006c3d0ad4b33", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "29" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJsYWJlbHMiOnsibGFiZWwiOiJ2YWx1ZSJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:30 GMT" + ], + "Etag": [ + "jJzAA3MMxMe9v3HYhRxLYg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41RbWvCMBj8L9lXtbF1agVhjsnm8AU6h8gYEtPHGpc2XZI6q/jfl0iVMVT8lHC5u+eeyw59sSRELTRn0XcGMr8LiSYKNCoh0CQyL6vXbafjDQabAfhr72W6DDb9adRuGwazSrUUnOcxScohxKKsQelWYTJzcdWvYrc5q9d9XL/3MfY9c8wwxlWjV8AXfZZ8GZel1qlqOc4xRyUSIuJAUqYqVMQn3Fm7TirFCqhWzpnRTjFaOTdmKGgBLEBCQgG1dkesZ9e70abI1LvQCNqX0EIySEKeD0lspqBNvrXjQVHJUs1EYjADcDIHrmyKw82Aa8IzsAaEUlDm6WOHpODWYxL0xt3ANpkCZYQ/S5GlBi/STCTTIJXRnhSjyfCKYPSTXOBnCuRj3o0Js5HsSmUp5kI/nFm2wkhciYxgzSiY0CJLtP3Ev75Bt/N0JUgAJDwk+SwhKoHYfsbs0Fv1vuG6zUYDN2q12qEwpQciZAsG4T+Kh70athRBSdHw+xva/wJAjzHT9QIAAA==" + } + }, + { + "ID": "48e0ff121d859e9f", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "26" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJsYWJlbHMiOnsibGFiZWwiOm51bGx9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:31 GMT" + ], + "Etag": [ + "vzd7TsU8YT5pVc4MbQo+LQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41RW0vDMBj9L/HRrU27bl0LgopDBruwOh0iMrL0WxeXNjVJp93YfzeRKiIqPgVOzi0nB7RlRYpitGLZcwWyPkmJJgo0aiHQJDM3u30aztVt/37eLe9oMF7NxOlodnZmGMwq1UZwXuekaKeQi7YGpePGZOljL/Kw31/2ehHudSOMo445lhhjz+gV8PWIFVvjstG6VLHrfvRwMiEyDqRkyqEi/8Tdne+WUjwB1cr9IdptopX7zw4NLYE1SCgooPjwgQ3t8/5p03Qa/rIIOrbQWjIoUl5PSG5S0Gu9t/GgqGSlZqIwmAEIpaAUih8OSApuiYtkOB8kdq4SKCP8WoqqNHgTuZBMg1Qm4VMxXUz+EExfil/4lQJ5WQ9ywrhBbe+2FCuhz394kcNI7mRGsGMUTGlRFdr+1FffZHBx9UeRBEj63uSxhagEYkeYs/dxvG7o+/0wxGEQBMaAE6XHImVrBuk3SsfzAvsDXFDSzHh7g45vr94gK9oCAAA=" + } + }, + { + "ID": "5ee1731832c8d12e", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "366" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im1vZGUiOiJSRVBFQVRFRCIsIm5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifSx7ImZpZWxkcyI6W3sibmFtZSI6ImJvb2wiLCJ0eXBlIjoiQk9PTEVBTiJ9XSwibmFtZSI6InJlYyIsInR5cGUiOiJSRUNPUkQifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDUifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:31 GMT" + ], + "Etag": [ + "hUw6Vl9tApa5+6B9jBEojQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Q0W/aMBDG/xfvcS12EiWQSH0gq1UhMdjStC9ThUxyBFMnTmO3HUL8772k0Exlm5AfrPvu++5+uh15lFVOIrKUxdMzNNsvViwVkAsCVhSor+9eg3sV2nEt/K9BHG5irjc/r67QIducWWultqWoLnMo9aUFY6NcWGHALlzmhA5zR4sgCFngh4yFHn4Lxpgz6Pb8z+LjCgNqNZXVYwtibW0iSo+gg0LrQoGopRlkuvzQ6YtL60ZvILOG/oWOHugMPQeTdpiGnkXbmRJYQQNVBiTakQPI5B+XwswBonOcA3Rc0wXOoNrjEbM1lKLFWUlQuSHRrx2pRImE7x+O3NZtdZsmk9kNZvr+c2n6/mSW8hueoFDqvBUS/oOPU379Z6SBrE8k/Ns8ucb6dPVSa9Ub4/l8ysczsn/Ad9Hujbd4Iuww0pVTXRUpNJ/lRL8eq6wBYaWuUtnNd/yh646GQ8/xRu3Z4Hctm1PDyGNDvBQalDD2u84louYnM3zP62HTcTzlbUJn3UCU7m7J/g3mAd7CTQMAAA==" + } + }, + { + "ID": "df4b4c7baf5fcf95", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0005?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "29" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJsYWJlbHMiOnsibGFiZWwiOiJ2YWx1ZSJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:32 GMT" + ], + "Etag": [ + "7ASXQwdJXGCOW5NOB487Ew==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42QYY+aQBCG/8v2qycLHAIm90HviLGx0kOaXtI0ZoURt7ewlF3PM8b/frNUS1Pbi+HDMjPvO++TOZBnXuVkSFa8+LmFZv9Bs5UA0iOgWYF9f7R4etzlH58m9/FXbx6PbwM/2t3doYIbn9pIIfYlq25yKOWNBqWHOdNMgV461A5t6gTLwSCkAy+kNHTxWVJK7X6b857EwwgFYj3j1TMGbbSu1dCyzqD9QspCAKu56mey/N23XhyrbuQPyLSy/kFnneiUdQ2m1WIq6yraVpTAGhqoMiDDAzmBTP9zKfScIFrFNUDnmNZwBdWxRwRbgVAGp/1D3wsTWzAjlW2gZGa05iByFH07kIqVCP/rwbR9bapFmkznE/R0822puvl0nkaTKMFGKXPTSKLP0SiNHv60NJB1jiS6j5MHrC+jV1KKTjiO41k0mpPjd/x6Jne8x+vhhJK2nMmqSKH5u53I3bnKGmCayyrl7X7b8x0n8H3XdgNzUXiteXMpCFzq4xGJOaHSn2TOETW/2BG6XgebjsazyDhk1i7E1pcFOb4Bp//TKWgDAAA=" + } + }, + { + "ID": "1c4ebfa02243e306", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0005?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "26" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJsYWJlbHMiOnsibGFiZWwiOm51bGx9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:32 GMT" + ], + "Etag": [ + "F6B0udglhnhjow75plio6Q==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Q0U/CMBDG/5f6KrQbssESH0CnIUHQMZ+MIWU7tmq3zrWohPC/e5vgjKghfWjuu++7++U25FnkMfHIQiQvKyjXJ4YvJJBTAoYnqF85Q7aKE5nm6ZN6c7uFFMq5Oz9Hh6hyOlVSrjOet2LIVMuANl7MDddg5jaz+haze3PH6TOn22es38Fvzhiz2vWe/yxdXKFBLscif8ZFqTGF9ijdg7YTpRIJvBC6HansS6evNi1K9QSR0fQXOrqj0/QYTFpjanoUbW0KYAkl5BEQb0N2IKM/LoWZHUTtOAZov6YOHEG1xSNGKWS8wlkKkLEm3sOG5DxDws8PR66LqpqFwWhyjZmmv8p00x9NQv/aD1DIVFwJgX/rD0L/8nukhKhJBP7FNLjE+nD1QinZGIfT6dgfTMj2Ed9ptXe4xhNhh5G6HKs8CaH8KQfqbV9FJXAjVB6Ker7VdW2757odq9OrzgbvhSgPDb0Oc/FSaJBcmxsVC0SNf86wz87cBjYcDMd+lVBRPRCl+xnZfgANtq4XTQMAAA==" + } + }, + { + "ID": "995fbf2a7dda2f92", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0005?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:32 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "d7c755e681860cf4", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "366" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im1vZGUiOiJSRVBFQVRFRCIsIm5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifSx7ImZpZWxkcyI6W3sibmFtZSI6ImJvb2wiLCJ0eXBlIjoiQk9PTEVBTiJ9XSwibmFtZSI6InJlYyIsInR5cGUiOiJSRUNPUkQifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDYifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:32 GMT" + ], + "Etag": [ + "sarVs1dSxhUPgWc9KMRosQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42S3U7CQBCF32W9RXbbCqVNvABtDJEfLVUvjCFLO5SVtlu7i0oI7+60gjWihvRiM2fOmfky6YYsRRYRl8xE/LKCYn2i+SwB0iCgeYy64sW9MqLJ++LuJn4IneuhL9Xt+Tk6RJlTC5kk65RnpxGk8lSD0m7ENVegpyYzHIOZnWm77bB2y2HMsfCZMsaMZrXnP0sbVyhI5gORLXHRQutcuZTuQZuxlHECPBeqGcr0S6evJs0L+QyhVvQXOrqjU/QYTFphKnoUbWXyYQ4FZCEQd0N2IP0/LoWZHUTlOAZov6YKHEG1xSOGC0h5iTMXkESKuI8bkvEUCT8fHLnOy2oS+P3RFWbq/ipVdb8/Crwrz0chlVEp+N6N1w28y++RAsI64XsXY/8S68PVMymT2tgbjwded0S2T/g1yr29NZ4IO4xU5UBmcQDFT9mXb/sqLIBrIbNAVPONlm2aHdu2TLt1Vv7Q77koDg0di9l4KTQkXOmhjASiRgczOpZVwwbd3sArEzKsBqJ0NyHbD4oYlfdNAwAA" + } + }, + { + "ID": "93775ac713a86d6a", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026pageToken=\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:33 GMT" + ], + "Etag": [ + "f+PJntftwjCWqzFVVi1pZQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/9WTa0sCQRSG/8v0MY2ZWd11F/xgF8EwqBCjQpZRjza2N2fPUib735vxQoGpJYH6aWDmOee8nIeZklcZ9YlHunI4zkBNTlB0A2jKFEmBAIqhfhuc3l5HOMC30cXD+KPebkuWPN1Vq5qY0Snxnqc/N9KINLfpSxwEk1BExT6EcREhRa8vUKSAPqfMZZRXfNt2qV12KXUtffiUUnaGfqhTGNRPhEKJMo78XpClCMqnywT3MAAFUQ+INyWJikfQw8aaubpmMXlG/CbFcsysYEuiXLOTRAchrdp588qUyhBul6SMhibjArmsPZqCngJhHlua1Les7HBecRzq2pwbDe+JVKtAxaKOTqeBxfRF74GEoG+ckEhovJPnhb3YYQdnh/3dzvft36Rm92bl650xxrl1vM74wTnjuzhTMM6k+mLqMtC9iIcqgw3uuEsrx+vOOjh31n/9t8J8yfOAsLvgkkUP/HOaLpsQey+St6daFb3GgcWdcmm7g7yjG8YoggZCqHdfzj8BzNfZuasIAAA=" + } + }, + { + "ID": "3ede34b17f792ec4", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0006?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:33 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "17ee9c9f9de84e79", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "366" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im1vZGUiOiJSRVBFQVRFRCIsIm5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifSx7ImZpZWxkcyI6W3sibmFtZSI6ImJvb2wiLCJ0eXBlIjoiQk9PTEVBTiJ9XSwibmFtZSI6InJlYyIsInR5cGUiOiJSRUNPUkQifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDcifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:33 GMT" + ], + "Etag": [ + "SRdCDuNO1r3eNAp+7oGKQw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SQU/CQBCF/8t6VNltK5Q28QDSECIWLfVkDFnaoay23dpdVEL4704rWCNqSA+befPezJdJN+RZ5DFxyVwkLyso1yeaz1MgZwQ0T1CfBvHVYOVPjNICv1ec2nJ4ffd2eYkOUeXUUqbpOuP5eQyZPNegtBtzzRXomckMx2Bmd9bpOKzTdhhzLHxmjDGjVe/5z2LjCgXpYizyZ1y01LpQLqV70FYiZZICL4RqRTL70umrSYtSPkGkFf2Fju7oFD0Gk9aYih5FW5sCWEAJeQTE3ZAdyOiPS2FmB1E7jgHar6kDR1Bt8YjREjJe4SwEpLEi7sOG5DxDws8HR66LqpqGwcgfYqbprzLV9Ed+6A29AIVMxpUQeLdeL/QG3yMlRE0i8K4mwQDrw9VzKdPG2J9Mxl7PJ9tH/M6qvf01ngg7jNTlWOZJCOVPOZBv+yoqgWsh81DU8422bZpd27Ys68Kpfuj3QpSHhq7FbLwUGlKu9I2MBaLGBzMurHYDG/b6Y69KyKgeiNL9lGw/AIMyRUJNAwAA" + } + }, + { + "ID": "ac124c9b205fb704", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0007/insertAll?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "215" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJyb3dzIjpbeyJpbnNlcnRJZCI6ImEiLCJqc29uIjp7Im5hbWUiOiJhIiwibnVtcyI6WzBdLCJyZWMiOnsiYm9vbCI6dHJ1ZX19fSx7Imluc2VydElkIjoiYiIsImpzb24iOnsibmFtZSI6ImIiLCJudW1zIjpbMV0sInJlYyI6eyJib29sIjp0cnVlfX19LHsiaW5zZXJ0SWQiOiJjIiwianNvbiI6eyJuYW1lIjoiYyIsIm51bXMiOlsyXSwicmVjIjp7ImJvb2wiOnRydWV9fX1dfQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:33 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTMK04tKnHMyQlKLS7IB3KUagGmFzWCLgAAAA==" + } + }, + { + "ID": "8a3a3e932a264223", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0007/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:33 GMT" + ], + "Etag": [ + "5qAbjVirb+RatOqJ1QsTEA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qbFjomZYVlFiVpByWW+Bd6GQYWh7g62toCVZTklyTmBOWXFwOVGSjVAgARmFAuUwAAAA==" + } + }, + { + "ID": "44ad7d83bc7ac128", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0007?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:33 GMT" + ], + "Etag": [ + "SRdCDuNO1r3eNAp+7oGKQw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKk7OSM1NVLKqVkrLTM1JKVayiq5WykvMTVWyglA6SiWVBSBecEiQp5+7Uq0OQr40txgh7+kX4uruGgQUyM1PAQkEuQa4Ooa4uiBrKUpNRugIcnX2D3IB8jGtTsrPz0EodPL393F19FOqjQXCWgCN1fK3tQAAAA==" + } + }, + { + "ID": "d6e5c03edcae9556", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0007/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:35 GMT" + ], + "Etag": [ + "JgR2QcJCb27Nx/hOahTsUw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8p7pQcZBSZ7OScZmftV6Gf4J2aEFIeW29oCVZTklyTmBOWXFwOVGQD5RWBmdLVSGpgsAwonKtXqgFlQvoFSbSxUBFlZSVFpKkgGIokQT0LTbkia9mQ07UYEtcfWAgDAGmPnGQEAAA==" + } + }, + { + "ID": "10bdc9b0f4fd10a5", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0007?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:35 GMT" + ], + "Etag": [ + "SRdCDuNO1r3eNAp+7oGKQw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKk7OSM1NVLKqVkrLTM1JKVayiq5WykvMTVWyglA6SiWVBSBecEiQp5+7Uq0OQr40txgh7+kX4uruGgQUyM1PAQkEuQa4Ooa4uiBrKUpNRugIcnX2D3IB8jGtTsrPz0EodPL393F19FOqjQXCWgCN1fK3tQAAAA==" + } + }, + { + "ID": "4539880260cb2197", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0007/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:35 GMT" + ], + "Etag": [ + "JgR2QcJCb27Nx/hOahTsUw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8p7pQcZBSZ7OScZmftV6Gf4J2aEFIeW29oCVZTklyTmBOWXFwOVGQD5RWBmdLVSGpgsAwonKtXqgFlQvoFSbSxUBFlZSVFpKkgGIokQT0LTbkia9mQ07UYEtcfWAgDAGmPnGQEAAA==" + } + }, + { + "ID": "f328ec00ac6bf196", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0007?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:35 GMT" + ], + "Etag": [ + "SRdCDuNO1r3eNAp+7oGKQw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKk7OSM1NVLKqVkrLTM1JKVayiq5WykvMTVWyglA6SiWVBSBecEiQp5+7Uq0OQr40txgh7+kX4uruGgQUyM1PAQkEuQa4Ooa4uiBrKUpNRugIcnX2D3IB8jGtTsrPz0EodPL393F19FOqjQXCWgCN1fK3tQAAAA==" + } + }, + { + "ID": "61f45cfa5330d4a6", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "317" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7ImRlZmF1bHREYXRhc2V0Ijp7ImRhdGFzZXRJZCI6ImRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifSwicXVlcnkiOiJzZWxlY3QgbmFtZSwgbnVtcywgcmVjIGZyb20gdGFibGVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwNyIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoib3VRbm1MWlpRY1gwRkN4U0dqU3czUU9DTkR0IiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:35 GMT" + ], + "Etag": [ + "HjFq6yhHO+fcTDSBWHm4Pg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41TXU/bQBD8K5H7WIi/vyKhliYGIkWhiZ3S8mKdL2tzwb4LvjM0Qvz37jkBoZbSPtm+nZ2Z3Rs/GreMr42RUbDqroN292EjCuPIAEUqPL3YnN0Fu5uLy48lzSbpl6uLxvtanZwggukueSPqetcQfryGRhwrkGq0SoeiW/Bmdn29oN+ts/HP9HyTPriLy/F8orBTQl3OGL/F/hultnJkms/qw0qIqgayZXJIRfNybt475rYVG6BKmm+Imuhamu/IfqoFJYoJfrJK0UInoc2hIaxGE5rguBWFUJ/foB4y0gwrxN8zCoRS0XGlvSELFbxkVdf2xMbo0ei9vnrRo6LlAScNHA1418ijQQt0ULaiGShS1JA7lh3blhPlQRBbgR9bVuziI7csK0SJNTpgvBfINF6THxYx/csF6C6iiIQ9Ii8AnDAo1rFv255dBoHvR8QOvdiNabz2PYe64Fguwb7eUt9FuOBr24UojOLchzLIPa8McwIR5GEEHoRFWbhgGU+4hhaIggmTWyHZfhXGeJmcZkk+PcvnSTJJJkj+0LLfUVfLKYKy5Wo+RnQ/bkm6Wk32/vWwr0c5vL+3MxtJ/rWfJw1hAu3oK5rOs2R5Os6m35J9MGZQEbpL7zAaJaklIBzTle22uHxjsUqWP4z90RJKaIHT/7wU7Oir7/8czzlFICYVhaTCbwwBlVqm37UOA2u0HdsPHScKQ9cPPN/owa36oxb3a3kJp2aEBrg6zJQms2ScGU8HsU6+gLCIdzOfzs+x+gvv3ntPKwQAAA==" + } + }, + { + "ID": "537f1bc2805777c2", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/ouQnmLZZQcX0FCxSGjSw3QOCNDt?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:36 GMT" + ], + "Etag": [ + "4JaijwfgkwEW+eURZNb6FA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/22RUW+CMBSF/8vd4zAxcdkDiQ+I1bkQkKLZ4rKHUi4ItpTREkeM/33FLWEPpg/tSc9377ntBU5lnYELaVl8ddj2DwWaeDhQ1J0w2m6NqjWCA2hYYZ1Pr6ysznlxOpO3R9zTQ5g+r7z53Do0P6Jk4F4gL1FkGtyPC9RMosVumwOmbwaV7OgmXFstVTbocB8E3iIgcHVGopN6JDbhjqwJHRFKtsTbkeV/pEU+EpT4EV3e6eHciZcqJUZ0EUUB8cJ7+T7tcqBSKcUcW6w5DvM2raqQm83wlPqohOglqycZSjUxqA3ciNut6uJaBodDzN+nK/87WVfJeRZHfrgcXEJxZkpVW+M+sZOBUYYJqs42LMzgTy96W3TbKo5a41B0+tvAV7IRaGwi03boAGf2Q15KA27OhMbrD53IeR7uAQAA" + } + }, + { + "ID": "96816cb3efe657dd", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anond13e8789_5ef6_44f7_ae8e_78e4e7bfb3e0/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:36 GMT" + ], + "Etag": [ + "9xxCEEYwkv1ewcgeOLRqlg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pbVlQ4u7pGlmeXGaaWJ6en+vsEFeak29oCVZTklyTmBOWXFwOVGQP5RWBmdLVSGpgsAwonKtXqgFlQvoFSbSxUBFlZSVFpKkgGIokQT0LTbkia9mQ07UYEtcfWAgAnKK9AGQEAAA==" + } + }, + { + "ID": "75d1f70d0cc24547", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "317" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7ImRlZmF1bHREYXRhc2V0Ijp7ImRhdGFzZXRJZCI6ImRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifSwicXVlcnkiOiJzZWxlY3QgbmFtZSwgbnVtcywgcmVjIGZyb20gdGFibGVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwNyIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiNHlUSUNXMUlpVjZsbFIzY3hsdkNYaXJYa2NHIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:37 GMT" + ], + "Etag": [ + "U0IxqCCb5F6Vnn+txcTriw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41T207bQBD9lch9LMS32I4joRY5BllCkeo4QJ+s9XpsFuzdsLsGIsS/d9YJCLWU9sWXnTNzzsycfbbuGK+thVWx9n4AuftyKyrryAJNWjzdONnTfZJUwVl4yflX/UQLyR5PThDBTJa6EV236wk/rqEXxxqUXmzW09muyJIrN2OXYdflPn3qHpJrJq/v6DlmKuiaC8bvMP9G661a2PYr+7QVou2AbJmaUtG/ndsPnr2V4haoVvYHpDaqVvYntN86QYlmgp9s1ihhUCBL6AnrUIQpcCxFJfT3D0pPGemnLeIfGAVCqRi4NtqwChW8Ye0gx8LW4tkatb77MK2i5AknPRxN+NCro4kEOmmk6CeaVB2UnuPGruPNyzCMnTCIHSf28VU6jhMhRY0KGB8JCoM3xQ+DyP6yAJNFNFGwR5QVgBeFVR0HrjtzmzAMgjlxo1nsxzSug5lHffAcn2DeKGnMIlzwWVCTkLpQVhE+ZgHE5dx3vNJvKpd4NKqroLZecAwSiIYlU1uh2H4UVpKnp0VaZmflKk2X6RKLP0r2O+oqzxBU5JtVguix3YYMnV7u9Ztm37dy+P5sZi4W+dd8XgyECZRjVpStijQ/TYrsMt0b4wJaQnfre7RGQzoFCEd3FbstDt/6sUnzn9b+KIcGJHD6n0vBjDH6+eV49am5fGtDpDT+owmoMjTjrI0ZWG/kuEHkefMo8iPHNXZBsNR/xLxxLG/mNBWhB64PPa3TizQprJcD2aDeQBjE3ayy1TlGfwGfKgA4KwQAAA==" + } + }, + { + "ID": "727bfdc6907eaed6", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/4yTICW1IiV6llR3cxlvCXirXkcG?alt=json\u0026fields=configuration%2CjobReference%2Cstatus%2Cstatistics\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:37 GMT" + ], + "Etag": [ + "U0IxqCCb5F6Vnn+txcTriw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42S226cMBCGXwX5eiPZ5rTkLmJphBQhlWWT9AoZM6ROjb3Bpi2K9t1rs6soaqUmN7Zhvjn9M6+IazWIp3liVmiFrl/RywzT8u6BDEjgNlBshE2g5tFsggl4MEx6DCzrJLQUk4xgum2TJMNJnGGche5qMcYp2qAejBVqTdB43gc/TvrZRS17n+C7lnIZmbrqYdRX1uHei1lm4Ey0HQBNk67PYkIiMiRJHG8ZSaMszHjWxxHlIVAcMue3lrR6MaVVFPcs4QTaLnVHFEPWbkNM23DoCKM87bu4R6cN4hMwCzthjtqIsxQor4ubpmjLL21VFLti54L/msTf1ENdOqipD1Xu6LXdgc3S7s71+2bft3J5/08z4oJ8pM/JI0K7cvyIyqop6pu8Ke99AbOBO3hifNm/SHQ9MGnA4c+6a5ajEx99PRT1N3T+VcMAEyj+yaE4j9UaLU2ZP5BS3CdS1iH/LX/mj2J6/MFvHSU1v6wTOux9ImPdt1sCbnyaVWu/DGL05ZA4pXSbpmGKiV8XB0/2HxtdZXlbTh8RRlD20tO+uCvyBp0uyWbzBjmjm01VVrfO+gd2TUt28AIAAA==" + } + }, + { + "ID": "a7f698816766a65e", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/4yTICW1IiV6llR3cxlvCXirXkcG?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:37 GMT" + ], + "Etag": [ + "/35mPTToGRSOe2xHaoijag==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/22RTW/CMAyG/4t3LdoH2w6VOECJoFLVslA2pGmHkJpSSOquSTcqxH9fyiZ1B5SD8yp+7NfOCQ5FmYEPmyL/bLBub3K0L92Fo2mUNS5UVBoED9CK3GXeDp/0Ik1pxpcJPhzngoq9yEcjl2HkDrUA/wTbAlVmwH8/QSk0OuwSPLBt1allysN45rSmrNPxKorGk4jB2euJRpueCOOUzRjvEc4WbJyy6X+kRtkTnAUJn17p4V2xtyFSPTpJkoiN42v+PtzxYE8bjlussZTYzVvVtEdpw26VZkdKtVqUgww1DSwaCxfi8vrYpmHwdh8Wr89K8aE8qq9gXdTrg+zWoUgKW1DpEldLNxlYskJx+nZmYQh/etK6oouaJBqDXdG73wYB6UqhdY5s3aAHUrgPmRcW/K1QBs8/T8bkgO4BAAA=" + } + }, + { + "ID": "05ce8bfa16bbaee1", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon45da6c1e_b71e_45e9_8302_3fb1a2c7db5d/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:38 GMT" + ], + "Etag": [ + "hoEQtF68hWR8Sjgk+/Q1RQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pn5LsGlriZWWSEB1kEZ6Vna+sHGgYF2toCVZTklyTmBOWXFwOVGQP5RWBmdLVSGpgsAwonKtXqgFlQvoFSbSxUBFlZSVFpKkgGIokQT0LTbkia9mQ07UYEtcfWAgAAy5uSGQEAAA==" + } + }, + { + "ID": "00cfdf95526acab9", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/4yTICW1IiV6llR3cxlvCXirXkcG?alt=json\u0026fields=status%2Cstatistics\u0026location=US\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:38 GMT" + ], + "Etag": [ + "0lSl6hqGDmj6EW4bJ6khrg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41UbW/aMBD+K8jiwya1lRNeApH2oS+ZVq0MBKn6YaoikxytN8fJYqcdQvz3nW1SQkurCQHJPffcc74Xb4jSTHOleapIuCFpBfhayJjnQELiDQLfHwVBL6BeQE6Mc6XfYD71EAOZvUGG1EdEF5qJi7UGNauKFJSCDL0oIn9qqNZG1z7MBJMk/Lkhktk4C0rDzrTWZa3Rlzckm8REHQj1hn2Xwit7nxrGM+N6bs51/vRAQnrmjwaB19//Oo+JsjDx24wJ+/sRw8KWgYXLWhrO0ISkbQcXsnFwEYxDWuR4UtgH8V5sTZzglZslt91cNOP2XPF2LHr26gTezqUJPTzg7I79LsfpGI56rFcrAa5NtskIjIKjyKLkQrw0v4K0qDI1xzKgpbe33KGGBrkzlqxiyBLXEsPY7u6KIEBDNjuGmpmuzcvldDK7ieLI2qBUdrp+c2kE59H5lbHXywYiXS80o3fS6fqhrHOFD70QkzrrcpXIQieyFgKNfWtcFoXAAF/n00lHs6WABBdh7FF/lAyHYzocjCkd9/AvoZQG5H578qJt8rp1aR3I0074pTM5/x4li3h+exl/6vZNDp8PyHfz6yNUkzR+PVPZeNpJEizCA1CaFG6B7rf4wRXBVc8ZFu7oPiIGgkuwdQLBSoTsRvWGQbPIC1G47RuYUpe4c1w+3Epuq0/bvWmMHjHKlozt0txcMG+l370k9shFe3yW+ILKMYfK7sCR5FKWPsI3rkm4YkKBGbAVVCBTyGLTMDcPZVX8glRfm8DqsRBinTN5mkFenKKmuXoyppkC57F7/qjXRtoOhCX8x2iY8piZhRykjtelvfyim+gyJtsjB9vuJ3zjeGi/mv6IyHb7D65SoK3RBQAA" + } + }, + { + "ID": "01032ad8f0d10781", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0007/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:38 GMT" + ], + "Etag": [ + "JgR2QcJCb27Nx/hOahTsUw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8p7pQcZBSZ7OScZmftV6Gf4J2aEFIeW29oCVZTklyTmBOWXFwOVGQD5RWBmdLVSGpgsAwonKtXqgFlQvoFSbSxUBFlZSVFpKkgGIokQT0LTbkia9mQ07UYEtcfWAgDAGmPnGQEAAA==" + } + }, + { + "ID": "cbee37495f0eaeba", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0007?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:38 GMT" + ], + "Etag": [ + "SRdCDuNO1r3eNAp+7oGKQw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKk7OSM1NVLKqVkrLTM1JKVayiq5WykvMTVWyglA6SiWVBSBecEiQp5+7Uq0OQr40txgh7+kX4uruGgQUyM1PAQkEuQa4Ooa4uiBrKUpNRugIcnX2D3IB8jGtTsrPz0EodPL393F19FOqjQXCWgCN1fK3tQAAAA==" + } + }, + { + "ID": "bf1bacedfc1135fb", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0007/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:38 GMT" + ], + "Etag": [ + "JgR2QcJCb27Nx/hOahTsUw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8p7pQcZBSZ7OScZmftV6Gf4J2aEFIeW29oCVZTklyTmBOWXFwOVGQD5RWBmdLVSGpgsAwonKtXqgFlQvoFSbSxUBFlZSVFpKkgGIokQT0LTbkia9mQ07UYEtcfWAgDAGmPnGQEAAA==" + } + }, + { + "ID": "3f9e21e5ad8a6b35", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0007?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:38 GMT" + ], + "Etag": [ + "SRdCDuNO1r3eNAp+7oGKQw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKk7OSM1NVLKqVkrLTM1JKVayiq5WykvMTVWyglA6SiWVBSBecEiQp5+7Uq0OQr40txgh7+kX4uruGgQUyM1PAQkEuQa4Ooa4uiBrKUpNRugIcnX2D3IB8jGtTsrPz0EodPL393F19FOqjQXCWgCN1fK3tQAAAA==" + } + }, + { + "ID": "e0cc36762fd4ee1f", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0007/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:39 GMT" + ], + "Etag": [ + "JgR2QcJCb27Nx/hOahTsUw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8p7pQcZBSZ7OScZmftV6Gf4J2aEFIeW29oCVZTklyTmBOWXFwOVGQD5RWBmdLVSGpgsAwonKtXqgFlQvoFSbSxUBFlZSVFpKkgGIokQT0LTbkia9mQ07UYEtcfWAgDAGmPnGQEAAA==" + } + }, + { + "ID": "892d67e651508440", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0007?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:39 GMT" + ], + "Etag": [ + "SRdCDuNO1r3eNAp+7oGKQw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKk7OSM1NVLKqVkrLTM1JKVayiq5WykvMTVWyglA6SiWVBSBecEiQp5+7Uq0OQr40txgh7+kX4uruGgQUyM1PAQkEuQa4Ooa4uiBrKUpNRugIcnX2D3IB8jGtTsrPz0EodPL393F19FOqjQXCWgCN1fK3tQAAAA==" + } + }, + { + "ID": "a9f2c96c0ac634ba", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0007?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:39 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "ca1d768edd21972c", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "2077" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJtb2RlIjoiUkVRVUlSRUQiLCJuYW1lIjoiTmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im1vZGUiOiJSRVFVSVJFRCIsIm5hbWUiOiJCeXRlcyIsInR5cGUiOiJCWVRFUyJ9LHsibW9kZSI6IlJFUVVJUkVEIiwibmFtZSI6IkludGVnZXIiLCJ0eXBlIjoiSU5URUdFUiJ9LHsibW9kZSI6IlJFUVVJUkVEIiwibmFtZSI6IkZsb2F0IiwidHlwZSI6IkZMT0FUIn0seyJtb2RlIjoiUkVRVUlSRUQiLCJuYW1lIjoiQm9vbGVhbiIsInR5cGUiOiJCT09MRUFOIn0seyJtb2RlIjoiUkVRVUlSRUQiLCJuYW1lIjoiVGltZXN0YW1wIiwidHlwZSI6IlRJTUVTVEFNUCJ9LHsibW9kZSI6IlJFUVVJUkVEIiwibmFtZSI6IkRhdGUiLCJ0eXBlIjoiREFURSJ9LHsibW9kZSI6IlJFUVVJUkVEIiwibmFtZSI6IlRpbWUiLCJ0eXBlIjoiVElNRSJ9LHsibW9kZSI6IlJFUVVJUkVEIiwibmFtZSI6IkRhdGVUaW1lIiwidHlwZSI6IkRBVEVUSU1FIn0seyJtb2RlIjoiUkVRVUlSRUQiLCJuYW1lIjoiTnVtZXJpYyIsInR5cGUiOiJOVU1FUklDIn0seyJtb2RlIjoiUkVRVUlSRUQiLCJuYW1lIjoiR2VvZ3JhcGh5IiwidHlwZSI6IlNUUklORyJ9LHsibW9kZSI6IlJFUEVBVEVEIiwibmFtZSI6IlN0cmluZ0FycmF5IiwidHlwZSI6IlNUUklORyJ9LHsibW9kZSI6IlJFUEVBVEVEIiwibmFtZSI6IkludGVnZXJBcnJheSIsInR5cGUiOiJJTlRFR0VSIn0seyJtb2RlIjoiUkVQRUFURUQiLCJuYW1lIjoiRmxvYXRBcnJheSIsInR5cGUiOiJGTE9BVCJ9LHsibW9kZSI6IlJFUEVBVEVEIiwibmFtZSI6IkJvb2xlYW5BcnJheSIsInR5cGUiOiJCT09MRUFOIn0seyJtb2RlIjoiUkVQRUFURUQiLCJuYW1lIjoiVGltZXN0YW1wQXJyYXkiLCJ0eXBlIjoiVElNRVNUQU1QIn0seyJtb2RlIjoiUkVQRUFURUQiLCJuYW1lIjoiRGF0ZUFycmF5IiwidHlwZSI6IkRBVEUifSx7Im1vZGUiOiJSRVBFQVRFRCIsIm5hbWUiOiJUaW1lQXJyYXkiLCJ0eXBlIjoiVElNRSJ9LHsibW9kZSI6IlJFUEVBVEVEIiwibmFtZSI6IkRhdGVUaW1lQXJyYXkiLCJ0eXBlIjoiREFURVRJTUUifSx7Im1vZGUiOiJSRVBFQVRFRCIsIm5hbWUiOiJOdW1lcmljQXJyYXkiLCJ0eXBlIjoiTlVNRVJJQyJ9LHsibW9kZSI6IlJFUEVBVEVEIiwibmFtZSI6Ikdlb2dyYXBoeUFycmF5IiwidHlwZSI6IlNUUklORyJ9LHsiZmllbGRzIjpbeyJtb2RlIjoiUkVRVUlSRUQiLCJuYW1lIjoiU3RyaW5nIiwidHlwZSI6IlNUUklORyJ9LHsiZmllbGRzIjpbeyJtb2RlIjoiUkVRVUlSRUQiLCJuYW1lIjoiSW50ZWdlciIsInR5cGUiOiJJTlRFR0VSIn1dLCJtb2RlIjoiUkVRVUlSRUQiLCJuYW1lIjoiUmVjb3JkIiwidHlwZSI6IlJFQ09SRCJ9LHsiZmllbGRzIjpbeyJtb2RlIjoiUkVRVUlSRUQiLCJuYW1lIjoiSW50ZWdlciIsInR5cGUiOiJJTlRFR0VSIn1dLCJtb2RlIjoiUkVQRUFURUQiLCJuYW1lIjoiUmVjb3JkQXJyYXkiLCJ0eXBlIjoiUkVDT1JEIn1dLCJtb2RlIjoiUkVRVUlSRUQiLCJuYW1lIjoiUmVjb3JkIiwidHlwZSI6IlJFQ09SRCJ9LHsiZmllbGRzIjpbeyJtb2RlIjoiUkVRVUlSRUQiLCJuYW1lIjoiU3RyaW5nIiwidHlwZSI6IlNUUklORyJ9LHsiZmllbGRzIjpbeyJtb2RlIjoiUkVRVUlSRUQiLCJuYW1lIjoiSW50ZWdlciIsInR5cGUiOiJJTlRFR0VSIn1dLCJtb2RlIjoiUkVRVUlSRUQiLCJuYW1lIjoiUmVjb3JkIiwidHlwZSI6IlJFQ09SRCJ9LHsiZmllbGRzIjpbeyJtb2RlIjoiUkVRVUlSRUQiLCJuYW1lIjoiSW50ZWdlciIsInR5cGUiOiJJTlRFR0VSIn1dLCJtb2RlIjoiUkVQRUFURUQiLCJuYW1lIjoiUmVjb3JkQXJyYXkiLCJ0eXBlIjoiUkVDT1JEIn1dLCJtb2RlIjoiUkVQRUFURUQiLCJuYW1lIjoiUmVjb3JkQXJyYXkiLCJ0eXBlIjoiUkVDT1JEIn1dfSwidGFibGVSZWZlcmVuY2UiOnsiZGF0YXNldElkIjoiZGF0YXNldF8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDAxIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCIsInRhYmxlSWQiOiJ0YWJsZV8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDA4In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:39 GMT" + ], + "Etag": [ + "W0kLF+Aew/VCOw2KtSvzYA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/+2WUXOaQBSF/8v2sYkgxijM5AEVHaaoKWA7mU7H2cCKVGDpssZaJ/+9C0ExsEFt+tgn5u7cb8/hcljYgZUfuUABj773c43I9gOFjwECVwBR6LH1r+LKGH5U0Ub40p9upE/Uevr9oN7dsQ4/5ZIlDoJtCKNrF4X4mqKEKi6kMEF0LolNuSlK3fntrSzetmVRlFvsMhdFsdnIdOpaukwiQcHC8KMVE1pSGieKIOyNNjyMvQDB2E8aDg4P68KTJMQE/0AOTQSOOyF3lwjn2BQym4lwltusyUQLRFDkIKDsQG5Ef2NSjMlNZB3nGNrLZMAZrp7ZEJ0lCmFqZ+GjwE2A8m0HIhgyh2CSXtiW2zitLNvUJyNWh9hNa1P7PNNNbcB2ORC9LXNeIL0HW7PqCT2iyEOkYPSJrY00s54aBhjSghkaU9U+4QxjlofoyNt0amjqpJ6y/ZA9CRjGBWfrY82y1fF9PTmA9Gh2A9XWTiu9Fjm9/2sm1TjNTdYhIr5TYJPZWDP1fj01QtgjMF5uL4uDRYkfeSohsBa815h1XipKJCcaVTSLRgms5KOK5fkogZyQVNFDSEowNylVPH2SJbIcF74mR+60EgfkBacK58EpsZz0VNFDev4iCSZyMHELxtT6U3PAid0V5wB7yd9lmX2X4CWn2feKaGk8VeV8PO9X/rfa/8f85piZOojW4ct3UQEiyEoDR56NSHnZxJt95RAEqY+j7IhXQLPdkaRup9OSb27Snwn0K/ZJtaHbEjvsw84aApjQMXZ9dgduZY+2JB8dG2rPSF/9ADvZhmxpZoHnP5Sf6BD8CQAA" + } + }, + { + "ID": "3ad32e1bacd89174", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0008/insertAll?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "1350" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJyb3dzIjpbeyJpbnNlcnRJZCI6Ikt3RjJDT3FuenMwYUlOS3pKeXNQTmY3WVdkNCIsImpzb24iOnsiQm9vbGVhbiI6dHJ1ZSwiQm9vbGVhbkFycmF5IjpbdHJ1ZSxmYWxzZV0sIkJ5dGVzIjoiWW5sMFpRPT0iLCJEYXRlIjoiMjAxNi0wMy0yMCIsIkRhdGVBcnJheSI6WyIyMDE2LTAzLTIwIiwiMTk5NC0wNS0xNSJdLCJEYXRlVGltZSI6IjIwMTYtMDMtMjAgMTU6MDQ6MDUuMDAwMDA2IiwiRGF0ZVRpbWVBcnJheSI6WyIyMDE2LTAzLTIwIDE1OjA0OjA1LjAwMDAwNiIsIjE5OTQtMDUtMTUgMDE6MDI6MDQiXSwiRmxvYXQiOjMuMTQsIkZsb2F0QXJyYXkiOlsxLDEuNDFdLCJHZW9ncmFwaHkiOiJQT0lOVCgtMTIyLjM1MDIyMCA0Ny42NDkxNTQpIiwiR2VvZ3JhcGh5QXJyYXkiOlsiUE9JTlQoLTEyMi4zNTAyMjAgNDcuNjQ5MTU0KSIsIlBPSU5UKC0xMjIuMDgzNjc5MSAzNy40MjE4MjcpIl0sIkludGVnZXIiOjQyLCJJbnRlZ2VyQXJyYXkiOlsxLDJdLCJOYW1lIjoiYSIsIk51bWVyaWMiOiIwLjU3MDAwMDAwMCIsIk51bWVyaWNBcnJheSI6WyIwLjUwMDAwMDAwMCIsIjAuNjAwMDAwMDAwIl0sIlJlY29yZCI6eyJSZWNvcmQiOnsiSW50ZWdlciI6MjR9LCJSZWNvcmRBcnJheSI6W3siSW50ZWdlciI6MX0seyJJbnRlZ2VyIjoyfV0sIlN0cmluZyI6InN0cmluZyJ9LCJSZWNvcmRBcnJheSI6W3siUmVjb3JkIjp7IkludGVnZXIiOjB9LCJTdHJpbmciOiJlbXB0eSJ9LHsiUmVjb3JkIjp7IkludGVnZXIiOjF9LCJSZWNvcmRBcnJheSI6W3siSW50ZWdlciI6MX0seyJJbnRlZ2VyIjoyfV0sIlN0cmluZyI6ImZ1bGwifV0sIlN0cmluZ0FycmF5IjpbImEiLCJiIl0sIlRpbWUiOiIxNTowNDowNS4wMDAwMDYiLCJUaW1lQXJyYXkiOlsiMTU6MDQ6MDUuMDAwMDA2IiwiMDE6MDI6MDQiXSwiVGltZXN0YW1wIjoiMjAxNi0wMy0yMFQxNTowNDowNS4wMDAwMDZaIiwiVGltZXN0YW1wQXJyYXkiOlsiMjAxNi0wMy0yMFQxNTowNDowNS4wMDAwMDZaIiwiMTk5NC0wNS0xNVQwMTowMjowNFoiXX19LHsiaW5zZXJ0SWQiOiJ5YWdvZE93alBITHd5ZDlsM0hKZHZFbXZzdEMiLCJqc29uIjp7IkJvb2xlYW4iOmZhbHNlLCJCeXRlcyI6IllubDBaVEk9IiwiRGF0ZSI6IjIwMTYtMDMtMjAiLCJEYXRlVGltZSI6IjIwMTYtMDMtMjAgMTU6MDQ6MDUuMDAwMDA2IiwiRmxvYXQiOjQuMTMsIkdlb2dyYXBoeSI6IiIsIkludGVnZXIiOjI0LCJOYW1lIjoiYiIsIk51bWVyaWMiOiIwLjQ0OTkwMDAwMCIsIlJlY29yZCI6eyJSZWNvcmQiOnsiSW50ZWdlciI6MH0sIlN0cmluZyI6IiJ9LCJUaW1lIjoiMTU6MDQ6MDUuMDAwMDA2IiwiVGltZXN0YW1wIjoiMjAxNi0wMy0yMFQxNTowNDowNS4wMDAwMDZaIn19XX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:39 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTMK04tKnHMyQlKLS7IB3KUagGmFzWCLgAAAA==" + } + }, + { + "ID": "70d2cca5d44e0d9c", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0008?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:39 GMT" + ], + "Etag": [ + "W0kLF+Aew/VCOw2KtSvzYA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/+3Uz2qDMADH8XfJ2SfwZmsqgRq7mB7G6CFoZgX/EbODiO++uolpk0xx3XGnksOnP4lf7EGbXHnJgNuD95wXaQvctx5UrOTABXj8cYDsmvEUU4JwcDuXdTqeCXw5IwJ9MDiz2HWSt4rsXimMlwWqJM+4UAZhCgNIltWhqJlU5nCMPLryZHVdcFbdPVsUHaGHlxXNS95KVjbKURTCmHrhaVn6TN7dne9RuL70OLL+/49m3Fh3+KPkIk8Uw+cQErRfVgGvM8Gaa7cth1iKvMo8IdgiPMHbo9uq0KQlDZN+paFBow+TTX1o0BKJSedINGwtxeTjm9Sknot90zK3vmSBtnBMPIWjWUs9Jp3r+UUJhCe1SJUhcB8R35KdY/mAffe3rdmnBrd8zS7GqHY95vJ0Pc8v/+32/zX/eM2XYfgEGv3PqmQHAAA=" + } + }, + { + "ID": "f7c0b0e8a9c60fa9", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0008/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:40 GMT" + ], + "Etag": [ + "a468H12rjAJ6Z9aUebIkYg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/8VTXU+DMBT9K6a+uGQ0bbmUj4QHEx+cMX4FH7aFhxIZweGm0GmWZf9dhkrLgEVjjJCQc3vOvb09vWzQPF08IA9FafKyivP1sRRRFp8JKS7TQqIhiqVISl4Ad84pyx9PL/jEFfdxNJqPE98vFXIpRXa3fCtKGSnjvILTDZpV39dddbQdfqDxIiOTYOTXCwxqCJiadTATWRHXEQXLAYczsDDZPVzlE8oNYhqMKLHlEfDIAWnQJyEYwHXr8AtMw78CukuoY608VbhVSU081JWi6fGtrzwGVkMTU2W4zFf/YbFl18HN9egqODEoY9i0CGPkCGzMwaUWDGrz988XoW3Y5KhqoM1hrW0MtCVouPA5dvs1er2xueNy02aASSuryzfXBYNYBrXae/T5RT3CSupA+V6v1XZBb5nyPrS74S3+O1eki4hjctulR6aNgVGH2QNVUp/XQubpIumaeQb60LdoqrGNtGo9PJQaPz3L9U9+M10zW2VZVy79bbdh9b4DQMzT5osFAAA=" + } + }, + { + "ID": "f2262f6538de5759", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0008/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:40 GMT" + ], + "Etag": [ + "a468H12rjAJ6Z9aUebIkYg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/8VTXU+DMBT9K6a+uGQ0bbmUj4QHEx+cMX4FH7aFhxIZweGm0GmWZf9dhkrLgEVjjJCQc3vOvb09vWzQPF08IA9FafKyivP1sRRRFp8JKS7TQqIhiqVISl4Ad84pyx9PL/jEFfdxNJqPE98vFXIpRXa3fCtKGSnjvILTDZpV39dddbQdfqDxIiOTYOTXCwxqCJiadTATWRHXEQXLAYczsDDZPVzlE8oNYhqMKLHlEfDIAWnQJyEYwHXr8AtMw78CukuoY608VbhVSU081JWi6fGtrzwGVkMTU2W4zFf/YbFl18HN9egqODEoY9i0CGPkCGzMwaUWDGrz988XoW3Y5KhqoM1hrW0MtCVouPA5dvs1er2xueNy02aASSuryzfXBYNYBrXae/T5RT3CSupA+V6v1XZBb5nyPrS74S3+O1eki4hjctulR6aNgVGH2QNVUp/XQubpIumaeQb60LdoqrGNtGo9PJQaPz3L9U9+M10zW2VZVy79bbdh9b4DQMzT5osFAAA=" + } + }, + { + "ID": "b9aa8b7ac378c11d", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0008?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:40 GMT" + ], + "Etag": [ + "W0kLF+Aew/VCOw2KtSvzYA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/+3Uz2qDMADH8XfJ2SfwZmsqgRq7mB7G6CFoZgX/EbODiO++uolpk0xx3XGnksOnP4lf7EGbXHnJgNuD95wXaQvctx5UrOTABXj8cYDsmvEUU4JwcDuXdTqeCXw5IwJ9MDiz2HWSt4rsXimMlwWqJM+4UAZhCgNIltWhqJlU5nCMPLryZHVdcFbdPVsUHaGHlxXNS95KVjbKURTCmHrhaVn6TN7dne9RuL70OLL+/49m3Fh3+KPkIk8Uw+cQErRfVgGvM8Gaa7cth1iKvMo8IdgiPMHbo9uq0KQlDZN+paFBow+TTX1o0BKJSedINGwtxeTjm9Sknot90zK3vmSBtnBMPIWjWUs9Jp3r+UUJhCe1SJUhcB8R35KdY/mAffe3rdmnBrd8zS7GqHY95vJ0Pc8v/+32/zX/eM2XYfgEGv3PqmQHAAA=" + } + }, + { + "ID": "0cb1cee7003b654d", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0008?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:40 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "446ee1667ae24250", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "667" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoiU3RyaW5nIiwidHlwZSI6IlNUUklORyJ9LHsibmFtZSI6IkJ5dGVzIiwidHlwZSI6IkJZVEVTIn0seyJuYW1lIjoiSW50ZWdlciIsInR5cGUiOiJJTlRFR0VSIn0seyJuYW1lIjoiRmxvYXQiLCJ0eXBlIjoiRkxPQVQifSx7Im5hbWUiOiJCb29sZWFuIiwidHlwZSI6IkJPT0xFQU4ifSx7Im5hbWUiOiJUaW1lc3RhbXAiLCJ0eXBlIjoiVElNRVNUQU1QIn0seyJuYW1lIjoiRGF0ZSIsInR5cGUiOiJEQVRFIn0seyJuYW1lIjoiVGltZSIsInR5cGUiOiJUSU1FIn0seyJuYW1lIjoiRGF0ZVRpbWUiLCJ0eXBlIjoiREFURVRJTUUifSx7Im5hbWUiOiJOdW1lcmljIiwidHlwZSI6Ik5VTUVSSUMifSx7Im5hbWUiOiJHZW9ncmFwaHkiLCJ0eXBlIjoiR0VPR1JBUEhZIn0seyJmaWVsZHMiOlt7Im5hbWUiOiJYIiwidHlwZSI6IklOVEVHRVIifV0sIm5hbWUiOiJSZWNvcmQiLCJ0eXBlIjoiUkVDT1JEIn1dfSwidGFibGVSZWZlcmVuY2UiOnsiZGF0YXNldElkIjoiZGF0YXNldF8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDAxIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCIsInRhYmxlSWQiOiJ0YWJsZV8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDA5In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:40 GMT" + ], + "Etag": [ + "LlogGDUyln0N6GmOz/nUhw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42TbW+bMBCA/4v3tQ0OWfOC1A+koQyJQEWI1GqaIhcuxCvYzHbWsWj/fYYmhSTdFPEB3fHc3cMZduiFshRZ6JlmP7Ygqk+KPOeArhAokum8n/PMnS2rnOFg6Bbhb4MtN6+3t5qgdZ3c8DyvCsKuUyj4tQKprJQoIkGtTNyf9LE5Xg2HEzy8mWA8GejbCmPc7zVz/odM9AgJ+dqn7EUP2ihVSsswDqK9jPMsB1JS2Ut48Z43fppGKfh3SJQ0PrAz9nbSuETTaDSlcZFtA0WwBgEsAWTt0F7E+8emdM1eoiEuETqMaQousPqjl5hsoCC1zppCnkpkfd0hRgptiBZKUJbVTauyiePIC1xd9U5MK23aAtOn2Fl0n3tMQQaiJbwgdlwn6jL3OSeqJe790I6PZnCuT5J1poSh79hBl4lpoTdGirKlYm/uLGJ7/tDlZkRBi8zs2DntctzgtPaYqOtPqWBbgKBJCwXLuRN5d13GBZ4JUm6qlnKd0I3shy9PXS6ChIu0hSLnLoxmOj4/qscPVvxNX1eIbYu3U7IQRk3oc5bFIE7TEX89RIkAoihnzetaqH8zMs3xaPQZDwdm/ff/Kqk4B8YDPNKflQZyItWcp1R7pmc9RgPcWbI99Z26gidNQ51a6i/oL5C6dZJ6BAAA" + } + }, + { + "ID": "19afe4a505946726", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0009/insertAll?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "207" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJyb3dzIjpbeyJpbnNlcnRJZCI6InJZNUFWUXpJVlF4V1JFTFFEYzdCZjFHWjJDcyIsImpzb24iOnsiQm9vbGVhbiI6bnVsbCwiQnl0ZXMiOm51bGwsIkRhdGUiOm51bGwsIkRhdGVUaW1lIjpudWxsLCJGbG9hdCI6bnVsbCwiR2VvZ3JhcGh5IjpudWxsLCJJbnRlZ2VyIjpudWxsLCJTdHJpbmciOm51bGwsIlRpbWUiOm51bGwsIlRpbWVzdGFtcCI6bnVsbH19XX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:40 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTMK04tKnHMyQlKLS7IB3KUagGmFzWCLgAAAA==" + } + }, + { + "ID": "d01641ed7408ddd6", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0009/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:41 GMT" + ], + "Etag": [ + "nh/yC0Of4zcCB0TxUk2s5g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8rnZehXOhv4p5lUJTs7GYRUhGYbFZum29oCVZTklyTmBOWXFwOVGQD5RWBmdLVSGpgsU7LKK83JqdUZKGYsEAIASQ+aU+gAAAA=" + } + }, + { + "ID": "994533755987eab3", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0009?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:41 GMT" + ], + "Etag": [ + "LlogGDUyln0N6GmOz/nUhw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/23RwWrDMAwA0H/RuV+Qm9uonqGxi+PBytjBpFoaiOPguIcQ+u/rdpidbOgk9CSBtMDU3MhZKBb47Ki/TlC8LzBYR1BAHUM3tLCDOI8/udFCcnjsfsV+jjQlsL8YrPO6GCK1FJIQ0iBHnZtj721M4nhSzKx2eN+THbItSp2QydyYztEUrRuTMqLC2rDqnLvSRkqkZAa3U9YDtr1r8d2/VfLuKHRNQvK1Qi0OueHk22DH25wUR8U1O79ccqep8eGakMaD0uUz//uqt39O/PGMxxcmuQC34gEAAA==" + } + }, + { + "ID": "cdb966ca9b1fc949", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0009/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:41 GMT" + ], + "Etag": [ + "nh/yC0Of4zcCB0TxUk2s5g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8rnZehXOhv4p5lUJTs7GYRUhGYbFZum29oCVZTklyTmBOWXFwOVGQD5RWBmdLVSGpgsU7LKK83JqdUZKGYsEAIASQ+aU+gAAAA=" + } + }, + { + "ID": "30636bb05db80032", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0009?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:41 GMT" + ], + "Etag": [ + "LlogGDUyln0N6GmOz/nUhw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/23RwWrDMAwA0H/RuV+Qm9uonqGxi+PBytjBpFoaiOPguIcQ+u/rdpidbOgk9CSBtMDU3MhZKBb47Ki/TlC8LzBYR1BAHUM3tLCDOI8/udFCcnjsfsV+jjQlsL8YrPO6GCK1FJIQ0iBHnZtj721M4nhSzKx2eN+THbItSp2QydyYztEUrRuTMqLC2rDqnLvSRkqkZAa3U9YDtr1r8d2/VfLuKHRNQvK1Qi0OueHk22DH25wUR8U1O79ccqep8eGakMaD0uUz//uqt39O/PGMxxcmuQC34gEAAA==" + } + }, + { + "ID": "cf7b1f678bd34d5a", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0009/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:42 GMT" + ], + "Etag": [ + "nh/yC0Of4zcCB0TxUk2s5g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8rnZehXOhv4p5lUJTs7GYRUhGYbFZum29oCVZTklyTmBOWXFwOVGQD5RWBmdLVSGpgsU7LKK83JqdUZKGYsEAIASQ+aU+gAAAA=" + } + }, + { + "ID": "40b537bd9ad8dcdd", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0009?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:41 GMT" + ], + "Etag": [ + "LlogGDUyln0N6GmOz/nUhw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/23RwWrDMAwA0H/RuV+Qm9uonqGxi+PBytjBpFoaiOPguIcQ+u/rdpidbOgk9CSBtMDU3MhZKBb47Ki/TlC8LzBYR1BAHUM3tLCDOI8/udFCcnjsfsV+jjQlsL8YrPO6GCK1FJIQ0iBHnZtj721M4nhSzKx2eN+THbItSp2QydyYztEUrRuTMqLC2rDqnLvSRkqkZAa3U9YDtr1r8d2/VfLuKHRNQvK1Qi0OueHk22DH25wUR8U1O79ccqep8eGakMaD0uUz//uqt39O/PGMxxcmuQC34gEAAA==" + } + }, + { + "ID": "c979e263c9592f62", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0009?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:42 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "fb5501deddc50357", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "667" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoiU3RyaW5nIiwidHlwZSI6IlNUUklORyJ9LHsibmFtZSI6IkJ5dGVzIiwidHlwZSI6IkJZVEVTIn0seyJuYW1lIjoiSW50ZWdlciIsInR5cGUiOiJJTlRFR0VSIn0seyJuYW1lIjoiRmxvYXQiLCJ0eXBlIjoiRkxPQVQifSx7Im5hbWUiOiJCb29sZWFuIiwidHlwZSI6IkJPT0xFQU4ifSx7Im5hbWUiOiJUaW1lc3RhbXAiLCJ0eXBlIjoiVElNRVNUQU1QIn0seyJuYW1lIjoiRGF0ZSIsInR5cGUiOiJEQVRFIn0seyJuYW1lIjoiVGltZSIsInR5cGUiOiJUSU1FIn0seyJuYW1lIjoiRGF0ZVRpbWUiLCJ0eXBlIjoiREFURVRJTUUifSx7Im5hbWUiOiJOdW1lcmljIiwidHlwZSI6Ik5VTUVSSUMifSx7Im5hbWUiOiJHZW9ncmFwaHkiLCJ0eXBlIjoiR0VPR1JBUEhZIn0seyJmaWVsZHMiOlt7Im5hbWUiOiJYIiwidHlwZSI6IklOVEVHRVIifV0sIm5hbWUiOiJSZWNvcmQiLCJ0eXBlIjoiUkVDT1JEIn1dfSwidGFibGVSZWZlcmVuY2UiOnsiZGF0YXNldElkIjoiZGF0YXNldF8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDAxIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCIsInRhYmxlSWQiOiJ0YWJsZV8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDEwIn19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:42 GMT" + ], + "Etag": [ + "PMfCB7YDCQa3Nn7uDu/xiQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42TUW/aMBCA/4v32hInaQlE6kOAlEWCQEMqDU0TcpMjeE3szDZbEdp/n5NBE6CbUB7QHd/dfTk7e/RKWYpc9EKzH1sQu0+KvOSAbhAokun8fLoeDpzlaPhE7JA529HWeKNPDw+aoFWd3PA83xWE3aZQ8FsFUrkpUUSCWlnY7JvY6q263T7u3vcx7tv6Z4UxNjv1nP8gJtYjJOTrCWWvetBGqVK6hnEU7WScZzmQkspOwov3vPHTMkrBv0OipPGBnXGwk8Y1mkatKY2rbGsogjUIYAkgd48OIsE/NqVrDhI1cY3QcUxdcIXVb73EZAMFqXTWFPJUIvfrHjFSaEO0UIKyrGq6K+s4joJwrKveicFOmzbAYBn7i/b/AVOQgWiIIIz9sR+1mcecE9UQj5OZF5/M4FyfJGtNmc0mvhe2mZgWemOkKBsqDqb+Ivam8zY3IgoaZOTF/nmX0wbntadEVX9OhdsCBE0aKHye+lEwbDNj4Jkg5WbXUGN/No68+edlm4sg4SJtoMgfzqKRji+P6ssHK/6mnxvEtsXfU3JRdQ11OOEsi0GcpyP+6xglAoiinNWv6yLz3rGsnuPcWbbdq77+t5KKS6BnY0ffQg3kRKopT6n2TC963Nm4tWRvMPGrCp7UDXXqWd+gP2X4FNJ6BAAA" + } + }, + { + "ID": "ed2779d65db61dd9", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0010/insertAll?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "207" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJyb3dzIjpbeyJpbnNlcnRJZCI6IjdRMmZBM0QzNG9EN0o5cFNmUDZVc3I0VkEzNCIsImpzb24iOnsiQm9vbGVhbiI6bnVsbCwiQnl0ZXMiOm51bGwsIkRhdGUiOm51bGwsIkRhdGVUaW1lIjpudWxsLCJGbG9hdCI6bnVsbCwiR2VvZ3JhcGh5IjpudWxsLCJJbnRlZ2VyIjpudWxsLCJTdHJpbmciOm51bGwsIlRpbWUiOm51bGwsIlRpbWVzdGFtcCI6bnVsbH19XX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:42 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTMK04tKnHMyQlKLS7IB3KUagGmFzWCLgAAAA==" + } + }, + { + "ID": "61df195aaa5fc1bb", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0010?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:42 GMT" + ], + "Etag": [ + "PMfCB7YDCQa3Nn7uDu/xiQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/23RwWrDMAwA0H/RuV+Qm9uonqGxi+PBytjBpFoaiOPguIcQ+u/rdpidbOgk9CSBtMDU3MhZKBb47Ki/TlC8LzBYR1BAHUM3tLCDOI8/udFCcnjsfsV+jjQlsL8YrPO6GCK1FJIQ0iBHnZtj721M4nhSzKx2eN+THbItSp2QydyYztEUrRuTMqLC2rDqnLvSRkqkZAa3U9YDtr1r8d2/VfLuKHRNQvK1Qi0OueHk22DH25wUR8U1O79ccqep8eGakMaD0uUz//uqt39O/PGMxxcmuQC34gEAAA==" + } + }, + { + "ID": "986acf56a18b37a1", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0010/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:42 GMT" + ], + "Etag": [ + "wIC4LkcvUWLDDKbQ80B2PA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qXezqb+GQnl4WG+7i4eCcFWhg4GQU42toCVZTklyTmBOWXFwOVGQD5RWBmdLVSGpgsU7LKK83JqdUZKGYsEAIAUG9l1ugAAAA=" + } + }, + { + "ID": "d530bfd23d74d044", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0010/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:43 GMT" + ], + "Etag": [ + "wIC4LkcvUWLDDKbQ80B2PA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qXezqb+GQnl4WG+7i4eCcFWhg4GQU42toCVZTklyTmBOWXFwOVGQD5RWBmdLVSGpgsU7LKK83JqdUZKGYsEAIAUG9l1ugAAAA=" + } + }, + { + "ID": "930383573429ad49", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0010?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:43 GMT" + ], + "Etag": [ + "PMfCB7YDCQa3Nn7uDu/xiQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/23RwWrDMAwA0H/RuV+Qm9uonqGxi+PBytjBpFoaiOPguIcQ+u/rdpidbOgk9CSBtMDU3MhZKBb47Ki/TlC8LzBYR1BAHUM3tLCDOI8/udFCcnjsfsV+jjQlsL8YrPO6GCK1FJIQ0iBHnZtj721M4nhSzKx2eN+THbItSp2QydyYztEUrRuTMqLC2rDqnLvSRkqkZAa3U9YDtr1r8d2/VfLuKHRNQvK1Qi0OueHk22DH25wUR8U1O79ccqep8eGakMaD0uUz//uqt39O/PGMxxcmuQC34gEAAA==" + } + }, + { + "ID": "9eaacda204d03b05", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0010/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:43 GMT" + ], + "Etag": [ + "wIC4LkcvUWLDDKbQ80B2PA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qXezqb+GQnl4WG+7i4eCcFWhg4GQU42toCVZTklyTmBOWXFwOVGQD5RWBmdLVSGpgsU7LKK83JqdUZKGYsEAIAUG9l1ugAAAA=" + } + }, + { + "ID": "4b2c8e4216cfc48e", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0010?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:43 GMT" + ], + "Etag": [ + "PMfCB7YDCQa3Nn7uDu/xiQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/23RwWrDMAwA0H/RuV+Qm9uonqGxi+PBytjBpFoaiOPguIcQ+u/rdpidbOgk9CSBtMDU3MhZKBb47Ki/TlC8LzBYR1BAHUM3tLCDOI8/udFCcnjsfsV+jjQlsL8YrPO6GCK1FJIQ0iBHnZtj721M4nhSzKx2eN+THbItSp2QydyYztEUrRuTMqLC2rDqnLvSRkqkZAa3U9YDtr1r8d2/VfLuKHRNQvK1Qi0OueHk22DH25wUR8U1O79ccqep8eGakMaD0uUz//uqt39O/PGMxxcmuQC34gEAAA==" + } + }, + { + "ID": "96d76d9aa89a3f61", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0010?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:43 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "7b74af6b043ff349", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "667" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoiU3RyaW5nIiwidHlwZSI6IlNUUklORyJ9LHsibmFtZSI6IkJ5dGVzIiwidHlwZSI6IkJZVEVTIn0seyJuYW1lIjoiSW50ZWdlciIsInR5cGUiOiJJTlRFR0VSIn0seyJuYW1lIjoiRmxvYXQiLCJ0eXBlIjoiRkxPQVQifSx7Im5hbWUiOiJCb29sZWFuIiwidHlwZSI6IkJPT0xFQU4ifSx7Im5hbWUiOiJUaW1lc3RhbXAiLCJ0eXBlIjoiVElNRVNUQU1QIn0seyJuYW1lIjoiRGF0ZSIsInR5cGUiOiJEQVRFIn0seyJuYW1lIjoiVGltZSIsInR5cGUiOiJUSU1FIn0seyJuYW1lIjoiRGF0ZVRpbWUiLCJ0eXBlIjoiREFURVRJTUUifSx7Im5hbWUiOiJOdW1lcmljIiwidHlwZSI6Ik5VTUVSSUMifSx7Im5hbWUiOiJHZW9ncmFwaHkiLCJ0eXBlIjoiR0VPR1JBUEhZIn0seyJmaWVsZHMiOlt7Im5hbWUiOiJYIiwidHlwZSI6IklOVEVHRVIifV0sIm5hbWUiOiJSZWNvcmQiLCJ0eXBlIjoiUkVDT1JEIn1dfSwidGFibGVSZWZlcmVuY2UiOnsiZGF0YXNldElkIjoiZGF0YXNldF8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDAxIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCIsInRhYmxlSWQiOiJ0YWJsZV8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDExIn19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:43 GMT" + ], + "Etag": [ + "l0WxJ0QYhQ6Nqv7MErhT9g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SbW+bMBCA/4v3tQ2GLG9I/UAaN2NKSEuoumiaIhcu4BUwtZ22UbT/PkOTQpJuiviA7nju7uHsLXpieYRs9Mji5zWIzRdFH1NAFwgUjXU+xQ9v3/HdIrnres8vvSkRSTCIr640wco6mfA03WQ0v4wg45cKpLIjqqgEtbSwOTCx1V92uwPc7QwwHrT1a4kxNlvVnP8gpqlHSEhXE5Y/6UGJUoW0DWMv2oo5j1OgBZOtkGcfeePFMgrBf0OopPGJnbGzk8Y5mkalKY2zbCvIhxUIyENA9hbtRNx/bErX7CQq4hyh/Ziq4AyrP3qJYQIZLXVWDNJIIvvnFuU004ZorgTL47LppqjiwHe9sa76IIYbbVoDw0VA5s3vbq4gBlETrheQMfGbzE3KqaqJm8nMCQ5mcK5PMm9Mmc0mxPGaTMAyvTGaFTUVuFMyD5zpbZMbUQU1MnICctzlsMFx7SFR1h9T3joDwcIa8u6nxHevm8wYeCxokWxqakxmY9+5/bZocj6EXEQ15JPrmT/S8elR/fhkxb/0c4HydfZ+SjbCqAonPI8DEMdpn7/uo1AAVYzn1e/ayOz0LKvf631td9rlHYO3golToN/GPX0LNZBSqaY8YtozOunRbVuNJTvDCSkreFg11Kl7fYP+AmFW7WF6BAAA" + } + }, + { + "ID": "dc31bfdb538f69ed", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0011/insertAll?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "344" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJyb3dzIjpbeyJpbnNlcnRJZCI6Imp0YVhyNUQyblQxcUZaTzY3SHFXSTE1VmJDNSIsImpzb24iOnsiQm9vbGVhbiI6dHJ1ZSwiQnl0ZXMiOiJBUUlEIiwiRGF0ZSI6IjIwMTYtMTEtMDUiLCJEYXRlVGltZSI6IjIwMTYtMTEtMDUgMTU6MDQ6MDUuMDAwMDA2IiwiRmxvYXQiOjIuMywiR2VvZ3JhcGh5IjoiUE9JTlQoLTEyMi4xOTg5MzkgNDcuNjY5ODY1KSIsIkludGVnZXIiOjEsIk51bWVyaWMiOiIwLjMzMDAwMDAwMCIsIlJlY29yZCI6eyJYIjo0fSwiU3RyaW5nIjoieCIsIlRpbWUiOiIxNTowNDowNS4wMDAwMDYiLCJUaW1lc3RhbXAiOiIyMDE2LTExLTA1VDA3OjUwOjIyLjAwMDAwMDAwOFoifX1dfQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:43 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTMK04tKnHMyQlKLS7IB3KUagGmFzWCLgAAAA==" + } + }, + { + "ID": "ca42cb8c1b6078e7", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0011/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:44 GMT" + ], + "Etag": [ + "kEU0nDtnorkiHoSe7huI5g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/3WPywrCMBBFf0XiRsGGiWnSB3QhVLAgPutKXESMtbS0WFMfSP/dqNi60GEY7p05cJk7SuJsh1y0jaNjKYtbW4ltKn2hxDg+KdRDUolI35PhCjJfZXmRxKN8Ka1DGbDI8zShciXSRX45aQy0L15yfUf71zzr9RVVvbcazAO/NqRWfUxrrYpSNohp2ZT2dWFoaCDcIMQA1nDMBdMFhuFZ/Aca/kMA0yZ8Ng0mYccgOo84tkOdlmlhzh2bs+4H+v7MRNWm0r2pHvDdH2VLAQAA" + } + }, + { + "ID": "641f5cdebbe03252", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0011?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:44 GMT" + ], + "Etag": [ + "l0WxJ0QYhQ6Nqv7MErhT9g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/23RwWrDMAwA0H/RuV+Qm9uonqGxi+PBytjBpFoaiOPguIcQ+u/rdpidbOgk9CSBtMDU3MhZKBb47Ki/TlC8LzBYR1BAHUM3tLCDOI8/udFCcnjsfsV+jjQlsL8YrPO6GCK1FJIQ0iBHnZtj721M4nhSzKx2eN+THbItSp2QydyYztEUrRuTMqLC2rDqnLvSRkqkZAa3U9YDtr1r8d2/VfLuKHRNQvK1Qi0OueHk22DH25wUR8U1O79ccqep8eGakMaD0uUz//uqt39O/PGMxxcmuQC34gEAAA==" + } + }, + { + "ID": "8d97bc62cc5076ab", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0011?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:44 GMT" + ], + "Etag": [ + "l0WxJ0QYhQ6Nqv7MErhT9g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/23RwWrDMAwA0H/RuV+Qm9uonqGxi+PBytjBpFoaiOPguIcQ+u/rdpidbOgk9CSBtMDU3MhZKBb47Ki/TlC8LzBYR1BAHUM3tLCDOI8/udFCcnjsfsV+jjQlsL8YrPO6GCK1FJIQ0iBHnZtj721M4nhSzKx2eN+THbItSp2QydyYztEUrRuTMqLC2rDqnLvSRkqkZAa3U9YDtr1r8d2/VfLuKHRNQvK1Qi0OueHk22DH25wUR8U1O79ccqep8eGakMaD0uUz//uqt39O/PGMxxcmuQC34gEAAA==" + } + }, + { + "ID": "282c22bdc2ba11d4", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0011/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:44 GMT" + ], + "Etag": [ + "kEU0nDtnorkiHoSe7huI5g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/3WPywrCMBBFf0XiRsGGiWnSB3QhVLAgPutKXESMtbS0WFMfSP/dqNi60GEY7p05cJk7SuJsh1y0jaNjKYtbW4ltKn2hxDg+KdRDUolI35PhCjJfZXmRxKN8Ka1DGbDI8zShciXSRX45aQy0L15yfUf71zzr9RVVvbcazAO/NqRWfUxrrYpSNohp2ZT2dWFoaCDcIMQA1nDMBdMFhuFZ/Aca/kMA0yZ8Ng0mYccgOo84tkOdlmlhzh2bs+4H+v7MRNWm0r2pHvDdH2VLAQAA" + } + }, + { + "ID": "7f78f3bc04f23a0c", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0011/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:45 GMT" + ], + "Etag": [ + "kEU0nDtnorkiHoSe7huI5g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/3WPywrCMBBFf0XiRsGGiWnSB3QhVLAgPutKXESMtbS0WFMfSP/dqNi60GEY7p05cJk7SuJsh1y0jaNjKYtbW4ltKn2hxDg+KdRDUolI35PhCjJfZXmRxKN8Ka1DGbDI8zShciXSRX45aQy0L15yfUf71zzr9RVVvbcazAO/NqRWfUxrrYpSNohp2ZT2dWFoaCDcIMQA1nDMBdMFhuFZ/Aca/kMA0yZ8Ng0mYccgOo84tkOdlmlhzh2bs+4H+v7MRNWm0r2pHvDdH2VLAQAA" + } + }, + { + "ID": "29d94ea00cc7cd50", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0011?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:45 GMT" + ], + "Etag": [ + "l0WxJ0QYhQ6Nqv7MErhT9g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/23RwWrDMAwA0H/RuV+Qm9uonqGxi+PBytjBpFoaiOPguIcQ+u/rdpidbOgk9CSBtMDU3MhZKBb47Ki/TlC8LzBYR1BAHUM3tLCDOI8/udFCcnjsfsV+jjQlsL8YrPO6GCK1FJIQ0iBHnZtj721M4nhSzKx2eN+THbItSp2QydyYztEUrRuTMqLC2rDqnLvSRkqkZAa3U9YDtr1r8d2/VfLuKHRNQvK1Qi0OueHk22DH25wUR8U1O79ccqep8eGakMaD0uUz//uqt39O/PGMxxcmuQC34gEAAA==" + } + }, + { + "ID": "c38f590e1aacba44", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0011?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:45 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "def7df2ab3b7858c", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "366" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im1vZGUiOiJSRVBFQVRFRCIsIm5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifSx7ImZpZWxkcyI6W3sibmFtZSI6ImJvb2wiLCJ0eXBlIjoiQk9PTEVBTiJ9XSwibmFtZSI6InJlYyIsInR5cGUiOiJSRUNPUkQifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMTIifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:45 GMT" + ], + "Etag": [ + "1i0CY1MkXrbTixhAJOUBRQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42S0U7CQBBF/2V9FXZbhEITHig2BoOgtSYaY8jSDmWl7dbuqhDCvzutYI2oafqwmTv3zpxMuiUrkYbEJnMRvbxCvjnRfB4DOSWgeYS6Idjwwbha3edzX6yXg8vpnePd9PvoEEVOLWUcbxKeNkJIZEOD0nbINVegZyYzegYzu7NOp8c67R5jvRY+M8aY0Sz3/GMxTFyhIF6MRbrCRUutM2VTegBtRlJGMfBMqGYgky+dvpk0y+UzBFrRX+jonk7ROpi0xFS0Fm1p8mABOaQBEHtL9iCjPy6FmT1E6agDdFhTBmpQ7fCIwRISXuAsBMShIvbjlqQ8QcLPB0dusqK69b3R5AIzVf81UVV/NPHdC9dDIZFhIXjutTvw3fPvkRyCKuG5w6l3jvXx6rmUcWV0ptOxO5iQ3RN+p8VeZ4Mnwg4jZTmWaeRD/lP25PuhCnLgWsjUF+V8o22ZZteyztqdtlX80OtM5MeGbotZeFg0xFzpKxkKRA2PZlimVcH6A2fsFgkZlANRursluw9+EJdSTQMAAA==" + } + }, + { + "ID": "003b5be24f39193c", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0012?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:45 GMT" + ], + "Etag": [ + "1i0CY1MkXrbTixhAJOUBRQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42S0U7CQBBF/2V9FXZbhEITHig2BoOgtSYaY8jSDmWl7dbuqhDCvzutYI2oafqwmTv3zpxMuiUrkYbEJnMRvbxCvjnRfB4DOSWgeYS6Idjwwbha3edzX6yXg8vpnePd9PvoEEVOLWUcbxKeNkJIZEOD0nbINVegZyYzegYzu7NOp8c67R5jvRY+M8aY0Sz3/GMxTFyhIF6MRbrCRUutM2VTegBtRlJGMfBMqGYgky+dvpk0y+UzBFrRX+jonk7ROpi0xFS0Fm1p8mABOaQBEHtL9iCjPy6FmT1E6agDdFhTBmpQ7fCIwRISXuAsBMShIvbjlqQ8QcLPB0dusqK69b3R5AIzVf81UVV/NPHdC9dDIZFhIXjutTvw3fPvkRyCKuG5w6l3jvXx6rmUcWV0ptOxO5iQ3RN+p8VeZ4Mnwg4jZTmWaeRD/lP25PuhCnLgWsjUF+V8o22ZZteyztqdtlX80OtM5MeGbotZeFg0xFzpKxkKRA2PZlimVcH6A2fsFgkZlANRursluw9+EJdSTQMAAA==" + } + }, + { + "ID": "d00dd89cc00f0049", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0012?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "78" + ], + "If-Match": [ + "1i0CY1MkXrbTixhAJOUBRQ==" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJkZXNjcmlwdGlvbiI6Im1vcmUiLCJleHBpcmF0aW9uVGltZSI6IjE1NzIzNzQ3MDcwMDAiLCJmcmllbmRseU5hbWUiOiJtb3JlIn0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:46 GMT" + ], + "Etag": [ + "/i1JBShzIyD2yYicBdiZdw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SUW/aMBSF/4v3SrGTQgKR+kBGVDExmEL20FYTMvYleE3izHbXZoj/PjuDZqLdhPJg3etz7vlsZ48eRcVRhDYi//EEqvlg6KYA1ENgaG77WHif4tXu16yZ+s2dYDEX9/z55sYqhPPpnSyKpqTVFYdSXhnQJuLUUA1m7RNv7BF/tA6CMQmGY0LG13ZZE0K8fpvzH4nn2wgNxXYuqkcbtDOm1hHGJ9B+LmVeAK2F7jNZvvbxTx/XSn4HZjR+hw4f6TS+BBO3mBpfRNuKUtiCgooBivboCDL7x01ZzxGiVVwCdIppDRdQHXpoqwRUvGgWtLRQqJTKvS8HzZSojZBV19RsByV15FsBBdcoetij6o+vXWx6U7tqlaWzxa0d3+0/lbrbny2y5DZJbaOU3DXS5EsyyZLp3xYFrHOkycdlOrX12+iNlEUnjJfLeTJZoMM3+/VcbtzY27Q7BLXlXFZ5Buq8ncrnU8UUUHfyTLTzvWHo+6MwHAyDYej+/ZdaqHPBdTgISWjfwAoKqs1nyYVF5eczgoE36mCzSTxPnEMyerzrryt0+A1hq4lUeAMAAA==" + } + }, + { + "ID": "60c0b980faae6d42", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0012?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "21" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJmcmllbmRseU5hbWUiOiJ4In0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:46 GMT" + ], + "Etag": [ + "tdQ8f+rEaSgmViqeU7Navg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SX2+bMBTFv4v3uDQYWiBB6kOyWlWkjKyE7mWaIgdfiFeDqe12RVG++2yWjCn7o4gH616fc8/PNnv0xBuGErTl1fMLqO6doVsBaITA0Mr2DXuYlO8Voeuq/syf4TFO6Wt1e2sV3Pn0TgrR1bS5YlDLKwPaJIwaqsFsAuxPfRxMNlE0xVE4xXh6bZcNxtgf9zn/kfiBjdAgyiVvnmzQzphWJ553Ah1XUlYCaMv1uJD1r773Gnitkt+gMNr7C513pNPeJZhej6m9i2h7UQYlKGgKQMkeHUEW/7gp6zlC9IpLgE4xveECqsMIlYpDw0SX0tpCoTeXCrpQvDVcNrZTS+VeXBc7qKnDLjkIplHyZY+an6Z+sdFd66p1ni3Sezt72H+p9bC/SHNyTzLbqCVzjYx8IrOc3P1uUVAMjox8WGV3tv4zeiulGITz1WpJZik6fLXfyOXOO3uVdgejvlzKpspBnbcz+f1UFQqoO3nO+/l+GAfBJI5vwiiM3Y//1nJ1LriOb2Ic2wewAkG1+SgZt6jsfEYUB+EAm8/mS+IcsqDHu35co8MP7+RIO3UDAAA=" + } + }, + { + "ID": "fc7268185c0ac1a9", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0012?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "21" + ], + "If-Match": [ + "/i1JBShzIyD2yYicBdiZdw==" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJmcmllbmRseU5hbWUiOiJ5In0K" + ] + }, + "Response": { + "StatusCode": 412, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:46 GMT" + ], + "Etag": [ + "tdQ8f+rEaSgmViqeU7Navg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6vmUlBQSi0qyi9SslKoBnKA3OT8lFQgz8TAQAcikJtaXJyYDhJTCihKTc7PS8ksyczPU0jOSE3OVkhLzMxJTdFTgioGG1YMVBsN5itATSXZILCGlPzcxMw8kPr0nPykxBxkuaLUxOJ8sBxEI7KJSlBltWA6Fuq04pLEklKQ05TcHD19XF3iA4Jcnf39XDxDPP39QFpquWq5AH1JwmMSAQAA" + } + }, + { + "ID": "709e9c0327d9aec7", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0012?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "293" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7ImZpZWxkcyI6W3sibmFtZSI6Im5lc3RlZCIsInR5cGUiOiJCT09MRUFOIn0seyJuYW1lIjoib3RoZXIiLCJ0eXBlIjoiU1RSSU5HIn1dLCJuYW1lIjoicmVjMiIsInR5cGUiOiJSRUNPUkQifSx7Im1vZGUiOiJSRVBFQVRFRCIsIm5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifSx7ImZpZWxkcyI6W3sibmFtZSI6ImJvb2wiLCJ0eXBlIjoiQk9PTEVBTiJ9XSwibmFtZSI6InJlYyIsInR5cGUiOiJSRUNPUkQifV19fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:47 GMT" + ], + "Etag": [ + "2k+dS8/NweEIP0snP6EXRg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41TX2/aMBD/Lt7jWuyEkpBIfYA1qpBYQCGTJlUVMskRPBI7s921EeK7185g6Wg35cm6u98/++QD2jOeoxBtWPHzCWTzSdNNCegKgaaF6bv7z/lqjONniGZLovjSi74nxe2tQTDLUztRlk1F+XUOlbjWoHSYU00V6LVLnMAh7njteQHxRgEhwdAca0KIM2h9/gNxXGOhoNzOGd8bo53WtQoxPgcdFEIUJdCaqUEmqj99/MvFtRQ/INMKf5AOn9Ip3CcmbmMq3CttC0pgCxJ4Big8oFOQ2T9eynBOIVpEn0Bnm5bQI9XxCm0lA56XTUwrEwq9WFdQmWS1ZoKbTiWk3bjKdlBRG3vLoMwVCh8OiP8mtYexbmpbrdJkFt8b7W7+VKluPovT6D5KTKMSuW0k0TKapNHdW4qErGMk0ZdFcmfq99YbIcoOOF0s5tEkRsfHv6XcXlrcPDrkH6h1WkLvQL6/6qM1tNecNmZzZkBQW84FL1KQl+1EPJ+rTAK1D52yVt8Z+a479v2bkTfy7T97qZm8BAz9G5/4Zt8GUFKlv4qcmdvklxr+0A26rOlkOo8sQ2T0tNpvK3R8BUBVLhfkAwAA" + } + }, + { + "ID": "24692315f7c847e6", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0012?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "14" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJzY2hlbWEiOnt9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:47 GMT" + ], + "Etag": [ + "2k+dS8/NweEIP0snP6EXRg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41TX2/aMBD/Lt7jWuyEkpBIfYA1qpBYQCGTJlUVMskRPBI7s921EeK7185g6Wg35cm6u98/++QD2jOeoxBtWPHzCWTzSdNNCegKgaaF6bv7z/lqjONniGZLovjSi74nxe2tQTDLUztRlk1F+XUOlbjWoHSYU00V6LVLnMAh7njteQHxRgEhwdAca0KIM2h9/gNxXGOhoNzOGd8bo53WtQoxPgcdFEIUJdCaqUEmqj99/MvFtRQ/INMKf5AOn9Ip3CcmbmMq3CttC0pgCxJ4Big8oFOQ2T9eynBOIVpEn0Bnm5bQI9XxCm0lA56XTUwrEwq9WFdQmWS1ZoKbTiWk3bjKdlBRG3vLoMwVCh8OiP8mtYexbmpbrdJkFt8b7W7+VKluPovT6D5KTKMSuW0k0TKapNHdW4qErGMk0ZdFcmfq99YbIcoOOF0s5tEkRsfHv6XcXlrcPDrkH6h1WkLvQL6/6qM1tNecNmZzZkBQW84FL1KQl+1EPJ+rTAK1D52yVt8Z+a479v2bkTfy7T97qZm8BAz9G5/4Zt8GUFKlv4qcmdvklxr+0A26rOlkOo8sQ2T0tNpvK3R8BUBVLhfkAwAA" + } + }, + { + "ID": "fb23ad8a16ca5b66", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0012?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "311" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJzY2hlbWEiOnsiZmllbGRzIjpbeyJtb2RlIjoiUkVRVUlSRUQiLCJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im1vZGUiOiJSRVBFQVRFRCIsIm5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifSx7ImZpZWxkcyI6W3sibmFtZSI6ImJvb2wiLCJ0eXBlIjoiQk9PTEVBTiJ9XSwibmFtZSI6InJlYyIsInR5cGUiOiJSRUNPUkQifSx7ImZpZWxkcyI6W3sibmFtZSI6Im5lc3RlZCIsInR5cGUiOiJCT09MRUFOIn0seyJuYW1lIjoib3RoZXIiLCJ0eXBlIjoiU1RSSU5HIn1dLCJuYW1lIjoicmVjMiIsInR5cGUiOiJSRUNPUkQifV19fQo=" + ] + }, + "Response": { + "StatusCode": 400, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:48 GMT" + ], + "Etag": [ + "2k+dS8/NweEIP0snP6EXRg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/92QzU6EQBCE7zxFZ87uZkAlsjfMoiFBorh4MYb0Mi2QzE/CjJuYDe/ugBw87QN46lRVd1JfnwMARuNoRraDsxdetkaQVzecX/0aiqzFbvbY82hOgyABr21PCkEYsqCNA4Wu7eGAR0lgeyPlt0K9EaTMxpF1O4EOLbkm4mES8uiuieOEx7cJ58m1Hw3nPNy6+fzCShht4WEgKUCjIujRQtuj7nwf5UvD52gUlHVRpPdFBs5Alb3UeZXt2UqykFoP8r5oWJH/F+VCI4zCQc8wnTRHlH+zkdCaJRv0CeUg2JpNy/xYn2Uduq/5WSwv39Ii3zdp9Vg/ZeVh3p+CKfgBUCscXD4CAAA=" + } + }, + { + "ID": "94bad9152ebf96c7", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0012?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "342" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im1vZGUiOiJSRVBFQVRFRCIsIm5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifSx7ImZpZWxkcyI6W3sibmFtZSI6ImJvb2wiLCJ0eXBlIjoiQk9PTEVBTiJ9XSwibmFtZSI6InJlYyIsInR5cGUiOiJSRUNPUkQifSx7ImZpZWxkcyI6W3sibmFtZSI6Im5lc3RlZCIsInR5cGUiOiJCT09MRUFOIn0seyJuYW1lIjoib3RoZXIiLCJ0eXBlIjoiU1RSSU5HIn1dLCJuYW1lIjoicmVjMiIsInR5cGUiOiJSRUNPUkQifSx7Im1vZGUiOiJSRVFVSVJFRCIsIm5hbWUiOiJyZXEiLCJ0eXBlIjoiU1RSSU5HIn1dfX0K" + ] + }, + "Response": { + "StatusCode": 400, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:48 GMT" + ], + "Etag": [ + "2k+dS8/NweEIP0snP6EXRg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/92Qz0rEMBDG732KoScFt6RVi+1tUZEFXUR3vYiU2WZsA/mDSXZRlr67SezBkw/gafjm+4aZ3xwzgJysNTZv4RhEkL3hFNQFY2c/DUXO4RB7+aM1B8GJw3M/kkLghhxo40Gh70fY4E4SuNFI+aVQLzgps/DkfMvRoyPfVaxsSlZddXXdsPqyYaw5D6VjjJWFj+N/RMqqgGvUcR9yDpY+9sKGY94FSe7AG0AN9CmcF3oAl04s4CTZbYyf5jNSQnaB6DVpmNn/KW7C4kah0JFqkGaH8rdnCZ1JntAHlILnszel+jZ/zXn0+/i1fLV+Wd6vbrrl09324Xa9ifkpm7JvvtAZEVACAAA=" + } + }, + { + "ID": "8bb5c03e938ca416", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0012?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "182" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im1vZGUiOiJSRVBFQVRFRCIsIm5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifSx7ImZpZWxkcyI6W3sibmFtZSI6ImJvb2wiLCJ0eXBlIjoiQk9PTEVBTiJ9XSwibmFtZSI6InJlYyIsInR5cGUiOiJSRUNPUkQifV19fQo=" + ] + }, + "Response": { + "StatusCode": 400, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:48 GMT" + ], + "Etag": [ + "2k+dS8/NweEIP0snP6EXRg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/9WQT0vDQBDF7/kUw57bsokaTG8FqxS0iFYvImGaHZKF/QM7a0VKvrubNQdP3j0Nb94M/N47FwCCQvBBrOGcRJKdV5TUpZSLn4UlZuynnXgM/qQVKXjuBrIIyhOD8xEsxm6AAx4NAQ/emC+LbqnI+mUkjmuFEZliW8myKWV13dZ1I+urRsrmIo1WSlmu4vT+x0lZreBWk1EQqKtAM1jNrF0P2oGjT+BMJWbunIsT9lvWMAf8z5kyu/IWtZvQe+OPaH57gZB99rQ7odFKzN6Y5/tcDUeMH1M1Yrd/3dzvbtrN093Lw3Z/mO7HYiy+AQQhsgMaAgAA" + } + }, + { + "ID": "de4ab341ea7c116f", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0012?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "260" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im1vZGUiOiJSRVBFQVRFRCIsIm5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifSx7ImZpZWxkcyI6W3sibmFtZSI6ImJvb2wiLCJ0eXBlIjoiQk9PTEVBTiJ9XSwibmFtZSI6InJlYyIsInR5cGUiOiJSRUNPUkQifSx7ImZpZWxkcyI6W3sibmFtZSI6Im5lc3RlZCIsInR5cGUiOiJCT09MRUFOIn1dLCJuYW1lIjoicmVjMiIsInR5cGUiOiJSRUNPUkQifV19fQo=" + ] + }, + "Response": { + "StatusCode": 400, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:49 GMT" + ], + "Etag": [ + "2k+dS8/NweEIP0snP6EXRg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/9WQS0vEQBCE7/kVzZzdMIkazN4WfLCgi+jqRST0ZppkYB4wPa7Ikv/uZMzBk3dPTXV1Q311KgAEheCDWMMpiSR7ryipCynPfhaWmHGYd+Ix+KNWpOC5H8kiKE8MzkewGPsR9ngwBDx6Y74supUi61eROK4VRmSKXS2rtpL1Vdc0rWwuWynb8zQ6KWVVxvn9j5OqLuFWk1EQqK9LH0cKoBmsZtZuAO3A0SdwziaW9JmOU/i3rGHB/P9kmUB5i9rNAIPxBzS/vUDIPnvaHdFoJRZvyvN9KYgjxo+5ILHdvW7ut9fd5unu5eFmt5/vp2IqvgF1KIWvJgIAAA==" + } + }, + { + "ID": "07308d9cf03734c9", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0012?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "214" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im1vZGUiOiJSRVBFQVRFRCIsIm5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifSx7ImZpZWxkcyI6W3sibmFtZSI6ImJvb2wiLCJ0eXBlIjoiQk9PTEVBTiJ9XSwibmFtZSI6InJlYyIsInR5cGUiOiJSRUNPUkQifSx7Im5hbWUiOiJyZWMyIiwidHlwZSI6IlJFQ09SRCJ9XX19Cg==" + ] + }, + "Response": { + "StatusCode": 400, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:49 GMT" + ], + "Etag": [ + "2k+dS8/NweEIP0snP6EXRg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6WOMQvCMBCF9/6KI7NDESe3YqsIWqGoi4ikzdEG0kZyqSCl/90kZnB3Ot69e9+9KQFgaIw2bA2TE042WqBTqzRdfBc9EvHW79hWohJgsFmCJLDvJ0JVbE5VDvVooeMEgwZqOuw5i+lAJxe+BQ3xzf/kQBC653LwgFbpmqtfzyAnHTw5vLiSgkVvDvMeC5LldvQF2b68Zod9/siq3eVYlGd/Pydz8gEioPfmJgEAAA==" + } + }, + { + "ID": "b84a64376d6e8840", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0012?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:49 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "36f9de46847c78f2", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "273" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMTMifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:35:49 GMT" + ], + "Etag": [ + "auan5KHKNRTv/BJ3TG/aEg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42QwW6CQBCG32V7re4CBYTEQ02ItVoPlJ6axqww4lZgKbvaEuO7d6Bak9o2nCYz8/8z38yebESREJ8sRfq2haq+0nyZAbkmoHmKdb7lhT29m87DaEdH91Y0pjxIh0NUiMan1jLL6pwXvQRy2dOgtJ9wzRXohckMz2DmYOE4HnNsjzHPwrBgjBn9ds8/EsPCFQqy1UwUG1y01rpUPqUn0H4qZZoBL4XqxzL/rtOdSctKvkKsFf2Fjh7pFO2CSVtMRTvRtqIQVlBBEQPx9+QIMvnjU+g5QrSKLkCnNa2hA9UBnxivIecNzkpAlijiP+9JwXMk/Ao4si6b7DEKJ/Mxes79ba7O/ck8CsZBSA4vOBZboxqvwDojbTqTRRpB9bMcyvdTFlfAtZBFJNrphu2a5sB1bzzbah4IH6WoLgUDi7l4OwoyrvSDTAQeklzMcEx2Ro1uR7Ogcci4HYilp0dy+AT9/pl38AIAAA==" + } + }, + { + "ID": "4f4f73da0245f272", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/upload/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false\u0026uploadType=multipart", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "multipart/related", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7ImxhYmVscyI6eyJ0ZXN0IjoiZ28ifSwibG9hZCI6eyJkZXN0aW5hdGlvblRhYmxlIjp7ImRhdGFzZXRJZCI6ImRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QiLCJ0YWJsZUlkIjoidGFibGVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAxMyJ9LCJ3cml0ZURpc3Bvc2l0aW9uIjoiV1JJVEVfVFJVTkNBVEUifX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6ImJhZG5zMmE2Ujk0cU1EcUdGeFJTa0JNRHIzdyIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K", + "YSwwCmIsMQpjLDIK" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "no-cache, no-store, max-age=0, must-revalidate" + ], + "Content-Length": [ + "902" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:01 GMT" + ], + "Etag": [ + "\"CRkpyt4RXWzE4lvoHDbioIbWdUA/qFUD9S14fSBWTBqL6jZlkwdcMkM\"" + ], + "Expires": [ + "Mon, 01 Jan 1990 00:00:00 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "UploadServer" + ], + "Vary": [ + "Origin", + "X-Origin" + ], + "X-Guploader-Uploadid": [ + "AEnB2Uq2LpGScI81hWG_bxudjNkicrHFEpIvFlhk4739YxsirO_YWbC-cKOy2jllCYtPgT03q5Jtt8ud_dSchAdpB5Ib8audYg" + ] + }, + "Body": "eyJraW5kIjoiYmlncXVlcnkjam9iIiwiZXRhZyI6IlwiQ1JrcHl0NFJYV3pFNGx2b0hEYmlvSWJXZFVBL3FGVUQ5UzE0ZlNCV1RCcUw2alpsa3dkY01rTVwiIiwiaWQiOiJzaG9sbHltYW4tZGVtby10ZXN0OlVTLmJhZG5zMmE2Ujk0cU1EcUdGeFJTa0JNRHIzdyIsInNlbGZMaW5rIjoiaHR0cHM6Ly9iaWdxdWVyeS5nb29nbGVhcGlzLmNvbS9iaWdxdWVyeS92Mi9wcm9qZWN0cy9zaG9sbHltYW4tZGVtby10ZXN0L2pvYnMvYmFkbnMyYTZSOTRxTURxR0Z4UlNrQk1EcjN3P2xvY2F0aW9uPVVTIiwiam9iUmVmZXJlbmNlIjp7InByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QiLCJqb2JJZCI6ImJhZG5zMmE2Ujk0cU1EcUdGeFJTa0JNRHIzdyIsImxvY2F0aW9uIjoiVVMifSwiY29uZmlndXJhdGlvbiI6eyJqb2JUeXBlIjoiTE9BRCIsImxvYWQiOnsic2NoZW1hIjp7ImZpZWxkcyI6W3sibmFtZSI6Im5hbWUiLCJ0eXBlIjoiU1RSSU5HIn0seyJuYW1lIjoibnVtcyIsInR5cGUiOiJJTlRFR0VSIn1dfSwiZGVzdGluYXRpb25UYWJsZSI6eyJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwiZGF0YXNldElkIjoiZGF0YXNldF8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDAxIiwidGFibGVJZCI6InRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMTMifSwid3JpdGVEaXNwb3NpdGlvbiI6IldSSVRFX1RSVU5DQVRFIn0sImxhYmVscyI6eyJ0ZXN0IjoiZ28ifX0sInN0YXR1cyI6eyJzdGF0ZSI6IlJVTk5JTkcifSwic3RhdGlzdGljcyI6eyJjcmVhdGlvblRpbWUiOiIxNTcyMjg3NzYwNDgzIiwic3RhcnRUaW1lIjoiMTU3MjI4Nzc2MTA2NSJ9LCJ1c2VyX2VtYWlsIjoidGVzdC1yb2JvdEBzaG9sbHltYW4tZGVtby10ZXN0LmlhbS5nc2VydmljZWFjY291bnQuY29tIn0=" + } + }, + { + "ID": "03535bf9d1b44e09", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/badns2a6R94qMDqGFxRSkBMDr3w?alt=json\u0026fields=status%2Cstatistics\u0026location=US\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:01 GMT" + ], + "Etag": [ + "9fMO76bx2CXuFfOb8KaraA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKi5JLMksLslMLlayqlZKLkoFcvPzQjJzU5WslAxNzY2MLMzNzQxMLIyVdECKi0rQ5QwNzEyVasGSJaVgU0AskJKgUD8/Tz93pdpaAIxHndZoAAAA" + } + }, + { + "ID": "3b6f714709e14694", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/badns2a6R94qMDqGFxRSkBMDr3w?alt=json\u0026fields=status%2Cstatistics\u0026location=US\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:02 GMT" + ], + "Etag": [ + "9fMO76bx2CXuFfOb8KaraA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKi5JLMksLslMLlayqlZKLkoFcvPzQjJzU5WslAxNzY2MLMzNzQxMLIyVdECKi0rQ5QwNzEyVasGSJaVgU0AskJKgUD8/Tz93pdpaAIxHndZoAAAA" + } + }, + { + "ID": "2ab07b4504675cc1", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/badns2a6R94qMDqGFxRSkBMDr3w?alt=json\u0026fields=status%2Cstatistics\u0026location=US\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:03 GMT" + ], + "Etag": [ + "sXLavZRpATxDVKZU6SI8Ow==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/22QzWrDMBCE32XPDthybAcfQ1rIIQm46an0oFrbIlAkI60TitG7R+vS0IbcpG9m9m+CQJJ0IN0HaCfoPaavs0d9QmihqBohVk1T58tVCRmbPd1rRV5XSUOr7hUhymVSencaDHLZjotDW2RgnFTcUNthpGdtMHAwmW9g/U0/UCTqRkq4cxcm5Q38ekpGH1J12DuvmOQQMyBH0rwYRztGVVUnl8eA/jwv+RrkV5r3bQIr58EVfsrR0GLQAxptkTf+m47v//Jb9SgT5zPRON+TX1x5c9g/QYxXUiozhG8BAAA=" + } + }, + { + "ID": "90f0dd8e1fd62b02", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0013/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:03 GMT" + ], + "Etag": [ + "3lOtnbfXMYJfQqviTcwcww==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8ob5/iX5CWlRfhGeqUFFpZlhiSXJ5eX29oCVZTklyTmBOWXF4OUAflFYGZ0tVIamCwDCicq1epAWAZKtbEgNkIuCS5niCGXDJczAsnF1gIAKKQr4bAAAAA=" + } + }, + { + "ID": "8f8e046c42df9da4", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0013?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:03 GMT" + ], + "Etag": [ + "ghJrG2Y2u9RwCjWPqd/mVw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKk7OSM1NVLKqVkrLTM1JKVayiq5WykvMTVWyglA6SiWVBSBecEiQp5+7Uq0OQr40txgh7+kX4uruGqRUG1tbCwCcp8mLWAAAAA==" + } + }, + { + "ID": "14885471cea2e09e", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0013?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:03 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "546ac038ad89c85a", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "366" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im1vZGUiOiJSRVBFQVRFRCIsIm5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifSx7ImZpZWxkcyI6W3sibmFtZSI6ImJvb2wiLCJ0eXBlIjoiQk9PTEVBTiJ9XSwibmFtZSI6InJlYyIsInR5cGUiOiJSRUNPUkQifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMTQifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:03 GMT" + ], + "Etag": [ + "Vrc2NOHDTr0sOMJMkvk0gg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Q3U7CQBCF32W9VXZblJYmXoA0igFqavXGGLK0Q1lpu3V3/SGEd3dawRpRQ/ZiM2fOmfkya7IURUI8MhPp8wuo1ZHhswzIMQHDU9TvVWxPgqtBpJgOxtfj5euSpen5OTpEldMLmWWrnBcnCeTyxIA2XsIN12CmNrO6FrPdaafTZZ2zLmPdNn5TxpjVqvf8Y7FOcYWGbD4SxRIXLYwptUfpDrSVSplmwEuhW7HMv3T6atNSySeIjaa/0NEtnaaHYNIaU9ODaGtTCHNQUMRAvDXZggz/uBRmthC14xCg3Zo6cADVBo8YLyDnFc5cQJZo4j2sScFzJPz8cOSqrKrbKBxOLjHT9F9y3fSHk8i/9EMUcplUQujf+L3IH3yPKIibROhfBOEA6/3VMymzxtgPgpHfm5DNI77jam9/hSfCDiN1OZJFGoH6KYfybVfFCrgRsohEPd86c2zbdZxO23GrNryXQu0b3DZz8LBoyLg2Y5kIRE32ZrhWu4GNev2RXyVkXA9E6e6WbD4AcqnzoE0DAAA=" + } + }, + { + "ID": "83ad23a4ed32277c", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "429" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiSU5TRVJUIGRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMS50YWJsZV8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDE0IChuYW1lLCBudW1zLCByZWMpXG5cdFx0XHRcdFx0XHRWQUxVRVMgKCdhJywgWzBdLCBTVFJVQ1RcdTAwM2NCT09MXHUwMDNlKFRSVUUpKSxcblx0XHRcdFx0XHRcdFx0ICAgKCdiJywgWzFdLCBTVFJVQ1RcdTAwM2NCT09MXHUwMDNlKEZBTFNFKSksXG5cdFx0XHRcdFx0XHRcdCAgICgnYycsIFsyXSwgU1RSVUNUXHUwMDNjQk9PTFx1MDAzZShUUlVFKSkiLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6ImIxYjBDSEdhUEVuU0hKb1d5eDRHdzd0Z0p3UiIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:04 GMT" + ], + "Etag": [ + "4sqmJZkdp2ClS3/MPtebqQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41Ta2/aMBT9K5H3oSCFvKDQIKGNoYyCKG2T0GkbE3KMSV0SG2KnHar633eTUPZQaat8iHN9zr3HxyePaM34EnVRxOJtTrPdhzsRIR1RhWOotuQ2HX9fLzfOIAma5sWVotH2utcDBCtY8lYkyS7FvLGkqWgoKlV3FhiRHVmD8yG+8nhwPhZfd79aw4eOiscPPjAlTVYTxtfAv1VqI7um+TzdiIWIE4o3TBpEpIe6ee+Ym0zcUaKk+cJQE1RL85WxHxNBsGKC92YBSMglzRY0xSwBEUWDRiYioT690NpgODViwN8zQjEhIueq0AZdiOArFudZ2Rh1H1Gp9a8FGk0Dzw+1JVZYUrVwLNu1Leds0W67VvvUtSy3Ca+FZVm2oXCU0FcgdkurcZxSXeN5KnUto6Q+53P157npT2ZeoNVO8Imu/bB+6loQ+rNBOM8tq0k+X15OyhWtQdWr1/V/2XOlacCNCq59nPulPwmOkklBdt4aDNYtwVnGS+PC4tyFafsLHh0JVsGqfCwR7/EUKKWrJeFtf9GTDiKYyJiqLi/0/P4gHN14VWQmNMZkF2whNCucSApwyF2424B8dD3z/G+oKvl0RTPKyTuPBYxy9/Xf5jnBAIQMwyCp4BtsJLIYQzJa2cnSQo592nGcs06n3XQ7LirBmfp/r2W3C48OsS060pRytT9TFV/0tB+WywMINv3ZdDqaDmH3N7/exFxFBAAA" + } + }, + { + "ID": "2528e3efbf7c282f", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/b1b0CHGaPEnSHJoWyx4Gw7tgJwR?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:06 GMT" + ], + "Etag": [ + "84LSdI+69VCnmMaBR4lTIg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/2VQy07DMBD8l+VIKhVR8YjUQ5taaarSFifAAXFwkk2a4keIHZWo6r+zKYcgIR/WOzuzHs8JPiudgw9pVX612HRXJbrn/sLRttJZKrXRFsEDdKIk5sNkHefR9d3ja6DVk5jziUyicjolhs32qAT4JygqlLkF//0EWigk2aV44Lq67+KER5sQzt4wb5Ud5tEmYSHjBCiT9wBnOzZL2OKvpMFsUHAWbPmC+v9Pp8bIgTjfbtdstoHzBx0PDiblWGCDOsPeed2YA2Yu6kOxeyNlp4Qe5ajMyKF1cFFcpulNOg6WodgxHS9X5q37noTHe1eujr1vaTLhKqOJ+BKTa3DGCTnvaMmuMRlai/2S8e/CwKhaoiMHrmnRg0xQlMvKgV8IaQmgeBZKzoqCvGHOzZF+CLdw/gF37PJYwQEAAA==" + } + }, + { + "ID": "806bd4526b37c2f7", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/b1b0CHGaPEnSHJoWyx4Gw7tgJwR?alt=json\u0026fields=status%2Cstatistics\u0026location=US\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:06 GMT" + ], + "Etag": [ + "7JIdIMolJrIzDrLmaj1ftw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/7VXf2+jNhj+KhGqdJvUq/wDA0baH7k206otl4pQnabtFLnwpmUjkGHnelXV7z7bQEMISfrHVZXeGr+/7cePnWdHKqEyqbJEOuGzk1SgP8sizlbghA5mPiGB73uU+9w5N8aV6utc7GGtgyLta5iPXa1RpRL5pycF8qYqE5ASUm2FtOa/DVRPJq8d3OSicMK/np1C2DhzhMLRdbHeKG2atT62hqncqYD4QV1Bf56byh5FpiLT1vjbvROiC4Q8l1PWkbw2mkpr4ew4TcX3E07Wwjrp1Us7meqJNirqGtRRW4M6gjFIypXuF3bKxdwNENvKV6s2Mu05tiUfcawzGsfHKjuZz9p0s22dDudqnLaZ5MNmucxhtlG6BosHreDDmvk6y/NXnFSQlFUqI71YuzNfdA4FRZNgLSqhvXKLGdnsiWk5BwXpzZDWwH9jPi5n05s/JvHEzsFaWiD+mxVpo7utVZu7VuucYTQKfxlNx79PFvM4ur2Mfzoj7Hx0Rtyfna8v56fcqXX/ID5oxRnF5mMcReM//94gRJOLiws7AKslRovfEtWto97ZqO7RqG4T1QypGaK3JGB1gsQmYEcTsIGyv0TXQytpls0KbAQxwuxoPBstFnqP7gGhRWnhoaPZeK8kgcPRZSlykAm0PIEP8AS1Qfd5wqXGIzPAmJtktiq9GvvcgYOAYuy9SrLLHIQPUAfBLgkMFzbS3yUOSt+NOQjjvtuR3h51uAeogwWui9lW7lEHH6IOTL2dP9ajDoKHuINQ6nteR/a5w/uB5EHfTB4MHWUPht5KH9FkfNVD/K/RbHoa2SQc1V21uCYHcO26fBDXeuf2cY33cY179x9z92CMe7edNXkf1PYuWsL3UIv7ri1sj7k2haMh4Po88BEmrfR4D7iYDN56h92aZOTgvYfeEbk/6NobwO1hpt5BNN4i+gTznyB90j0aGragX6orobsafE5qHeRZAbYJyMVaq+yJ8DBv36HzvKxPD8XEHKe1PjVZcX9bZEp2MGmXrp1kxlAkKvsGWzvTWTcHZuQdknxtIupdVJl5me83ffB1vdV86qLqTn/oYuIMKnusBytORPIAv2XKCZcil2CQt4QKigTSWNzlUANlXZX/QKKuTWj5UOb500oUH1NYlR91VkNbqVBCQm3RjBdEPxYxIsHC8zjyGEeIU/1vgRAy2FQmvnWwoyPm+teFWaBis7pa5ePlUpcCaVQ+yvbBqVEOKyhU/LQ2jHr9eT6JYr1zQz2/bE/Fc+2pNVezzxPn5eV/zT2XOycNAAA=" + } + }, + { + "ID": "706bb8baeeddb223", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0014/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:06 GMT" + ], + "Etag": [ + "7AnLO5LPfaExsuI+fa5vAA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qbO+b5+Jv6BKQlulYUl3pqpyWaljk62toCVZTklyTmBOWXFwOVGQP5RWBmdLVSGpgsA5muVKsDZkH5hkq1sVARZGVpiTnFqSApiCxCIhFNvwF2/SVFpVi1J6NpNyKoPbYWAP2nsZEaAQAA" + } + }, + { + "ID": "a3d8e2bfa9bc4202", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0014?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:06 GMT" + ], + "Etag": [ + "Vrc2NOHDTr0sOMJMkvk0gg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKk7OSM1NVLKqVkrLTM1JKVayiq5WykvMTVWyglA6SiWVBSBecEiQp5+7Uq0OQr40txgh7+kX4uruGgQUyM1PAQkEuQa4Ooa4uiBrKUpNRugIcnX2D3IB8jGtTsrPz0EodPL393F19FOqjQXCWgCN1fK3tQAAAA==" + } + }, + { + "ID": "1c5ed291f4493301", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0014?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:06 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "253a4156bd4595e5", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "327" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoiZCIsInR5cGUiOiJEQVRFIn0seyJuYW1lIjoidCIsInR5cGUiOiJUSU1FIn0seyJuYW1lIjoiZHQiLCJ0eXBlIjoiREFURVRJTUUifSx7Im5hbWUiOiJ0cyIsInR5cGUiOiJUSU1FU1RBTVAifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMTUifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:06 GMT" + ], + "Etag": [ + "iCEGhKL92T60QIOimIgP3w==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SUW+CMBSF/0v3Om2BCULig25mIcPMKXtaFlPhCp1AGa1zxvjfVxp1U7eFJ9p7z7nn6w1btGRFjDw0Z8n7CqrNlaTzDNA1AkkTVWe3w/v0IXDN0CZP/iPL/WRsrXs9pWC1T6Q8yzY5LVox5LwlQUgvppIKkDOTGK5BzO7Mtl1id1xCXEt9ZoQQo61z/pEYHRUhIFsErFiqoFTKUngYH0DbCedJBrRkoh3x/FjHHyYuK/4GkRT4Fzq8pxO4CSbWmAI3otWiCSyggiIC5G3RHsT/Y1PKs4fQiiZAhxhtaEC1U0uMUshpjbNgkMUCeS9bVNAc6sh63qasj3f9cKjkx5b8boX+6KQVy1PbeV+KU+807I/GaPeqYIpVPtiot6sOQfoa8CIJoTovT/j6cIsqoJLxImR6utFxTLPrOLZ9Y7n1n/pZsupS0LWIozamBBkVcsRjpp4fX85wnB+w/UEwrB080gNV6XmKdl9gDiOeJgMAAA==" + } + }, + { + "ID": "f404fc1099480976", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0015/insertAll?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "164" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJyb3dzIjpbeyJpbnNlcnRJZCI6IjBucDBrTVZXVktNd3dEc3Npa2pFNHB0WEl5ZyIsImpzb24iOnsiZCI6IjIwMTYtMDMtMjAiLCJkdCI6IjIwMTYtMDMtMjAgMTI6MzA6MDAuMDAwMDA2IiwidCI6IjEyOjMwOjAwLjAwMDAwNiIsInRzIjoiMjAxNi0wMy0yMFQxNTowNDowNVoifX1dfQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:06 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTMK04tKnHMyQlKLS7IB3KUagGmFzWCLgAAAA==" + } + }, + { + "ID": "50aee77ed10305fb", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0015/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:06 GMT" + ], + "Etag": [ + "4mwRyGcPntjsq9s9nnsVfw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qb5JYHVbonB+SVZBUXWhZb5uUVh6WV29oCVZTklyTmBOWXFwOVGSjVAgDtIhrCUwAAAA==" + } + }, + { + "ID": "474e6ef7132e0375", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0015?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:06 GMT" + ], + "Etag": [ + "iCEGhKL92T60QIOimIgP3w==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKk7OSM1NVLKqVkrLTM1JKVayiq5WykvMTVWyUkpR0lEqqSwAMV0cQ1yVanXgUiUIqRBPXxSplBJUbejyJcWoeoNDHH0DlGpja2sB5wvkN44AAAA=" + } + }, + { + "ID": "8bc7f78f38dae130", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0015/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:08 GMT" + ], + "Etag": [ + "JlGmsv2RwTxUb/iBrQsr4g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8p75bjnFpcZBZWHVIQm6Wc6FQUWF5mk29oCVZTklyTmBOWXFwOVGQD5RWBmdLVSGpgsAwobGRia6RoY6xoZKNXqQIQMjayMDawMDPQMQMAMLo5QGoJLiaGJqYWJhZmRiake0LxYIAQA3yIimscAAAA=" + } + }, + { + "ID": "c44869640f24639a", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0015?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:07 GMT" + ], + "Etag": [ + "iCEGhKL92T60QIOimIgP3w==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKk7OSM1NVLKqVkrLTM1JKVayiq5WykvMTVWyUkpR0lEqqSwAMV0cQ1yVanXgUiUIqRBPXxSplBJUbejyJcWoeoNDHH0DlGpja2sB5wvkN44AAAA=" + } + }, + { + "ID": "20fd213e7772ef33", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "338" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiSU5TRVJUIGRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMS50YWJsZV8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDE1IChkLCB0LCBkdCwgdHMpIFZBTFVFUyAoJzIwMTYtMDMtMjAnLCAnMTI6MzA6MDAuMDAwMDA2JywgJzIwMTYtMDMtMjAgMTI6MzA6MDAuMDAwMDA2JywgJzIwMTYtMDMtMjAgMTU6MDQ6MDUnKSIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiMzBFdVRPVzIyQ2Z3NkRLWHRUVzJ5Q1NTZ09EIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:08 GMT" + ], + "Etag": [ + "OdpcQIiVoACdnVyK8dgnBw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SYW/aMBD9K5H3gVaCxAlNgEhoYzSaUBGoJNDtEzKOSd0mNo2dVlHV/75zQtmkdW0joYS79+7eu7tndM9FikK049lDxcr6y53coS5immQQXaYHej3jGzmZpmJTXw3TTHx/Go8BwQ1L3co8rwsieikrZE8zpcN1bPdxVCXLG8+b7p+Cy6ufOrnx6mkcZ8tLYCqW7+dc3AP/VuuDCh3ntbudSZnljBy4sqksTnHn0XMOpbxjVCvnjaYOqFbOO22/5pISzaUYr2OQUClWbllBeA4iTIFeKXdSf3ujtM1JYWeAf+SUEUplJbTRBlWoFHueVWVTGIXPqNH61weaLeJolVgp0UQxvfWwO3KxN9wGwQgH/gjjUR9eW4yxa2uyy9k7ENe3ztKupbtWCj+tzq3NZL6OYuusA6Sgh/s9D3e6Vsf1wj4OMbaxeQIT+gOwPsj6Ib4Isd85B38p2OeicZcYccbZcQuz/2zfsFqzDeIzxoHSWG8IHw8BvXRBBJcl1+2Ek2g1mSazTdTudc4yQuv4ATa7J7liAIfjSOoDyEfX62j1C7WhFduzkgn6SVvAaLLv3/brmQEQDg0aKQ3/YYxUmTa0ZO04eWHkuP7A84aDQTD0+j5qwKX+J3eBB5A73ZapyAom9NFTe2Po5disUicQJFfrxWK2+AHZ37Zq8xDqAwAA" + } + }, + { + "ID": "a6889bef635c5251", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/30EuTOW22Cfw6DKXtTW2yCSSgOD?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:09 GMT" + ], + "Etag": [ + "w64RN8LDGjiWcFsF5tQ1Lw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/12Q3U7CQBCF32W8LQmgEtOEC2xBiSDQ1mBivFi201Lcn9qdpmlI392pJhq82sl+55w9O2f4KEwKPhyK/LPGqr3KkXb9EKGrFTk+SmscggdIImdlM7mJnu9W4cOp2MuFW9zSbrRqplNWOHlELcA/Q1agSh34b2cwQiPbUubUlv0YzpI5dN4voj+ULNcXKKVL239O7tIbJ7P1Frr3zoOTPUSYYYVGYl+prOwJJS3737qjVarVwgxS1HZA6Pp32PFNr4fzOtnsx+Mgaybh0ysl+3EbxHG+CVmlrBRUWMPCl5i7AFkS6r7lkG1lJTqHfcjwJzCwulRI3ICqGj2Qgnf0WBD4mVCOL0ytQ61mWcbdMI1sw1uDEXRfNqSr6JoBAAA=" + } + }, + { + "ID": "047e5d13c3a23f56", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/30EuTOW22Cfw6DKXtTW2yCSSgOD?alt=json\u0026fields=status%2Cstatistics\u0026location=US\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:10 GMT" + ], + "Etag": [ + "eeqHgcTRL3dBHglfyCQYdA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/81W227bOBD9FUPIY1KQlKgbsA9p42ID1HVgu+jDojAYaZyoK0tekW42CPLvnaEk25LltFgkwBoQLHLmzIU8h+KTo40ymTZZop34yUkqwGFZLLI1OLHDZSBEGAR+KFzpnJNzZY5sHgvQBkXat0QhJ5QpjcrfPxrQN1WZgNaQohdDyz9bqB4pr325yVXhxH89OYWyceaMxaPrYrM16Jq1GFvDRHcqkNKtK+jNB4LmH1RmZtTW5Y87J2bvGAt9wfww8qXkgfC4G9ROE209HH4Imqh/fwGyHhaEq5ceZKon2qjs0KGO2jrUEcghKdfYL3TKdT0vFIHc59+5taG9HrKt+SVknZOQD1XWzch3LUYuxyCy8dmtT9hBNdlOo5oFIpS+365WOUy3BquwnECLiAYt802W5zuuVJCUVapnuGDdma+YxEDRbMFGVQpRueWNbiap6RwMpDdDVpLAlgYfppObT+PF2M7BRlsy/p0VaWP7Upu2t63VOeOj+I8R98OQCjoTdiRil8WMKIM/n+ZdmheM+xfMvRBsyMWzUE+GHu6WJ2sL/Zxvz+e7Kr7OrgdqOB+dCXxcfGg/F9PRcolN3QFjy9KuJwaxYXbK4vHoQ6ly0Am04uInxBV4w+KKJCEyWsk5JbPFYLmvJbgOmYjHXb2J/6He/A42OlJbMKg2sW+RgKKvNjmkNo911eb21OYFr6g2/ttqk+xFuUn2u3qbjS+vekT/OJtOfs1sEY/qrlpeixO8DmU0zOtAHPOaH/Oa9zjM/SMW894nwrq8CWk57wosPOIsd4dJ+xKyKdsdom3QFaffp23oD9H2NKrOZVGDtGVvyNpX+kYMcPbocO6QmO9J/N/PeHGoBGQp4G1urbCRwSsX2iDPCrB1Q642aLIC8O2JYe9q87ysxeKKkLSwQZFkxd2XIjP6gIJ2tdpJSY4qMdkP2PtRV4c5kF1vkORbExE3zmR0ez1u+uQNdG95f0ikWxxgMYsMKqviwYoTldzDn5lx4pXKNRDZVlBBkUC6ULc51NzYVOV3SMw1hdb3ZZ4/rlVxkcK6vMCsdEqlyigNtUfzvsTLQsSZCJe+HzFfRoxFLv4t8UJAdDQU3wLs2wvu+PWgBSq266t1frlaYSmQzsqHQ2LDGgqzeNzQAXr9eT6eLXDnhnp+3gvhqUai5Wr6eew8P/8Etxb3cUsMAAA=" + } + }, + { + "ID": "cecec5d4e209f186", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0015/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:10 GMT" + ], + "Etag": [ + "oGrIUjPFenpUGe38J5rMvw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8rnuxd5hmYFuKXmFYS6pxpbeJkW+ZaV29oCVZTklyTmBOWXFwOVGQD5RWBmdLVSGpgsAwobGRia6RoY6xoZKNXqQIQMjayMDawMDPQMQMAMLo5QGoJLiaGJqYWJhZmRiake0LxYkDC9rIqtBQB/LmJ8MgEAAA==" + } + }, + { + "ID": "5e34c0a7756e2031", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0015?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:10 GMT" + ], + "Etag": [ + "iCEGhKL92T60QIOimIgP3w==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKk7OSM1NVLKqVkrLTM1JKVayiq5WykvMTVWyUkpR0lEqqSwAMV0cQ1yVanXgUiUIqRBPXxSplBJUbejyJcWoeoNDHH0DlGpja2sB5wvkN44AAAA=" + } + }, + { + "ID": "548fb773b2fd966e", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0015?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:10 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "680249a39c8c4b7c", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "159" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIDEiLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IndoZXJFeFlobzdSSWFtanZxSTk2cXZKMkdPYSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:10 GMT" + ], + "Etag": [ + "TwBvc51yO4M6eQFf03UeZQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Sb4+aQBDGv0qzfVvln4CYmPaq3IXGehGxzfWNWZYB1wMW2VVrLvfdO4ueadrrpe9g5zfzzDwzT+SR1xkZkZQXuz20p/dbkZIPBBQt8DU5fj4w1zrdD756sLjNTWcFPxbjMRJcZ8mNKMtTReteBpXoKZBqtFr2jxtow58PG+HHEa22h10UeLvDF/vunmKmhDKf8foR8zdKNXJkGC/q/UKIogTacNlnorq+GwfbaFqxBaak8YqogV1L4w3Zj6VgVHFRj1dLbGEvoV1DRXmJTegCvVakQn16pXSf06pfIH/gDChjYl8r3RtWYaLOebFvu8Jk9ES6Xn/7IMtwFk6SdxbCGdbidYcmNC1BY5eRon9YqbOoohLOxDoFsH0vzQLXsgZW7nmuO6SWPwicgAWZO7CZA7bpaI+VluiyaC1qL3AZ862hZdJswFw3TU3fznIPPEz3AjPP7dTx7Zw841AtUAVTLhsh+XkwMonDmyRcR7freRhOwykKHFv+J/U9jhBK4tV8gjQyTcsFYtqIaJ6E8c0kib6FZ/tnUFB2Wu5wATktJaAy7jA5NWgMWazC+IGcn2LIoYWa/adhmNFF3z7Bl2tAEO8BhaTCf1wQk1qm80Avile6Hcv1bXvo+77pOQ7p4Fb9FfM9HbuegK4IFdTqMtP5FMjzRWwvrxAG0bN5NL/D6C8R+8UFkQMAAA==" + } + }, + { + "ID": "6322e94355d8a56f", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/wherExYho7RIamjvqI96qvJ2GOa?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:11 GMT" + ], + "Etag": [ + "BxdpyrM1O05FLog7gj2rLQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3U7CQBCF32W8hQRIlEjChTUVaypIlQtjjFna6Z+7nbI7BZqm7+4UvJo9s9+cOdPBb1ElsIB9kR0atO1NhrwdHhG6RrOTUlPlEEaArDIhvXNSt/Z1upncPoWUzbNyZsPtcimEi3M0ChYdpAXqxMHiq4NKGZSxdPIjBLf1IIL1h7/yI2kYSobGeheGD17oQ//dj6CkfYQpWqxiHNxqSyXGHAxBXU5at0ZV4wQNjRkdw2Xi8nvK0frnz5zmUaBMeTwE93eH48tstVFCaYoVF1QJuHsHWcTESkd0kqQwhX/ttWL6ZilG53AwnVwXPJKpNbIkYtvgCGIl5z4XfNX9HzXb6SFLAQAA" + } + }, + { + "ID": "94f20514082ef2dd", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon695cc71810ad4c55bb072df6e6a17690ff2b372f/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:11 GMT" + ], + "Etag": [ + "GWexNmViIavplSMAEOgtCg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8q7h6dW+OWGZXomlhXkBPs6uvqnlzin29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwvXxgIhACzXrDpuAAAA" + } + }, + { + "ID": "b865fc640bf0c6f5", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "161" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIDEuMyIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoic1M0UmJ3SFIzT2ZMZU8xUVpleGFhZWxxcTgxIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:11 GMT" + ], + "Etag": [ + "zRwl3x/rzBidgYZfBQLmVg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42S226bQBCGX6Xa3tbg5WhbitrEpi2S5cgYp0purGUZyCbAYnYdx4ny7hnAsao2qXoHO98//5yeyb2oUjIhici3O2gOn+9kQr4Q0CzH16doX9iPZvN0IdL8+ia7WM7Lq/zsDAnRqtStLIpDyapBCqUcaFB6sl4ZauVEyf5nZF9mc7ikyxt4ZAyK7XZEUamgyOaiukf9rda1mpjmm7uRS5kXwGqhDC7L07v5YJl1I++Aa2W+Y2pi1Rj42PZrITnTQlZn6xWWsFPQbKBkosAi2gSDRiZSf3sntSFYaeTIPwgOjHO5q3RbG2bhsspEvmu6xGTyTLpaf/sgq2AeTONP1LARTzGbqDo4ZkkBLXhsKvxgmK2KaaagJzYJgOV7STp2KXVo5nmuO2LUd8b2mI9T17G4DdbQZqjTrUWnYpWsKHf5kGejhNEsTXji0BHYnjt0/WRs2WyYpL5neU5GXrCtBpiGmVC1VKJvjUyj4DwONuH3zSIIZsEMDfaN+JP6FYUIxdF6MUUamboRErF2FOEiDqLzaRxeBf0C5pAzflhtcQUZKxSgM24xPtQ4GLJcB9E16Z8iyKCBiv/nwFDRR/95hG/3gCBeBBopjf+4IK5am24G7aJE2ZZDXd+yRr7vU8dzSAc3+q+YNxxj7HQEbUYoodLHnvpjIC9Hs506QRjEmS3CxQ+MvgINTuXUkwMAAA==" + } + }, + { + "ID": "93dd9cfa23fa6c66", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/sS4RbwHR3OfLeO1QZexaaelqq81?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:11 GMT" + ], + "Etag": [ + "71y9+62Z5vwbNLDmhaDsHg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/yWPy26DMBBF/2W6LJFC30XKImlaUQmFhjSbVFVlYHikNgY8KUWIf884rOwjn7lzPcBvWaXgQVzmzQnb/ipH2tpLhOYkyfBR68ogOIAkcjYf3f75+uHmcP/XxZtgrQqxNn6+WLBhkgKVAG+ArESZGvC+BqiEQh7L5j9sUF9beAvC5Sej0qnFzT4IlqvgFcbv0YGjjiPMsMUqQZtVt/qICb3bmqbQUvZKVLMUlZ4RGoLLxPS6u4vizo9uwyzA0N0e8F8IlE3z5LIldSKo1BWL+x3wItIkZKQ77glWuPCq59CPVidoDNrQ+bTgRataInEjak/oQCL4s35JE49n0/piG0kBAAA=" + } + }, + { + "ID": "86cc422f0736f093", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon1c5c0cf8ba1fdbcb418e365057b923a0bd76264f/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:12 GMT" + ], + "Etag": [ + "9yJIpaHjf1+w8g+bCJ9lQg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pbVnp5FiR6ZKUZapdbpGsnOXtZ5gSm29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwnrGSvVxgIhAJVrFwJwAAAA" + } + }, + { + "ID": "6a28edf445146345", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "179" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIENBU1QoMS4zICBBUyBOVU1FUklDKSIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiN2EyeFNUUWo2SWRScDFTT1MzZk9RN3BYbVlYIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:12 GMT" + ], + "Etag": [ + "RYvKFUaeFArqMORStLz+eQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41TWW+bQBD+K9b2pVUbYy5jLEWtZZMK1SEyRxs/WcsykHWAJezarRvlv3fAjlW1adQ3duY75uKR3PM6I1OS8uJhB+3hzVak5AMBRQuMhuv9l6uEwtWsfbi+CSO1/PkeVpeXiOAdS96JsjxUtL7IoBIXCqSaJtHQocaPKF5tx34WNnp0E5n5zcppbqv1LTIllPmS1/fIv1OqkVNNe3YfFkIUJdCGyyET1Tmu7Q2tacUWmJLaC6YaVi21V2w/loJRxUV9mURYwk5Cu4GK8hKL6AQuWpEK9ekF6SGn1bBA/J4zoIyJXa262lCFiTrnxa7thcn0kfS1/vZBIm/pzePBfBbFb/WhORjMokGQXHuhP3+HAhnq87qnxzQtoaOe2vT/Md6ORRWVcERsUgDDGaeZa+u6pefjsW1PqO5YrukyN7Mtg5lgjEyKPNVZ9Cxai5qmLjWobpq27kzS1J6MczsfWc7YclkOlgGZO5roE4c8YaMtUAULLhsh+bFZMg+9Wext/KtN4HkLb4EG31v+J+pb6CMoDpNgjmjENC0XCOuG4wexF87msf/VO65kCQVlh+gBl5LTUgI6417jQ4ODIavEC9fkGAohhxZq9p8DQ0afff0sny8EgXgjaCQVvnFBTHY2/Qy6RfGqK0e3HcOYOI5jmLpOenCr/spZpou581l0ilBBrU49Hc+DPJ3MdvIM6v69JAj84DNmfwFzGSZ4pQMAAA==" + } + }, + { + "ID": "efbbf8c52e45de87", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/7a2xSTQj6IdRp1SOS3fOQ7pXmYX?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:12 GMT" + ], + "Etag": [ + "9vJLN2n6Q5FhEy8pQ/afGw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PW0/CQBCF/8v4ChEwgjbhQUjVmgq2lQRjjFna6QX3ZncQm6b/3Sn4NHtmvzlzpoWvSmfgwa4qvg9YNxcFUtQ/YnQHSY6LNdohDABJFEze/jyFq4meRtf3pd/c2OhS5A/H+ZwJl5aoBHgt5BXKzIH33oIWCnksH30yQY3txWrz7MfBkhvKZOdGGN4tQh+6j24Ae7OLMccadYq9m63NHlMK+qCuNFI2SuhhhsoMCR3BaeL0OxOT3+Q12k+DLLbjZJ1c5etoZrfqbcuUNKmgymgGNwnwIjIkZGyOnBTG8K8XDZu+1CZF57A3HZ0XLI2yEokTUX3AAaSCz32s6Ky7P1XeRQlLAQAA" + } + }, + { + "ID": "19af92fd937f8244", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonab9a2a1335178bb586f5f047649cfe42ed908187/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:12 GMT" + ], + "Etag": [ + "hvLBYqVtCaXte/5R5DSPIQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pnlPk4RRaGlTgnRpSk6psGmboEB3gG2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwnrGSvVxgIhAFga5mdwAAAA" + } + }, + { + "ID": "c354e0039c93a7bf", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "172" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIE5VTUVSSUMgJzAuMjUnIiwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJYQkdVNHh6NExxUzhaNkRKSFpxalg5OFRNaFYiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:13 GMT" + ], + "Etag": [ + "436CKvzFMjVpfVToxL2c8g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SXXOaQBT9K5ntQ16qCIKAM06bKklp1Zki2DQvzrJccA2wyK42JpP/3gsap5NJM31hlnvPuefcjydyz8uEDEnMs+0O6sOHjYjJRwKKZhg1+4Px9/3j9WyzrNJlKB6mBnOy0QgRvGHJtcjzQ0HLTgKF6CiQahgturdfbiLz4dGcbhfO3WDy7evddnPrOuFsvUSmhDyd8vIe+WulKjnUtBf1biZElgOtuOwyUZzj2t7QqlpsgCmpvSGqoWupvSP7KReMKi7KUbRACzsJ9QoKynM00RTo1CIW6vMbpbucFt0M8XvOgDImdqVqvGEVJsqUZ7u6LUyGT6T1+teDLLypNw4v5tHMC/zxxWWva1iXyEywMC9bXkjjHBrOqT//H3NtWFRRCUfEKgYw7EGcuJaum3o6GFiWQ3XbdPsucxPLNFgfjF6fIk81Ei2Llmh5kLCEgWM5eqynOrNdI9bthMXU6JtGzzR0140hAfKMHdZAFUy4rITkxy7JOPCuQm/lX6/mnjfxJijwu+avUT8DH0FhEM3HiEZMVXOBsGYq/jz0gqtx6C+94y6mkFF2WGxxGynNJaAyLjQ8VDgY8iPygl/kGAoghRpK9p8DQ0abff8eX04DgXgcKCQV/uOCmGxk2hk0i+JFY0e3bMNwbNvGj0NacK1e5/q9nom58z00FaGAUp16Ot4FeT6J7eQZhEmc2dyf32D2D7vaNkSeAwAA" + } + }, + { + "ID": "fe0ee3019698b88e", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/XBGU4xz4LqS8Z6DJHZqjX98TMhV?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:13 GMT" + ], + "Etag": [ + "pmJcnt84JtvgqNpAvB87vQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3U7CQBCF32W8hQQTopWEC4pEIIVIEUIwxizbaSnuT9sdqrXpuzulXs2e2W/OnKnhKzURjOCUJvkVi+ouQdq0jxDdVZHjklnjEHqAJBImM72UhrzhksokX2eT0vcey814zISTZ9QCRjXEKarIwei9BiM08lg8+GSCqqwV691qFi6m3NA26hpBMPGDGTQfTQ8u9hRijAUaia1bVtgLSlq0Qd3ZKlVpYfoRatsndAS3idvvwX/ZDX9+h0G+9Y4Pz8v5Mb8cnry31XnPlLJSUGoNg7st8CKyJFRovzkp3MO/9is2fS2sROewNR10C6ZWZwqJE1FxxR5IwefOU+p08wcuBbyfSwEAAA==" + } + }, + { + "ID": "e0573a6f3db3f701", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonf6dcdce8581b1f1c792b17dcba2342042199bede/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:13 GMT" + ], + "Etag": [ + "A/8NXo6FaEm2YMDaS+G49g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8o76lv4ReSbuSW65hpF+rokBmu7m1im29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwob6BmZKtXGAiEA1xSA7XEAAAA=" + } + }, + { + "ID": "bbebddcca13227b0", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "162" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIFRSVUUiLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6ImVGWkQ3WTQzS1Z1S1J6b0FPaUlaSUpXMGNjWiIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:13 GMT" + ], + "Etag": [ + "jBy7bR963Bg6IV4C/toHFA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42S227aQBCGX6Xa3haMvT5gJNQSMK0bRFVjiMINWq/HzhLbS7zrVDTKu3dsCKraNOqdvfP988/pidyLKiUjkoj8oYH6+H4vE/KBgGY5vu6vjl4S+S69yt1wY08NLb/MJ+MxEqJVqTtZFMeSVb0UStnToPRoverDfDvzbm16vWmuo59y8k2E2/DrzYDzLSoVFNlCVPeov9P6oEaG8eLez6XMC2AHofpclpd349EyDrXcA9fKeMXUwKqV8Ybtx0JypoWsxusVltAoqHdQMlFgEW2CXi0TqT+9krovWNnPkX8UHBjnsql0Wxtm4bLKRN7UXWIyeiJdrb99kFWwCKbxuzhaB8inmE5UHR2zpICWPHcV/mOarYpppuBE7BIAy3OT1HdM0zYz13WcITM926c+91PHtjgFa0AZ6nRr0alYJStqWi71HQo09VNIKfPBTFzbBMfjtp8NbcfN0sxKyDP2VQPTMBPqIJU49UamUTCJg1043y2DYBbM0OBHLf6kbqIQIWx3OUUamUMtJGLtLMJlHESTaRxugtMGFpAzflw94A4yVihAZ1xjfDzgYMj3dRDdktNTBBnUUPH/HBgquujbV/hyEAjiSaCR0viPC+Kqtelm0C5KlG05puNZ1tDzPOoNXNLBtf4rNnQpxi5X0GaEEip97ul0DeT5bNaoC4RBnNkyXH7G6C/YhbGplAMAAA==" + } + }, + { + "ID": "c8c775ce119daee1", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/eFZD7Y43KVuKRzoAOiIZIJW0ccZ?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:14 GMT" + ], + "Etag": [ + "hF5EOg7/+nwCjf5WCDdSug==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PYU/CQAyG/0v9KESMEhISPgwYcbIwHUEixpjj1o3h7Tp3Xchc+O924Kfe23v69m0L37lNYAz7PPupsWpuMuTX7hGjqw07KSVZh9ADZJUJeVgM/Sgb3d3a0+yYDrezebKus8lECKcPWCgYt5DmaBIH448WrCpQxtLBlxDclJ2YRlHoeytpFJR0jdUmDL1p6MP589yDI+1jTLFCq7FzKys6ouagC+oOZExTKNtPsKA+o2O4TFx+cbGbj94fH5Zv9TL+JS/Kg13wvB1ovRPKkFackxVwswZZxMTKxHSSpHAP/3raiOlLRRqdw850cF0wo6I0yJKIqxp7oJWc+5TzVZ//ACZTwtdLAQAA" + } + }, + { + "ID": "895e5593f613b3f7", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon31263953e3d9ded3a9e1b641e57c49f8456fdf2b/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:14 GMT" + ], + "Etag": [ + "Xrf5H8p4GeP/MpXndIN69A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pHFKWZelgUmLinBuj7FkTkpXj6mVk62toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwqXFJWmKtXGAiEA/0a8lXEAAAA=" + } + }, + { + "ID": "71e02ae0792f9ee3", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "163" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUICdBQkMnIiwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJzcGdqMlh3TnRyc0Y4dW9RWndBc2lNSGM1cEYiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:14 GMT" + ], + "Etag": [ + "PqKewwXdN+y9IYGWeDtt1g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42S227aQBCGX6XaXuSiBeMTxkiopWBSK9RqjGmS3qD1euwssb3Guw5CUd69Y0NQ1SZVJS7MzvfPP6cn8sDLhIxJzLNdA/Xh/VbE5CMBRTN8/b67gv3+Ngk+HFz/7vIG5krp2WSCBG9V8l7k+aGgZS+BQvQUSDVer/qyyrbG7T5QtVyMGnH9cz+V/NtXZlcLVErI0yUvH1B/r1Qlx5r24t7PhMhyoBWXfSaK87v2aGhVLbbAlNReMdWwagy8bfspF4wqLsrJeoUlNBLqDRSU51hEm6BXi1ioz6+k7nNa9DPkHzkDyphoStXWhlmYKFOeNXWXmIyfSFfrbx9k5S29WfTuYvpldoGCBPPxssMjGufQoqe2/DfG2aqoohKOxCYGMJxhnLi2rlt6Ohza9ojqjuWaLnMT2zKYCcbApKhTrUWnoqUoB7EzNBOaMhd/4MR6PLQck0KaGjoDOzFSd5TasUmesbEaqII5l5WQ/NgcmYXeNPI2/mITeN7cm6PBvuZ/Ujehj1AUroMZ0shUNReItcPwg8gLp7PI/+EdV7CEjLLDaodLSGkuAZ1xj9GhwsGQ67UX3pHjUwgp1FCy/xwYKo7Rf57hy0UgiDeBRlLhf1wQk61NN4N2Ubxoy9FtxzBGjuNY5sAkHVyrv2KWYWDsfAZtRiigVKeejudAnk9mjTxDGMSZBX5widFfxP0B5pUDAAA=" + } + }, + { + "ID": "8670320015dae37c", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/spgj2XwNtrsF8uoQZwAsiMHc5pF?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:14 GMT" + ], + "Etag": [ + "z4Lg4AtWFTTOlb2ey96Qyw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PYUvDMBCG/8v5dYM5puhgHzaxblCn6zYURSRNr11rmovNlVLL/rtX66fkIc+996aDr9wmMIc4z75rrNqLDHnXXyL0tWEvhyPrEUaArDIxf2ZhNlvyS3A4PJl4iu3t9a5tFgsxvD5hqWDeQZqjSTzM3zuwqkQZSyefYnDretgfos32QbikpOftMQyXq/Aezh/nERQUR5hihVZjH+YqKlDzpu/pT2RMWyo7TrCkMaNn+JsYXl1WTF+bLVc+uKlp99Ysff641lcuEMuQVpyTFfG4B1nExMpE1EhRuIR/XrUS+lyRRu+xD50MC+6odAZZGnFV4wi0kt+ucx74/AsFQBIbSgEAAA==" + } + }, + { + "ID": "fd1727ed20e6bc69", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon0b763dafc9fc9e7b1b6473aeff21ce5d2f98f5b3/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:14 GMT" + ], + "Etag": [ + "BtqUgTOhmUHTXegWr7oUdg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8o7lRSGpof4Z+SGeoREpKaHF5nnh6ak29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwo7Ojkr1cYCIQCAg1BAcAAAAA==" + } + }, + { + "ID": "0265ddba6f22f4c5", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "178" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIENBU1QoJ2ZvbycgQVMgQllURVMpIiwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJpR3l4dGNGd0lkMHRzV2VZbjVKcVZQODBIQXkiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:15 GMT" + ], + "Etag": [ + "2t5a75k26+WA7RHv8u6SrA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41S0W6bQBD8Fev6kFatjTkbA5asltokobKsFnAsP1nHsZCLgXO4c1Iryr93wY5VtWnUN7id2Zmd3SeyFVVKxiQR+f0e6sO7O5mQTwQ0y/GVaovZ1paOPq48O7x+cPajqPYmE0SIhqVuZVEcSlZ1UyhlV4PS42XUE1eHn5pfPgZpX6sVrCvr2/3Nd6d/7R2QqaDI5qLaIv9W650aG8aLei+XMi+A7YTqcVme340HauxqeQdcK+MVUQNdK+MN2c+F5EwLWU2WEVrYK6g3UDJRoImmQbeWidRfXmndE6zs5Yh/EBwY53Jf6cYbduGyykS+r9vGZPxEWq+/fZDIn/vTuDP1ovj9RSblRceLOl/XsR99QH6K7UXVsmOWFNAwT1MG/0i3YTHNFBwRmwSA2qMkdS3THJrZaGRZDjPtoTtwuZtaQ8oHQPsDhjzdSLQsVqFx7qQ0c/qWm4wsCn17OHTMjDrMztKEUZrYnGYumOQZ56yBaZgJtZNKHGcl09D3Yn8TXG4Wvj/zZyjwWIs/UaswQFAcLhdTRCNmVwuJsCabYBH7oTeNgxv/uJE55IwfonvcScYKBaiMa40POwyG/Fj64Zocn0LIoIaK/2dgyGirb1/ly4EgEE8EhZTGf1wQV41Mm0GzKFE2dkzLptSxbXvoDCzSgmv9V821+lg7X0XTEUqo9Gmm43WQ55PYXp1BWMTMFsHiCqu/AI8MWTekAwAA" + } + }, + { + "ID": "35aedafc33d2b22b", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/iGyxtcFwId0tsWeYn5JqVP80HAy?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:15 GMT" + ], + "Etag": [ + "i/lUk1IxYckS0pr2nS/mCg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3WrCQBBG32V6GzEWCkXwwoitllBs0rRIKWXdTOKa/YnZEQ0h796JerV72DPffNtBpWwOU9ip8njCpn0okT6GS4L+pMnzUTvrEQJAEiWbaqyzarK+bGWVhnXzaNOxWZSzGRte7tEImHZQKNS5h+lPB1YY5LEi/GOD2nqAaPu5TBmNywd8z+J4HsVL6H/7AA5ul2CBDVqJQ1bduANKWg81/d5p3RphRzkaNyL0BNeJ66t6bS8kX87rPCT/jVv79Hb82jyHq3nLlnZSkHKWxSwFXkSOhE7cmXvCBO4ctRy6aZxE73EIDW8LFs7UGokbUXPCAKTgz64U3bj/BztM1StJAQAA" + } + }, + { + "ID": "c13f69754efe00f1", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonfc8d2f8059b652e074481f28a7fdba22b7c2f9e1/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:15 GMT" + ], + "Etag": [ + "cjTd1Ashk9AiyCldTUt9Wg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8onZ4WkGDoWZ2RbOmZWOuekhISWWIan29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwpH5VqWKdXGAiEAuXln13EAAAA=" + } + }, + { + "ID": "c89c51b1d5fb9507", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "189" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIFRJTUVTVEFNUCAnMjAxNi0wMy0yMCAxNTowNDowNSciLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6Ijk3M2ZFbFlUWkQ0RFVZMEJkbGpwVXpNNWs1TyIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:15 GMT" + ], + "Etag": [ + "e2IXt3r3ntAXXpTjvmueCw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SW4/SQBT+K2R82Beh12mBhChCNU0WVCgKvpDp9LQ70Ha6nYENbva/e1pYYnTd+NbO+W7n8kj2okzIkMQiuz9AfXqzkzF5S0CzDF/BDtfaqZ1Sj9frKtodiwNMHkYjRIiGpe5knp8KVnYTKGRXg9LD1bI38J00yDfRj6k7XW3MD0m+q1Y/Z3RPPyNTQZ7einKP/DutKzU0jGf3XiZllgOrhOpxWVzfjaNtVLXcAdfKeMHUwNTKeMX2XS4500KWo9USIxwU1FsomMgxRCPQrWUs9fsXpHuCFb0M8UfBgXEuD6VusqEKl2UqskPdCpPhI2mz/vZBlsFtMIk6UTgLltF49qVzY5uW1zWdrm12LDo03aFJb1AqQSdRtkIRi3NoRC4Nh/8YdMNimik4I7YxgO17cTKgluVaqedR2meW7w6cAR8k1LW5A7bpMOTpxqJlsVKWScIdb4Bs6rAU+pxT1zJN1/P8lCW+Y8acO7HleuQJW66BaZgKVUklzm2TySIYR8E2/LidB8E0mKLBQy3+RH1fhAiKFqv5BNGIqWohEdaMKZxHwWI8icJvwXk5t5Axflre43pSlitAZ9xwdKpwMOTrKlhsyPlpASnUUPL/HBgy2urrB/p8KwjEa0EjpfEfF8RVY9POoFmUKJo4FvVtu+/7PnU9Slpwrf+q0b6NteuBNIpQQKkvPZ0PhTxdzA7qCsIizmwezj9h9RdUr3uWrwMAAA==" + } + }, + { + "ID": "95fb4a7629f589e4", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/973fElYTZD4DUY0BdljpUzM5k5O?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:15 GMT" + ], + "Etag": [ + "R2ZZ+4ZhyYKisJ8YTVrrTQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P0U7CQBBF/2V8tCSoEJWEBypNREGhtCatMWZpp7Cw7dbdIaY0/XdnwafZO3vmzp0WDrLKYQQbuf05ommutkgr9wjRHhVZLrWuLIIHSGLLZHibpteDdNckr9K+PCTRhzHRajxmwmY7LAWMWigkqtzC6LOFSpTIY0X/mwlqaiei2SJYR5PFklulzl3rLZ7PJ/48gO6r82CvNyEWaLDK0PnVRu8xo5mLandaqaYUVS/HUvcILcF54vz7eH9XBCqJ0ulgGid9P1f7Oj4thofhO1NKZ4KkrhiM18CLSJNQof7lrHAD/9pv2HRpdIbWojPtXxY86bJWSJyIzBE9yAQf/Czpors/mhapc00BAAA=" + } + }, + { + "ID": "2c9092387bf660e1", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonddc369ee253afe8cc541004667fad730bcc3b146/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:16 GMT" + ], + "Etag": [ + "ZZYu21RieP64P5ZzIka7eg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pHRUWWGhkGZaYGmJkEmEZVeWYnmqem29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwmbmFqYWJgZmZjqGSjVxgIhAFxk/CB5AAAA" + } + }, + { + "ID": "ea2d27a5290eda97", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "224" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIFtUSU1FU1RBTVAgJzIwMTYtMDMtMjAgMTU6MDQ6MDUnLCBUSU1FU1RBTVAgJzIwMTYtMDMtMjAgMTU6MDQ6MDUnXSIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiakVyR3BVWVNHM2JmVzRlTk5Gd1ZCYTc5ZkNRIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:16 GMT" + ], + "Etag": [ + "0Mya8IU2azX5iyMvu0m4Zg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SXW+bQBD8K9b1IS+x+QZjyWpdm0RIMUpsnDStKus4FnIOcIQ7O3Kj/Pcu2ImqNk37BrszO3Oz+0TueZWSEUl4/rCFZv9hIxJySkDRHKv6fE+H4cqkP744fD/fbfXS/pqPx4jgLUveiaLYl7Tqp1CKvgKpRqvlYBM05/XqdnluJdmNDVF09nj9mXp+Nr1CpoQiu+DVPfLvlKrlSNNe1Ae5EHkBtOZywET5Wtd2plY3YgNMSe0NUQ1dS+0d2Y+FYFRxUY1XS7SwldCsoaS8QBPtgH4jEqE+vTF6wGk5yBG/4wwoY2JbqdYbTmGiyni+bbrBZPREOq+/fJBlcBFM4963OJwHy3gyv+ydmLrh9nWrb+o9wxnp9kh3Tk57/wB8R7UUzfCq04ppUkCrc8wk/MsuWhZVVMIBsU4ATM9NUt8xDNvIXNdxhtTwbN/ymZ86tsksMHWLIk+1Eh2LVqJivuNTn7q+5VDb9ayUpZZvJEOa6K5vZqmRALMylpBnTKUBqmDGZS0kPyRDpotgEgfr8GwdBcEsmKHAY8N/R90sQgTFi1U0RTRi6oYLhLVJhlEcLCbTOLwODvu7gJyy/fIBN5jRQgIq4xHE+xqDIVerYHFLDqUFZNBAxf4zMGR03fdv+OWcEIgHhUJS4T8uiMlWpsugXRQvWzuG45nm0PM813Rt0oEb9UfPNgzsvd5QOxFKqNTxTYdbIs9Hsa18BWETM4vC6By7PwGM5RFY0gMAAA==" + } + }, + { + "ID": "e5738af6ffd8d805", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/jErGpUYSG3bfW4eNNFwVBa79fCQ?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:16 GMT" + ], + "Etag": [ + "819MqO5nCRR33cplwA+emA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3U7CQBCF32W8tCQQNEoTLgpW5AIsBTTGGLPdTkvr/pTuNE1DeHem4NXsmf3mzJkT/BUmBR+SIj82WHd3OdKmf8ToGkWOS2WNQ/AASeRMPo8mq+P7o5nH8XgsK9UG96iD6ZQJJw+oBfgnyApUqQP/+wRGaOSxbPjLBHVVL3bLVbjdBauIW9qmfSsOozDYhS9w/jl7UNokxgxrNBJ7v6q2JUpa9lHdwSrVaWEGKWo7IHQE14nrbxnWi2r/tV2Mk+zzAdfr1/ZjJp4m2XzDlLJSUGENg/st8CKyJFRsW84KI/jXs45No9pKdA570+FtwdzqSiFxIqob9EAKPvitoJs+XwA02RmKTQEAAA==" + } + }, + { + "ID": "01aa5a18e5d62863", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonc959a9a6935a4673dcd391b8ab0692fd1bec3fcb/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:16 GMT" + ], + "Etag": [ + "h/p+c3Kb+mBdfNyGpruFnQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pn6BdoJxt7J2nnOqWk+VW6FxSVuuUF2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsg5FKhiamFiYWZkYmpnoGSrU62ARjwRAArOfkwZYAAAA=" + } + }, + { + "ID": "138fc8da4db90b35", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "200" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUICgnaGVsbG8nLCBUSU1FU1RBTVAgJzIwMTYtMDMtMjAgMTU6MDQ6MDUnKSIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiNkpyU1AxcVFuanJnY0lFUU8wU0lGRlp1cHBZIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:17 GMT" + ], + "Etag": [ + "PWv7r46rU9diCHiAfULZwA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SbW+bMBD+K5H3IZvUBEOAhEjVFqV0Y0qzNpBV7ZfImIO6BUxsp1VU9b/vIG01bV01Phnf83J+7h7JnagzMiWpKLY7UPsPtzIlRwQMK/D2/PJ+rFxfrYNMzL+JWb5eXD/Mjo8RIVqWvpFlua9YPcigkgMD2kzX8dD/ruJze3tR36qCR+HFDxpHp6fXu6a5QqaGMl+I+g75N8Y0empZL+7DQsqiBNYIPeSyer237h2rUfIWuNHWG6YWdq2td2w/l5IzI2R9vI6xhZ0GtYGKiRKbaAUGSqbSfHlDeihYNSwQfy84MM7lrjZtb6jCZZ2LYqc6YTJ9JF2vvx1IHC7CedL72L+BspT9o14SnYVxMjs77/UdavsDOho4tGd7U+pOqdf/hKoZmoq600xYWkKr9/z26B+ZtyxmmIYDYpMCOGM/zQLPtl07933PmzB77AajgAeZ5zp8BA4dMeSZ1qJjsVrWaRqkWc4D30td5ud5nrl85OfMm6TUD6g94dTzxpSSJ3y9AmbgROhGanFIgMxX4SwJN9HpZhmGJ+EJGjwo8SfqchUhKFmtl3NEI6ZRQiKsTSxaJuFqNk+in+FhTgsoGN/HW5xUzkoN6IzDTvYNBkMu1uHqihyuVpCDgpr/Z2DI6Krv7+rL2iAQFweNtMF/HBDXrU2XQTsoUbXt2N7YcSZj/OgoIB1Ymb9qju1g7XVXWkWooDbPbzrsDHl6NtvpVxAWMbNltPyK1V+y0B3IugMAAA==" + } + }, + { + "ID": "f1c09fb77760de4c", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/6JrSP1qQnjrgcIEQO0SIFFZuppY?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:17 GMT" + ], + "Etag": [ + "+08gTPak/XohbbDj9b7H3A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/22QyW7CMBCG38U9NqihlbogcWAJJRVLSILURRVynCEkOHawHVUR4t07DgekFvlg/+P/m+1I9rlISY8keXaoQTU3GZiVfYSga240XpUUGohDwNAMnbfucxYHdH/3LndJMi5ekqfpw6DfR4dmOygp6R3JNgeeatL7OhJBS0Bs627QYZrKitAbLcMx6lKmVi/Ws9lgOPMw8p/ctKFN94JHcegvXq/gJ+cvdX+hYn/uRfFgHlwDv/E4pJBJCFtQIBjYMSolC2DGtxvSO8l5U1LRSaGUHQPakJZofx/fVBR0DytRqIz53mrpRv5k8llX1Qe6uGTU5FKgcR1hl8RIQ3kof3BQ0g5m9bDBpIGSDLQGm9Q9FxjJsuJgsCOjanAIo7jnaW7O+vQL00g/EcQBAAA=" + } + }, + { + "ID": "04c67ce3f359af83", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonbb9bdfc965b4a6fffd4c36fa58b069018c055700/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:17 GMT" + ], + "Etag": [ + "DWf2CqKOtHFXTtNDtYnmcQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8q7hKcZORd6+5d4uEWElPi5lETm5SYH2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsU7JCYiplpObk5CvV6kB4hiamFiYWZkYmpnoGSrWxtUAUWwsAdAtlOpUAAAA=" + } + }, + { + "ID": "02d948abc01ca43f", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "199" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIERBVEVUSU1FKFRJTUVTVEFNUCAnMjAxNi0wMy0yMCAxNTowNDowNScpIiwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiI5SlRJMjZZcFRZMktzWWJjTTVJT2Z1SG9mZHoiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:17 GMT" + ], + "Etag": [ + "Yxu09UMtBTazcyaBpBfplA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SW4+TQBT+K834sJrYAlMuhaTRXlDRtmpLNX1qhmFgZxcYlhlWu5v9756h3cboupEHAud8l3O7R9e8SlGAEp7ftKw5vLgSCXqNmCI5RHc/W9PfLtU0Jnf0QKb1NKuLyXgMCK5Z8lIUxaEkVT9lpegrJlWw3Qz8j3GE3V0d7/AnuUvo0ok+Z+0HkaV3wJSsyBa8ugb+pVK1DAzj0X2QC5EXjNRcDqgoz3HjFht1I64YVdJ4wtSAqqXxjO2bQlCiuKjG2w2U0ErW7FlJeAFFaIF+IxKh3j4hPeCkHOSAv+WUEUpFWyldG6hQUWU8b5tOGAX3qKv1tw+0CRfhLO7NJ3EYR8vwpX5t4snyS+8Cm5bbN4d9bPYsJzDtwHQuXoFoCp686iRjkhRMy51aj/4xcs0iikh2ROwTxrDnJqnvWJZtZa7rOCNiebY/9KmfOjamQ4bNIQGe0hYdi1SiMj3fc/EoSz1vRD3Lo9jFJvbdzLJMNyV25pg+SIzQAzTfMKLYnMtaSH4cAJqtQ+h0H73br8JwHs7B4EfD/0R9X0cAitfb1QzQgKkbLgCmBxat4nA9mcXRt/C4pgXLCT1sbmBRGSkkA2fYdXyoYTDo6zZc79AxtGYZa1hF/3NgwOiyz5/q49UAEO4GjKSCf1gQldqmm4FeFC91OZbjYTzy4HEtG3XgRv2V82wXcudT0YqsZJU69XQ8GfRwMmvlGQRJmNkqWr2H7C/rRtVBuQMAAA==" + } + }, + { + "ID": "e5b2b4eacfc94dfc", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/9JTI26YpTY2KsYbcM5IOfuHofdz?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:18 GMT" + ], + "Etag": [ + "hmmfL34hyyt8dewrxChJ9A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PW2+CQBCF/8v0FRNrL6kkPqA1EYu9KD6QpmnWZRDsLkPZIZYS/3sH7dPsmf3mzJkOvooyBR92xf67wbq92iO/9Y81usawk1JR6RA8QFZ7IXNrs+jmNm9bfkjxWP/M8uU4mEyEcDpHq8DvICvQpA789w5KZVHGsuGnENxWvXgM4nkcrubSsZT2nedtFAXTaA6nj5MHB9qtMcMaS429XVXTATWHfVKXkzGtVeUgRUsDRsdwnjj/jpdxOLpPqjgZPblkp1d34UvWLChLf4UypBUXVAq43YAsYmJl1nSUqHAN/3raiulrTRqdw950eFkwI1sZZEnEdYMeaCX3Lgq+6NMfpLToLUwBAAA=" + } + }, + { + "ID": "b5551bcfb73c63ea", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon0797628fd778c717c2620296f1106da4f5099c98/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:18 GMT" + ], + "Etag": [ + "BOqxJjnumc3F2wdr/uajfw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8o7+RdWeGXlleYmG7sZlacU6ZcmZqWV29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwobGRia6RoY6xoZhBiaWhmYWBmYKtXGAiEAdUI0VIAAAAA=" + } + }, + { + "ID": "9aa2747173396412", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "195" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIERBVEUoVElNRVNUQU1QICcyMDE2LTAzLTIwIDE1OjA0OjA1JykiLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6InQ3VlpYdW5kRHdUMVRKNXZ6ZFp6MUQzd1ZvcSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:18 GMT" + ], + "Etag": [ + "WmLkCQFQDSsL77CDjD5qbw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SW2/aMBT+K5X30E0a5IYJQUIbIumUiqIBgW59QY5zkpomMcQGRKv+952EFk1bV+0t8flu5/JEHkSZkD6JRbbdQXX8sJYx+UxAswxfb4vxw2h6NfXnauy6I3/t0218GAwQIWqWupd5fixY2UqgkC0NSvcX87Z2l3c/dmXiHyIruqb7x+Tu0fKdw1JukakgT8eifED+vdYb1TeMV/d2JmWWA9sI1eayOL8be9vYVHINXCvjDVMDUyvjHdsvueRMC1kOFnOMsFNQraBgIscQtUCrkrHUX9+QbgtWtDPE7wUHxrnclbrOhipclqnIdlUjTPpPpMn62weZB+NgFF34wyj4GIU3wTwa3ny/uLRNq9synZZtXli0b3b6Jr38hIIJ+omykYtYnEMt9dJ2+I9x1yymmYITYhUD2G43TjxqWR0r7XYp7THL7XiOx72EdmzugG06DHm6tmhYrJSl68RJ0jOhC7bToVaaupTx1LSAJ6mTdrjVczmlHiXP2HgFTIMv1EYqcWqejGYBdrkKr1aTIPADHw0OlfgTdTsLERTNFpMRohGzqYREWD2scBIFs+EoCpfBaUVjyBg/zre4pJTlCtAZ9xwdNzgYMl0Es5/k9DSDFCoo+X8ODBlN9f0zfb0YBOLNoJHS+I8L4qq2aWZQL0oUdRyLurbdc123Zzs90oAr/VfN8Tysnc+kVoQCSv3S0+lcyPOL2U6dQVjEmU3CyTes/gLAyr4GtQMAAA==" + } + }, + { + "ID": "a3e1a3f5ebde33bd", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/t7VZXundDwT1TJ5vzdZz1D3wVoq?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:18 GMT" + ], + "Etag": [ + "iSWojQNy4KVHxvQuAA6DvA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3W6CQBBG32V6q4mkfwmJF1hMbEtMQbSNTdOsMCp02UF2wCLx3Ttor3ZP9sw333bwk5kUXNhku0ONVXuzQw77S4S21mzlKMlYhAEgq52Y2eKd8nDe3r2uZr9NWHveg99447EYNtljocDtYJuhTi24nx0YVaCMbUffYnBb9uB78VSooLSn+TIIvEkwhfPXeQA5bSLcYoUmwT6qrCjHhJ/7lnZPWreFMsMUCxoyWobLxOWVH1frj9qk/jF24pf75pSuT45/e1zRQSxNieKMjIjLBcgiJlY6oqPUBAf+edJK6FtFCVqLfejouuCJilIjSyOuahxAouSvs4yvfP4DguTA70gBAAA=" + } + }, + { + "ID": "dc2cf4102e358449", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon73bdd80e6e23451ff75acf01ecdf3f4c187c5595/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:18 GMT" + ], + "Etag": [ + "55aLywss8knVv/Jc8SvVMA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qbmib6VJYXF1tk54WV6XslWwSXhfk62toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwobGRia6RoY6xoZKNXGAiEA8IWd+XcAAAA=" + } + }, + { + "ID": "1d1c95863fae2608", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "195" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIFRJTUUoVElNRVNUQU1QICcyMDE2LTAzLTIwIDE1OjA0OjA1JykiLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6ImJQN2hzbXFqaVJ3QTFXRzhBVWlIOUJpTWlQbyIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:19 GMT" + ], + "Etag": [ + "lShrfmYZ9y9u2bJHws32nQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SWU/bQBD+K2j7QCs18RUfGwm1aeKCUYjAcYroS7Rej50NtjfxbogixH/v2AFUtRT1xVrPfMdcj+Re1BkZklQU2x00hw9rmZLPBDQrMFrOV01e3f2kB7qz08uLvXLs+ubsDBGiZamVLMtDxepeBpXsaVB6uJj302t/partWsT7kXV7HowW4oJ+E1fiWiJTQZlPRX2P/JXWGzU0jBf3fiFlUQLbCNXnsnqNGw+2sWnkGrhWxhumBlatjHdsv5SSMy1kfbaYYwk7Bc0SKiZKLKIV6DUylfrrG9J9wap+gfgHwYFxLne1bmtDFS7rXBS7phMmw0fS1frbg8zDaThOTpLoKvzYfubJ6Or65NQ2La9nOj3bPLHcoTkYmu7pJxTM0E/UnVzC0hJaqee2o3+Mu2UxzRQcEcsUwPa9NKOuZQ2s3PNcN2CWP6AO5TRzBzZ3wDYdhjzdWnQsVss6pRY1cxp4yEuzwAJ/AJmXZabpcJpbjh/YGR2wgDxh4w0wDROhNlKJY/NkHIejJFxG35ezMJyEEzTYN+JP1G0cISiJF7MxohGzaYREWDusaJaE8WicRD/C44qmUDB+mG9xSTkrFaAz7jk5bHAw5GYRxnfkGIohhwZq/p8DQ0aXff9MXy4GgXgzaKQ0/uOCuGptuhm0ixJVW47l+rYd+L4fBL5HOnCj/8pRP8Dc65m0ilBBrZ97Op4LeXo226lXECZxZrNodo7ZX0SaCe+1AwAA" + } + }, + { + "ID": "58310ba59c94e020", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/bP7hsmqjiRwA1WG8AUiH9BiMiPo?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:19 GMT" + ], + "Etag": [ + "zjXAzkuT1Ma2p+A3NXouZA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P0U7CQBBF/2V8FBLQB7UJD4shQtISrBCJxpilHdotu53SnYaUhn93Cj7tnuyZO3c7OJgyhQB2Jjs2WLd3GfJ7f4nRN5a9HBWVHmEAyDoT81xs1fnQrMeRfqju1eNyS82XmkzE8EmOTkPQwd6gTT0E3x2U2qGM7Ue/YnBb9bBeRDMhR2lPy00Yqmk4g8vPZQAF7WLcY41lgn1UVVOBCS/6lj4na1uny2GKjoaMnuE6cX3drZ5y746FiU9q/Pn2rDZm/jI1kVmRWJYSzYZKETcfIIuYWNuYTlITxvDP01ZCVzUl6D32oaPbgldylUWWRlw3OIBEy1/nhm98+QNS+JF4SAEAAA==" + } + }, + { + "ID": "c8af0f80e29a40e0", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonb9190f986114bd81e74ed6dd003c9f13782d94a8/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:19 GMT" + ], + "Etag": [ + "Dkkf1RAnz70opW6EE5Vizg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8q7ZGenGQY55lWZG+QXhJu5upqGZVal29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwmbWhmYWBmYKtXGAiEApv30XXUAAAA=" + } + }, + { + "ID": "dd6b02082e1c8063", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "164" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUICgxLCAyKSIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiZ3pKNndJcmJkS2ZveGJ1ZXpGWXlCZlBMYUZoIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:19 GMT" + ], + "Etag": [ + "yu8qsJBhsEZ8IoFXXozS0w==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SXW/aQBD8K9H1pZUSjL8xEmoTMJUThFowbdIXdD7W5hLbZ3znUIjy37tnCKraNOqbfTuzMzu7T+SBlyvSJwnPNg3Uu3f3IiHnBBTN8HXX9Dby+motwx+9SIxvb8V+3t0OBojgmiXXIs93BS0vVlCICwVS9RfzTra/9rZRnaxuUvEzaWA/vttdpV8mdLxGpoQ8nfDyAflrpSrZN4wX9U4mRJYDrbjsMFGc3o1Hy6hqcQ9MSeMVUQNdS+MN2Y+5YFRxUQ4Wc7TQSKiXUFCeownd4KIWiVCfXmnd4bToZIh/5AwoY6IplfaGXZgoU541dduY9J9I6/W3DzIPJ+EwPntvnp9ZH5Cxwoa8bPExTXLQ2ONc0T/y1CyqqIQDYpkAWL6XrALXNB0z9TzX7VHTdwI7YMHKdSxmg9W1KfKUlmhZtBSl6THbcgLX73q+abte13LsrpMGjudSqwfMcv2km6SMPONkNVAFIy4rIflhOjKchZdxuIzGy2kYjsIRCmxr/ifq+yxCUDxbTIeIRkxVc4EwnUY0jcPZ5TCOvoWHHUwgo2w33+AWUppLQGVcZLyrMBjydRHO7sjhaQYp1FCy/wwMGW317Tt8OQkE4lGgkFT4jwtiUsu0GehF8ULbMV3fsnq+7+vASAuu1V81z9G10x3ojlBAqY4zHe6BPB/FGnkCYREzm0bTz1j9Bej2E9mWAwAA" + } + }, + { + "ID": "50f3a6216a74e420", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/gzJ6wIrbdKfoxbuezFYyBfPLaFh?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:19 GMT" + ], + "Etag": [ + "RVzUTXjXFXOM0fcRvj1/aQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42QTU/CQBCG/8t4LRE8eCDhIFgUrXysYDDGkO12Wlq3ndrdioXw350tBxP1YPaw+86+z3wd4C0tIuhDmCbvNVbNWYJ24R4CTa2t4aukwiB4gFYm7BRP+9Vyna3H69lDN1biI+udy8VgwA6jtphL6B8gTlFHBvovByhkjozF3Q07bFM6IfzRTFyzzilyeroKgqth4HPkN7lpQ5veNz6ZLv0bX/zBH72f2MW/sFc+HmQUCoyxwkKhm6KsKENlJ25BZktaN7ksOhHm1LFoLLRE+5vs7y53kyqM7mP6DGvcj5+bYTwP5HjLLk1K2pQKNq4euUewZKUWtOM5oZ3L6WHDSecVKTQGXdLuqcCI8lKj5Y5sVaMHSvKab1N70scvfozYs8MBAAA=" + } + }, + { + "ID": "fd013e77e0381453", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon16c3249570671356024304f9465a28ec257b0bfc/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:20 GMT" + ], + "Etag": [ + "SLqlZudkMQFuOVU9GJOwKQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8oH+xTmRJWmZPsGupX6h4Vaunv5l3sH2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsU7JCYgJV1OpAWEZKtbG1QBRbCwC1aXuHhgAAAA==" + } + }, + { + "ID": "c80528c33b995230", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "167" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIFsxLCAyLCAzXSIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiV1djU3lvUmRWUk5uUWppd2VJTkJGV2ZVNkpSIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:20 GMT" + ], + "Etag": [ + "4N3bWe4ZCd7zR9/MfzLIKg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41S226bQBD9FWv7ahtzB0tWm9qkonWRgnGstqqsZRnIOsASdp3IifLvHbBjVW0a9Yll5lzm9kRueZ2RKUl5cbeH9vBuJ1IyJKBogVErMtMNWN/nmfsY+9rX/HEZfilmM0TwjiVvRFkeKlqPMqjESIFU0/VqvNmw1UHE2XUc1Vc7/gBh9PFyk6+dzzEyJZT5kte3yL9RqpFTTXtxHxdCFCXQhssxE9U5rt0bWtOKHTAltVdMNaxaam/Yvi8Fo4qLerZeYQl7Ce0WKspLLKITGLUiFerDK9JjTqtxgfh7zoAyJva16mpDFSbqnBf7thcm0yfS1/rbg6yCZTBPBj/04cAYDsyfSMpQk9c9JaFpCR381Fr4j5F2LKqohCNimwIYrpNmvq3rlp47jm17VHct3/SZn9mWwUwwJiZFnuosehatRe1bTuroduoZeqpnJvhObuLXtajlwMRyJrrtpSZzyTM21wJVsOCyEZIfGyTzOLhIgm14uY2CYBEs0OCh5X+iNnGIoCReR3NEI6ZpuUBYN5AwSoL4Yp6E18FxDUsoKDus7nAROS0loDPuMjk0OBhytQ7ib+QYiiGHFmr2nwNDRp99+xRfrgKBeBdoJBX+44KY7Gz6GXSL4lVXjm67huG5rjeZeDbpwa36K2foHubOp9ApQgW1OvV0PAnyfDLbyzMIkzizKIw+YfYXCx4k9ZkDAAA=" + } + }, + { + "ID": "1c3ece54abcd8c06", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/WWcSyoRdVRNnQjiweINBFWfU6JR?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:20 GMT" + ], + "Etag": [ + "PG4J5YEy3IBXcXyPsNu5fw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y1PwW7CMAz9F+8KEtPGDpU4rFvHyqEqAQZomqaQuqVdGneNKxQh/n0J7GQ/+/m95zP81KaACA519Ttg7+4q5GVoBNpBs/WlI2MRRoAsK8/M54+L6T5xD2m8UzuX22yYlqfZzDOsOmIrITpDWaMuLESfZzCyRX9WTr49g10XQJqtk3ki/KClIgxEkifP6+QVLl+XETR0EFhij0ZhUOt6alBxGoLaI2ntWmnGBbY0ZrQM14vrdrtVK0ei+BCZWTb1CdMsftuWm6dFMNOkJNdkPHGzAm/ExFILOvmkcA//OHZeNO9JobUYRCc3gxdqO43sE3E/4AiU9O++13zDlz++As5TSwEAAA==" + } + }, + { + "ID": "8652524f8148b3a4", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon946b615b821b1d3e96f31d374a46e0460158b3c7/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:20 GMT" + ], + "Etag": [ + "Ie3yN7mzpVfifn8XeJV/IA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8p7phpX+pnnVhWEpWWm5VlEpHqF6Xs62toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsg5FAyVodCMsIzjJWqo0FQwCQysZEigAAAA==" + } + }, + { + "ID": "4eb32ca41d3166a0", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "177" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIChbMSwgMl0sIDMsIFs0LCA1XSkiLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6ImFEUXp6OFY1N2czY3RZZTJ2OWVQMlQ5VWdaZiIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:20 GMT" + ], + "Etag": [ + "Q8WG3DwnoAg4rMvsVcgZMA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SW2/aMBT+K8h72SQgdxIjoQ1BViFR1IZA1VYVcpyT1G0S09hQ0ar/fSdA0bR11d4Sn+92Lq/kUVQp6ZNE5E8bqHdfHmRC2gQ0y/H1Mrg6c8bPlRzmbn2+VUue35wPBwNEiIal7mVR7EpWdVIoZUeD0v3FvMvGly8vwdLzc4fra7C3FC7smC7ymwyZCopsKqpH5N9rvVZ9w3h37+ZS5gWwtVBdLsvTu7G1jXUtH4BrZXxgamBqZXxi+72QnGkhq8FijhE2CuoVlEwUGKIR6NQykfrHB9Jdwcpujvit4MA4l5tKN9lQhcsqE/mm3guT/ivZZ/3tg8zDaTiKW19vrXbLvmu3nHbr1m23vLtvSE9RXVR7csySAhriscnJP4bbsJhmCg6IVQJg+70kpZ5luVbW63lewCzfpQ7lNPVcmztgmw5Dnm4s9ixWySoNTC+xXUo9hhoppabp2BS4ZVucUotaGWSmk7rkDdusgWkYC7WWShxaJaMoHMbhavJzNQvDcThGg+da/Im6iiYIiqPFbIRoxKxrIRHWjGYyi8NoOIony/CwkCnkjO/mT7iSjBUK0Bm3Gu/W0BziIoyuyeEpggxqqPh/DgwZh7Y/Pcr3+0AgXggaKY3/uCCuGpv9DJpFibKJY3m+bQe+H5i9XkD24Fr/VfM9irXTUTSKUEKljz0djoO8Hc026gTCIs5sNpmdYfUXYfhzA6MDAAA=" + } + }, + { + "ID": "b711aea4ee87f1c3", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/aDQzz8V57g3ctYe2v9eP2T9UgZf?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:20 GMT" + ], + "Etag": [ + "Orr0QDx8q+DZX24h8PTiFA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42RYU/CMBCG/8v50ZHg0AgkfABWlYTAmJtRjCGlu43hto61qIPw372ORBJJjOmH9r2+z931uof3JA+hC8sk3myxrC5i1DNz8FBtU61oK2SuECxAzWNyTsuyOXO+2ptLZ/5sX6/arp/c9Xs9ciixwoxDdw9RgmmooPu6h5xnSFjUXJBDV4URHhtOPYd0JkOjJ8F43B+MGUXOyUUdWlyd8NHEZ/fMO/Eec1nfZw4crN+Y/Qf2U/Yca/2r2hstC9Zy6WGEJeYCzeOLUq5R6JGZq1rJNK0ynjdCzGRDo9JQE/Utd2a7Xfvp5jZuCf2C9kcHXdvvBPE8IlcqBdeJzMkYPFKPoKXmqSc/aTxQj8PoQUVJ3VIKVApN0uaxwFBmRYqaOtLlFi0QnH7nIdFHffgG9tzpl/oBAAA=" + } + }, + { + "ID": "7db4876859f5dd56", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anond805b24995abeed9900329ec121c99191fef03d4/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:21 GMT" + ], + "Etag": [ + "4qyaLd1DqyKRS6QBSpw7lQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qbFFYm+qQYuhRWegcFmwU6BReUm+cE2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsU7JCYkJIoLpaHQjLSKk2FsY2holCVZnAVZmCVMXWggkAa3ZF1LQAAAA=" + } + }, + { + "ID": "765314c3c87caaf8", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "180" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIFsoMSwgMiwgMyksICg0LCA1LCA2KV0iLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IkU2SThCeFRpZ2ZwSkx2N2l6Y1NweUNWV0tIeSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:21 GMT" + ], + "Etag": [ + "xqFeUDgDXJU/qy1zifgLMw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SYU/bMBD9K5X3BaTS1E7SpJXQxtqwBbpKa1PYNE2V416CIYnT2C0ExH/fJQU0bQztW+J77967d/dAbmSxJiMSy3Szhap+d61i0iVgeIqvd5tTWE7SybezpbWp6b1M0umX2+NjRMiGpa9UltU5L47WkKsjA9qMloteMAj9j3eRTJPybLrz5L1YlPX44vL8c41MDVkylcUN8q+MKfXIsp7Ve6lSaQa8lLonVP7ybu2YVVbqGoTR1iuiFrrW1huy7zMluJGqOF4u0MJWQ7WCnMsMTTQNjioVK/PhldY9yfNeividFMCFUNvCNN6wi1BFItNt1TYmowfSev3tgyyCaTCOOj8OaLfDuh37sNs5cLodt9sZHP7EDmsUkEXLj3icQcN9mjP8R74NixuuYY9YxQDMG8TroUupQ5PBwHV9Tj1naA/FcO06TNjA+jZHnmkkWhYvVDGgzpAJ36bU6yex2/eHtuMBZZ7tQ5/7Doekz8BPyCNOWgE3MJG6VFrupyXjeXASBavwdDULgkkwQYHbSv6JupyHCIrmy9kY0YgpK6kQ1qQTzqJgfjKOwotgv5MppFzUiw1uJeGZBlTGxUZ1icGQr8tg/p3sn+aQQAWF+M/AkNFW377L5xNBIB4JCmmD/7ggoRuZNoNmUTJv7FDXY8z3PJ8yykgLrsxfNZvZWHu5i6Yj5FCYp5n290Een8S2+gWERcxsFs4+YfUXPni496YDAAA=" + } + }, + { + "ID": "b3ad492daf884cea", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/E6I8BxTigfpJLv7izcSpyCVWKHy?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:21 GMT" + ], + "Etag": [ + "h/jBTO8OR17M3SPL5+Dg/A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/52RUU/CMBDHv8v56AgiUQgJDwwaQSdgGfpgDCndbRS3da5FnYTv7nU8kOiLMX1o/9f/7+563cOryiPowVolbzssq7ME7YM7cDS71BraCp0bBA/QioScm+bWD2fdGW917tuLeXB1Pkqag36fHEZuMBPQ20OsMI0M9J73kIsMCYsvVuSwVeEEZ8MZH5HOdHTUczYImYv8Jld1aNU64ZNpyG4YP/HTZRAM/IDBwfuJXf4Pa/8Je6HlwVavOcZYYi7RPb4o9Ralnbi5mo1O0yoTeSPCTDcsGgs1Ud+y60nX/wxVEhe3wXtHfclFUQ0fn+7GFblSLYVVOifjckE9gtVWpFx/0HigHofTfkVJ56WWaAy6pBfHAkOdFSla6siWO/RACvqdsbJHffgGE8/kCvoBAAA=" + } + }, + { + "ID": "d531c387927462f1", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon61492c831170fb5089347e12738e0a84aef02e8f/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:21 GMT" + ], + "Etag": [ + "yKrQ9L28x2wEp084BYagrA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pXehcFWvoYWVQYlbsWGFiYOEUmphc52toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsg5FIAkB1tToQlhGcZaxUG1sL5SCrNYGrMIWzzMBqY8EQAC6z5IbEAAAA" + } + }, + { + "ID": "e599b261d68ae194", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "187" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIFsoWzEsIDIsIDNdLCA0KSwgKFs1LCA2XSwgNyldIiwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJ1VFNNNE9NdGR0U1Q3YnZ1dGg3aGRMOU1mUlUiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:21 GMT" + ], + "Etag": [ + "BMwT73iECIV2XoQR/GSPyw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SW0/bMBT+K5X3AlJp6lzbStXG2gxFaruRpGwTQpXjnKSGJC6xU1Qh/vtOUkDTxtCeEp/zXc7tkdyJKiUTkoj8voH68OFWJqRPQLMco5+XD7FnCX8WXJk/5GVoXETfDg/TKSJEy1JbWRSHklVnKZTyTIPSk3U0aOJoaX9d6lRHsZfsG731tulivMzCNTIVFNlCVHfI32q9UxPDeHEf5FLmBbCdUAMuy9e4sTeNXS1vgWtlvGFqYNXKeMf2YyE500JW03WEJTQK6g2UTBRYRCtwVstE6k9vSA8EKwc54veCA+NcNpVua0MVLqtM5E3dCZPJI+lq/e2HRP7Cn8W965Nr2u+Z/Z510+/Zp/3eybXT77n48E5vUChFH1F1MjFLCmglntsN/jHmlsU0U3BEbBIA03OTdOxQatPMdR1nxKhnj60xH6eObXILzKHFkKdbi47FKlk5PDWzoe16jmnZdATMzXjGbepaoyE1acaGLgNKh+QJG66BaZgLtZNKHJsms9A/j/1N8GWz8v25P0eDh1r8ifoeBgiKw/VqhmjE7GohEdYOKVjFfng+i4Mr/7iaBeSMH6J7XE7GCgXojPuNDzscDLlc++FPcgyFkEENFf/PgSGjy75/ni+XgkC8FTRSGt+4IK5am24G7aJE2ZZDHc80R543ovglHbjWf+VGzhBzr+fRKkIJlX7u6Xgm5OnZrFGvIEzizFbB6gKzvwBaSYn5rQMAAA==" + } + }, + { + "ID": "4792bc387f13bd5e", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/uTSM4OMtdtST7bvuth7hdL9MfRU?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:22 GMT" + ], + "Etag": [ + "6jj9a6FpRzqMnoVEP04K3Q==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/32QXU/CMBSG/8vxdiSoBAIJF4BViRsfZXhjDCnbGdvs2rGeaSbhv9uOCxM1phfte/o+5+sEb5mKYQT77HCssWquDkhr9+BoaknGXqVWBsEDJHGwzn6eD0X/vuSfx0DpZ7bq9p5u1+OxdZgoxULA6ARJhjI2MHo5gRIFWizp7qyDmtIJzmZLfmd1oeOLXrFJyFzkN7lrQ7vrb3y+CNkD43/wZ+8ndvMPttj6/mTqMzi/2uNBrvccE6xQReimKCudY0RztyCTaimbQqhOjIXuEBqClmh/63AT9JYBxbQJB/v3mtJBGvvDIOFb65I6EpRpZY3bje0RSJOQXH/YOaGdy+lpY5OuKh2hMeiSdi8FZrooJZLtiKoaPYiEXfNjRhd9/gKs2EHCwwEAAA==" + } + }, + { + "ID": "bd2595cd460657fa", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon5cd2f0467523418ea6fcfc416380121fa06ae110/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:22 GMT" + ], + "Etag": [ + "Lve18g7HfoccPjvTqV5b2w==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8r7lKUaWqSbe6TlJycHZJWFFIaZJhmV29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsg5EYAkDVtToQlhGcZaxUGwtjm4DYUA6mblO4HjMkPeZgPbFgCAAVG3Zr3gAAAA==" + } + }, + { + "ID": "9b0fb3e54a2be97c", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "186" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIEFSUkFZKFNFTEVDVCBTVFJVQ1QoWzEsIDJdKSkiLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IngwSnB1RU9oTnVzR3ozM3pnS0RtOUJUM0hLQiIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:22 GMT" + ], + "Etag": [ + "saVQQ1CRTVqlBgCNeVShxA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SW0/bMBT+K8h7AQka4tyaSmgracYKKBNp2glNU+W4J6khiUPsMAriv+8kLWjaGNqbfc53ObcnciuqFRmRVOR3LTSbDzcyJYcENMsxqtji6soM4mRxV5zmQQSL2fphfHKCCNGx1FoWxaZk1dEKSnmkQenRfDZ4OD6v2/DrOmrV2aNlPeYXk9I/TawvF6fIVFBkl6K6Rf5a61qNDOPFfZBLmRfAaqEGXJavceOeGnUjb4BrZbxhamDVynjH9mMhOdNCVifzGZbQKmiWUDJRYBGdwFEjU6k/vSE9EKwc5Ii/FxwY57KtdFcbqnBZZSJvm16YjJ5IX+tvDzILL8Mg2RvH8fh6f/eZJfE8SPa/m4d79MfBAeqs0EZUvUrC0gI6hV23039MuWMxzRRsEcsUgHpuuvId07TNzHUdZ8hMz/Ytn/srx6bcAnpsMeTpzqJnsUpWpu24Weq4MDQ96oBPmelnlNqWTR1/BalHue8xNyPP2G8DTMNEqFoqse2ZBHE4TsLl9PMyCsNJOEGDn434E/UtniIIG48CRCOmboREWDejaZSE8ThIpotwu5lLyBnfzO5wNxkrFKAzrjfZ1DgYcjUP42uyDcWQQQMV/8+BIaPPvn+dL4eCQDwVNFIa/7ggrjqbfgbdokTZlWM6HqVDzxtS27VID270XznHpZh7vY5OEUqo9K6n7WGQ551Zq15BmMSZRdPoDLO/AIeOwr6sAwAA" + } + }, + { + "ID": "dba83faa76bb4d6e", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/x0JpuEOhNusGz33zgKDm9BT3HKB?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:22 GMT" + ], + "Etag": [ + "LBYDvCm2D6MxDSH5fmFQUg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/22Qy07DMBBF/2XYtlKgAolIXZAmNKXQR9ouEEKVm0wexY5DPIGmVf+dcbpgAfLCvuN7Zq59go+iTMCFXZF9Nli3VxnS0h4iNI0kw1ulS4PQAySRsfPZe/W/RurGv3s5+KvwNlWPy002HLLDxDkqAe4J0gJlYsB9O0EpFDKWOlt2UFtZEQWjeeSzVjq56EXwsA5s5S+57Urb6198MlsH4yD6hz+/8+rBXu8iTLHGMkYbp6r1HmOa2JeaXEvZKlH2E1S6T2gIOqK7PThPVRPM81ljxsfB4JhNfXXvrQfh1GOX1LGgQpds3KyAB5EmISP9zYGhC2i113LTRa1jNAZtU+cyYKRVJZE4EdUN9iAW/F9hQRd9/gEnATogjAEAAA==" + } + }, + { + "ID": "45f3ac1643a9832c", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon1456fb56e81725e92a19f22434259deb72c97a6f/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:23 GMT" + ], + "Etag": [ + "EribgkzIOJrGXAjsY6Aq3A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8q7FmUmpWdXefp7FblHOGYVR5o5Fho72toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsg5EYAkDVtToQlpFSbSwQgonYWgAPFC3ulgAAAA==" + } + }, + { + "ID": "d3c28e701e6a6459", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "158" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIDEiLCJ1c2VMZWdhY3lTcWwiOnRydWV9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiTEpVc1k4MFJFcjVoV0lYMjdFWVZPaE10Vmg0IiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:23 GMT" + ], + "Etag": [ + "jHZkLbDlzSumR3hmks37aA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SYY+aQBCG/0qz/VpFFhAxMa1R2tJYmyJ6vX4xyzLAKrAcu1xjL/ffO6BnmvZ66TfYeWbemXfmgRxFlZApiUV210Jzen2QMXlDQLMMXw8fvx9X8bL4uWnL0MrLo7JcNp/NkBBdlsplUZxKVg0SKOVAg9LT7Wa4+rRVt5NR6DdOfhN8o65/u/uSf9a73MZMBUW6EtUR83OtazU1jCf1YSZlVgCrhRpyWV7fjXtq1I08ANfKeEbUwK6V8YLs20JypoWsZtsNttAqaPZQMlFgE12BQSNjqd89U3ooWDnMkL8XHBjnsq101xtW4bJKRdY2fWEyfSB9r799kI2/8hfRKxPhBGuJqkcjFhfQYZeRgn9Y2WUxzRSciX0MQN1xnHiOadpmOh47zoSZru1ZHvcSx6bcAjqyGObpTqLPYpWsOI9dO2E2ZSkyXmryNB2llFKXeqaJRWOXAgWLPOJQDTANS6FqqcR5MLII/Xnk74P3+7XvL/0lCvxoxJ/UTRggFIXb9QJpZOpGSMQ6I4J15IfzRRTs/LP9K8gYP23ucAG6aQGFcYXRqUZfyNetH96S81MIKTRQ8f/0CzP66MsX+HQMCOI5oJDS+I/74aqT6S3o9iTKrh3TcSmduO7EouMJ6eFG/xWzxxRj1wvoKkIJlb7MdL4E8ngRa9UVwiBatg7WHzD6C0lVV56QAwAA" + } + }, + { + "ID": "e912c77be9f5996c", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/LJUsY80REr5hWIX27EYVOhMtVh4?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:23 GMT" + ], + "Etag": [ + "2K+htbicSr6uw/FtgSe/bQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PW0+DQBCF/8v4KE2x8ZYmfbAGFcVqQaqNMWZZhktdWNwd0hDCf3dofZo9s9+cOdPDT1mnMIekzH9bNN1JjrQeHyHaVpHl0ujaIjiAJHImZ0+nBSWljMxlu5/eUR7hNFkvFkxYWWAlYN5DVqJKLcw/e6hFhTyWud9MUNeMwl+9efdeyI1Kp2NjFQfBzTLwYPgaHNjpJMQMDdYSR7fG6B1K8segttBKdZWoJylWekJoCQ4Th9/gMbbbazf0zEXx7n/Mrrzt5qV4pk1xzpTSUlCpawbjCHgRaRIq1HtOCmfwr5cdm74aLdFaHE3d44JbXTUKiRORadEBKfjch5KOevgDCeOELksBAAA=" + } + }, + { + "ID": "f9235a108bb6347b", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonccb74da42af2c39f1cff0f22272911e27b72e2e3/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:23 GMT" + ], + "Etag": [ + "RCuE/6G28BFNSkm6eGOBEA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8oHOZe66pu5G1k4ufkFZ+eapbr7O7k62toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwvXxgIhAFmpeK9uAAAA" + } + }, + { + "ID": "42251547c3c099a3", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "160" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIDEuMyIsInVzZUxlZ2FjeVNxbCI6dHJ1ZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJUQU53Q1ozeW81d0ZwcXlWUENuZlJkWHFmMnEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:24 GMT" + ], + "Etag": [ + "COd2B/d3ZDVQU93Dp8oIcQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42S226bQBCGX6Xa3tYcjTGWrNbFpEKy3Bpjt82NtSwD2QRYzC6xUJR374Adq4rSqHew8/3zz+mJPPAqJTOS8PzYQtN9vBcJ+URA0Rxf/e+p9VVP7dvlfrPz7GU9FSHbzOdI8F4l70RRdCWtRimUYqRAqtluq8WL9cm/tTvhnG7qY7f/4VdZlP46ZtYRlRKKbMWrB9TfKVXLma6/uGu5EHkBtOZSY6K8vuuPll434h6YkvobpjpWLfV3bD8XglHFRTXfbbGEVkJzgJLyAovoE4wakQj15Y3UGqelliP/yBlQxkRbqb42zMJElfG8bYbEZPZEhlr/+iDbYBX48QdTsxFPMRuvBjimSQE9eGkq/McwexVVVMKZOCQAljtJUs8xzbGZTSaOM6WmO/Zsj3mpM7aYDZZhU9Sp3mJQ0UpUKEyMDIx0yhzkU8P1PNPNsoxmBnONccImluGljDxjWw1QBUsuayH5uTXiR8EiDg7hzWEdBMtgiQanhr+mfkYhQnG0W/tII1M3XCDWjyJcx0G08ONwH5wXsIKcsm57xBWopgU0xiXGXY1zIZtdEP0m56cIMmigYv85L1QM0fdv8OUcEMSDQCOp8B/3w2RvM4yg3xMv+3JMx7WsqetObc8yyQA36nVsbNgGxq430GeEEip16el8C+T5YtbKK4RBHNk6XH/D6B/RT1cHkgMAAA==" + } + }, + { + "ID": "55b0259a6cc20c4e", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/TANwCZ3yo5wFpqyVPCnfRdXqf2q?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:24 GMT" + ], + "Etag": [ + "7AnfuA91DQZFKaWiLZu6Ig==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P0U6DQBBF/2V8bZNWo0aSPlCU2Ehqi60ajDFbGCh12QF2CCGEf3dofdo92TN37vbwm5sEHDjkWdVg3V1lyNvxEqJtNFs5SjIWYQLIKhPz3jVp4z7MH7eR/6I+8iBq7lbZYiGGjY9YKHB6SHPUiQXnqwejCpSxdPYjBnflCH7w6u4EC0pGXO+DwF0GTzB8DxM40SHEFGs0MY5ZZU0njHk11rRH0rorlJkmWNCU0TKcJ86vO3fdetFNR7etX1bd+8YzaZh8Vul1JZamWHFORsT9G8giJlY6pFZ6whz+edlJ6KamGK3FMXR2WeBRUWpkacR1gxOIlXz2OecLD39rCn+YSQEAAA==" + } + }, + { + "ID": "bc7b748aa7413711", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonbeeb0fe0d8c5174d079917fffaf0c704bc6209dc/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:24 GMT" + ], + "Etag": [ + "7NJewAPixiCWVFoeVMvHlA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qb+3mlljsGZFZkOoeHueWnhvmWeeQ42toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwnrGSvVxgIhAMqsCMxwAAAA" + } + }, + { + "ID": "b84842b0ee41d973", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "161" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIFRSVUUiLCJ1c2VMZWdhY3lTcWwiOnRydWV9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiTUxXVGVhVURiQW0wU01xVjJNOUxUUnpYeXh6IiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:24 GMT" + ], + "Etag": [ + "s1bQAZNws5kmhO6IjEDGtQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SXW/aMBSG/8rk3Q5CDAkECW0IvCoSUBFCu+0GOc4hGJI4xE47WvW/7yRQNG1dtbvE53nPe76eyUHmMRmSSCbHCsrTx72KyCcChif4qu1oOf6xeNTOIdvduv6eTW/McjRCQtYqvVNpesp43oohUy0D2gzXq/Z8dh8CX0+jcdZZzY93dO7NwuDp2+nnEyo1pNuZzA+o3xlT6KFlvbq3E6WSFHghdVuo7PpuPVCrKNUehNHWG6YWVq2td2w/p0pwI1U+Wq+whEpDuYGMyxSLqBO0ShUp8+WN1G3Js3aC/IMUwIVQVW7q2jCLUPlWJlXZJCbDZ9LU+tsHWbEZm4QfwmDNkI8xncwbOuRRCjV56cr/xzRrFTdcw5nYRAC070ax59h2z966ruMMuN3veV1PeLHTo6ILtNPlqDO1RaPiucophYEbObFL3Y5ti44TC6CucOwe7QoaCeoJN446nLxgXyVwA1OpC6XluTcyCdg4ZBv/62bB2JRN0eCxlH9S94GPELa7mCCNTFFKhVg9C38RsmA8Cf07dt7ADBIuTqsj7sCUFaAxbjE8FTgXslyz4Ds5PwWwhRJy8Z/zQkUTff8IX+8BQbwINNIG/3E/Qtc2zQjqPcmsLsd2+pQO+v1Bz6EuaeDS/BVzHQ9j1yOoM0IGubn0dD4G8nIxq/QVwiCObOEvbjD6CwbD0RWTAwAA" + } + }, + { + "ID": "8b5957519d01c73e", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/MLWTeaUDbAm0SMqV2M9LTRzXyxz?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:24 GMT" + ], + "Etag": [ + "L9IdeIlyj0I0Pc/6KSspMg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3U7CQBCF32W8hVi9MKEJF6AkNm4BC4iJMWa7nZbW/SndIboQ3t0peDV7Zr85c+YE37UtIIa8rvYH7MJNhfTaPzL0B02eS+usRxgAkqyYFKOkwESHJkqipbp9eFn5Nq3GYya82qGREJ+grFEXHuKPE1hpkMfK6IsJCm0vpouFmE3m3DCu6BvzjRCTqZjB+fM8gMblGZbYoVXYu7Wda1BR0gf1O6d1MNIOCzRuSOgJLhOX31Rs1yg3T/nERKt0/3afjsQ6O76H3yNT2ilJtbMMblbAi8iR1Jn74aRwB/96Gth02TmF3mNvGl0XPDrTaiRORN0BB6Akn/tc01Wf/wChp7fwSwEAAA==" + } + }, + { + "ID": "1200b533f15e864d", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon22e86b5d626011c05dce26c51423c2bc29c6db0a/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:25 GMT" + ], + "Etag": [ + "h5mkha42Xdz57LSnwSVPiQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pnmOZmZySaGEWkVJma+wTnlQeHBWQG2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwqXFJWmKtXGAiEART5HNnEAAAA=" + } + }, + { + "ID": "0e46b355e9ca3aaf", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "162" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUICdBQkMnIiwidXNlTGVnYWN5U3FsIjp0cnVlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6ImZCYXVteVd2NTlFdlVpZ1dESnRZME5GT0s5eCIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:25 GMT" + ], + "Etag": [ + "KH4ockKDjHqQwOC/kNdG3w==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SXXOaQBSG/0pne5GbKoIg4IzTGiUJ1SETxDq5cpblSFaBJeyidTL57z2gcTptmukd7Hne856vF7LjRUKGJObpcw3V8fNWxOQLAUVTfJ3dmYLtZtPt3fPD4X6i7YLktn8YjZDgjUo+iSw75rToJJCLjgKphstFd3NN6/y42luut1/ydDX9rh57wc39zP2JSgnZZs6LHeqflCrlUNPe3LupEGkGtOSyy0R+edf2hlZWYgtMSe0dUw2rltoHtl8zwajiohgtF1hCLaFaQ055hkU0CTqViIX69k7qLqd5N0V+zxlQxkRdqKY2zMJEseFpXbWJyfCFtLX+9kEW3tybRJ+uxteTKxQkmI8XLR7ROIMGPbfl/2OcjYoqKuFErGMAwx7EiWvpuqlvBgPLcqhum27fZW5imQbrg9HrU9SpxqJV0UIUcdyzHT1xHWYYVpzEiTNgrtMzHYeafQwlPYfGpg3kFRurgCqYclkKyU/NkUnojSNv7d+sA8+belM0OFT8T2oV+ghF4TKYII1MWXGBWDMMP4i8cDyJ/B/eaQVzSCk7Lp5xCaqqAY1xjdGxxLmQh6UXPpLTUwgbqKBg/zkvVLTRj6/w7SAQxJNAI6nwH/fDZGPTjqDZE8+bcnTLNgzHth2r59qkhSv1V0y3m9jlCpqMkEOhzj2droG8ns1qeYEwiCML/OAWo78AF81IaJQDAAA=" + } + }, + { + "ID": "027faea85f52fe8d", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/fBaumyWv59EvUigWDJtY0NFOK9x?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:25 GMT" + ], + "Etag": [ + "mM/FwkxZQqtvTLHwuaoXWQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PTW+CQBCG/8v0iik99CCJh9pqtaW0ooZ+pGlWGBDdZZAdVGL47w7a0+6Tfeadd0+wzYsEPFjl2a7GqrnJkGfdJURba7ZylFRYBAeQVSamebsdH7bH79mO9wt/cqgVfUazwUAMG6/RKPBOkOaoEwvezwkKZVDGUvdPDG7KDuaLcBo8CxtKOg6Wvv8w9EfQ/rYObGgVYooVFjF2YWVFG4x52vW0a9K6MaroJWiox2gZLhOX13SoatNE+/v+aL/Ms+jphb/cYPz+2j+KpSlWnFMh4nIOsoiJlQ7pIEXhDv552EjoR0UxWotdqHtd8Eim1MjSiKsaHYiV/HaS85XbM3BbxhpKAQAA" + } + }, + { + "ID": "4a3a1ce8de7fa983", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonbb0781d98c225bdbd86c980488a43078d08ab47e/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:25 GMT" + ], + "Etag": [ + "EYU8rQa2ftujQRgqoUU5Wg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8q7RoZaFAUmGqWVlGYFBqUX5oeGmoan29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwo7Ojkr1cYCIQDzYii+cAAAAA==" + } + }, + { + "ID": "ae49f1eb750aaf42", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "177" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIENBU1QoJ2ZvbycgQVMgQllURVMpIiwidXNlTGVnYWN5U3FsIjp0cnVlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IkdBVm13RmxpUWhocmxMNnBzTVA3VlBDZ290WiIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:25 GMT" + ], + "Etag": [ + "fq8UN9+En5F4ruTdniwaEQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SYW/aMBD9K5X3oZu2EhJIQpCqjYFbIVFUSGDqviDHHMFtYgfbKUJV//sugVbT1lX7lvjeu/fu3T2RByHXpE9Ske0q0IcP9yolXwhYluHrZtdbTKPPVPpXXV0layn2jM4uLxEhapbZqjw/FExerKFQFxaM7S/i1vVgWeyvcjHbbnU+CUpzcxsub4eZsj+RaSDfTIR8QP7W2tL0HedFvZUpleXASmFaXBWv786j55Ra3QO3xnlD1EHXxnlH9muuOLNCyctFjBYqA3oFBRM5mqgbXGiVKvvtjdYtwYpWhvhHwYFxrippa2/YhSu5EVmlm8ak/0Qar799kJhO6DA5Gw7i5OP5Rqnzs0F89v0uofEn5K+xvZANO2FpDjXzNOX4H+nWLGaZgSNilQJ4YZCuI991u+4mCHy/x9ywG3UiHq39rsc74LU7DHm2lmhYTCoJnShlPOiBF3EObhh2wjRgURoF7a7X5m0WtCPXjTzyjHNqYBZGwpTKiOOsZDing4SuxlerKaUjOkKBvRZ/on7MxwhK5ovpENGIKbVQCKuzGU8TOh8Mk/GSHjcygYzxQ7zDnVhdAQrjVpNDibmQ2YLO78jxaQ4b0CD5f+aFjKb6/lG+3AcC8UJQyFj8x/1wU8s0EdR7EkVtx/VDz+uFYc8P2h5pwNr+XYtCrL0eRd0RCpD2NNPxOMjzSawyryAsYmTT8fQaq78Avo8reaMDAAA=" + } + }, + { + "ID": "79c8e8bb37570da0", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/GAVmwFliQhhrlL6psMP7VPCgotZ?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:25 GMT" + ], + "Etag": [ + "d7ZSHCvz0mr21D8cTvZ/NA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3U7CQBBG32W8hQheiCHhAiqKSSVQfhJrjFm2Q1vc7dTdAVKbvjtT8Gr3ZM98820NP3mRwBB2efp7RFfdpcjL9hKhPxr2cpRUeIQOIKtUzGQQr2bB6a9n3UP/+UmvT/H9fDwaieF1hlbBsIZ9jibxMPysoVAWZWzf+xaDq7KFycd6uhK0lLQ434TheBJOoflqOnCgXYR7dFhobLNKRwfU/NbW9BkZU1lVdBO01GX0DNeJ6+vreGvPLyZfZpkz4WPp3xeD7SJIiWOxDGnFORUiblYgi5hYmYjO0hP68M+TSkIXjjR6j21o77YgIFsaZGnE7ogd0Eo+O8v5xs0FYU2TlEkBAAA=" + } + }, + { + "ID": "da535b357729f06a", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anone39bac68e29cce17737b6a9b960420c0a6091192/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:26 GMT" + ], + "Etag": [ + "9FV264sQR/PbALLr3jHgtA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pbuoUZmZkUBwbpByQ5+vgUGWd5pJc42toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwpH5VqWKdXGAiEARWiz93EAAAA=" + } + }, + { + "ID": "793acf775966fa51", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "189" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIFRJTUVTVEFNUCgnMjAxNi0wMy0yMCAxNTowNDowNScpIiwidXNlTGVnYWN5U3FsIjp0cnVlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IlBUNHpIM3JUTzZKU0pLRUdVeUd0ckpIaW9JSiIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:26 GMT" + ], + "Etag": [ + "oj/1FZ23HfgvP9daKUPhxg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SW0/bMBT+K8h7YJPWJnHuldCGSoAU6Lo23bS9VI5zGgxJXGwX1iH++07SUk0bQ3tLfL7buTySW9EUZEByUd6tQW3e3MicvCdgWImv8sZyTr9T93xZ3k/igl3MJ9c/yqMjRIiWpa9lVW1q1vQKqGXPgDaD+aw/ybyf567KPgWj2egiOZtvzowanQuZjpCpoVpeiuYW+dfGrPTAsp7d+6WUZQVsJXSfy3r/bt1Ta6XkDXCjrRdMLUytrVdsP1SSMyNkczSfYYS1BrWAmokKQ7QCPSVzaT6+IN0XrO6XiL8XHBjnct2YNhuqcNksRblWnTAZPJIu628fZJZcJsPsIEuvkll2fDV5e0htJ+jZbo/aB44/sL2B7R++Q60CrUTTKWUsr6BV2XWc/mPSLYsZpmGLWOQANAzyIvYdx3OWQeD7EXNCL3ZjHhe+R7kL1HYZ8kxr0bFYIxtmB5GXsyjPnTD2GKM2DXkeRr4b0yLMwbXdHLkFecKeFTADJ0KvpBbbvslwmhxnySI9XYyT5CQ5QYMHJf5EfZ2mCMqm8/EQ0YhZKSER1s4pHWfJ9HiYpV+S7XYuoWR8M7vD/Ri1BjTGDWebFc6FfJ4n029k+zSFJSho+H/OCxld9fUDfb4VBOK1oJE2+I/74bq16UbQ7knUbRzHDymNwjAKnCAgHViZv2o0iLC2P5BWEWpozK6n7aGQp53ZWu9BWMSRjdPxGVZ/AbCXVQqvAwAA" + } + }, + { + "ID": "75ac779a407ed988", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/PT4zH3rTO6JSJKEGUyGtrJHioIJ?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:26 GMT" + ], + "Etag": [ + "imeJ7tDArqZ+RhVVqdWfuQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PYU/CQAyG/0v9KCQYjSZL+AC6AHMojIGJxphj6+Dwbt3uuphJ+O924Kfe23v69u0RvnWZQwBbvasbdO3VDnnZPRL0jWEvpaLSI/QAWe2E1BajB34aufr9OtlvNnX+VjTL4VAIn+3RKgiOUGg0uYfg4wilsihjxeBLCG6rTqSzebhKR/OFtCzlXetlHcejcRzC6fPUgwNtEyzQYZlh51c5OmDGsy6q35MxrVVlP0dLfUbPcJ44/y7Su9/prUtf76NV9BxO1u2EXTTVNIuEMpQp1lQKuF6BLGJiZRL6kaxwA/963IrpwlGG3mNnOrgseCRbGWRJxK7BHmRKDp5qvujTHxfT5n1NAQAA" + } + }, + { + "ID": "171e54c4ce71fdb5", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anona0684ba8bb1794aa2027cb785392d7be303bc3ed/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:26 GMT" + ], + "Etag": [ + "nHV+kQHgLgep8nrTR0DWMg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8rneYRpZwd6pPukpxZY5BWFBBm4hPum29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwmbmFqYWJgZmZjqGSjVxgIhAExFsul5AAAA" + } + }, + { + "ID": "c3bd9ae149a45500", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "195" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIERBVEUoVElNRVNUQU1QKCcyMDE2LTAzLTIwIDE1OjA0OjA1JykpIiwidXNlTGVnYWN5U3FsIjp0cnVlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IlBXaFRoY0V1b3FpVDNQYnpzV3BpM3E2TFBaUSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:27 GMT" + ], + "Etag": [ + "/yQA9+xFSrt+P2WHop0dOg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41S226bQBD9lWj7kESpzR2Mpai1bNIgOa5j41rti7UsA94EWMwuad0o/94BJ1bVplF5AWbOZW6P5J6XCRmSmGe7Bur9uzsRk/cEFM0wqu1vR/7Fj6tlrS7m5vpaVHryObu8RARvWXIr8nxf0LKXQCF6CqQarpb9+XobbVnQiB2PrHn8U64rbu3c6fzbLTIl5OmUl/fI3ypVyaGmvbj3MyGyHGjFZZ+J4hjXHkytqsUdMCW1V0w1rFpqb9h+yAWjiovycrXEEhoJ9QYKynMsohXo1SIW6uMr0n1Oi36G+AfOgDImmlK1taEKE2XKs6buhMnwkXS1/vZBlsE0GEcnk1EUnEXhTbCMRjfzs1NTN9yebvVM/cRwhro91J3T83NUTNCQl51eROMcWq3nvsN/zLtlUUUlHBCbGMD03DjxHcOwjdR1HWdADc/2LZ/5iWObzAJTtyjyVGvRsWgpSjtm4A1SPRmYvpPYtp/iw3xqWL7lYghfSWrTlDxh5zVQBRMuKyH5oXsyXgTY5ia82syCYBJM0OB7zf9ErRchgqLFajZGNGKqmguEtdMKZ1GwGI2j8Etw2NEUMsr2yx1uSdUNoDHuOdpXOBdyuwoWX8khtIAUaijZf84LGV327TN9uRgE4s2gkVT4j/thsrXpRtDuiRdtOYbjmebA8waub/ikA9fq75zvYe54Jq0iFFCq554O50Kens0aeQRhEkc2C2efMPsL4rXaVrUDAAA=" + } + }, + { + "ID": "a9d7d90df292c82f", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/PWhThcEuoqiT3PbzsWpi3q6LPZQ?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:27 GMT" + ], + "Etag": [ + "WkzS2GJv8O7v1q+QG8LxbA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P0WrCQBBF/2X6WAWt0IrggxZJLcHGqAgtpWw2E7O6ySTZiW0U/92J9mn3sGfu3D3DweQxjCAyu7LGqnnYIS/bS4iutuzkKCh3CB1AVjsxt4fT6sl7Pw4/Xo798nHpDf2/aDIei+F0ipmC0RkSgzZ2MPo6Q64ylLGk9yMGN0ULq3U4X3jCGcUtLza+P5n6M7h8XzqwpyjEBCvMNbZhRUV71Dxve7qUrG0ylXdjzKjL6BhuE7fXYJuuUz2rqTTrQRCd3LYwg/LZDz6XYlnSig3lIm5WIIuYWNmQfqUo9OGfp42EBhVpdA7b0N59wStlhUWWRlzV2AGt5Ldvhu98uQKziqGbSgEAAA==" + } + }, + { + "ID": "28d1d90c20ebef1a", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon4bce78f0d8295d449ffffc9a13936295393df4af/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:27 GMT" + ], + "Etag": [ + "xBvEnnVOLs2PlnOpqfxhMQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pXOJW55uWF+fsUGwXk5PkXFKZVZPgG2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwobGRia6RoY6xoZKNXGAiEAlvSoiXcAAAA=" + } + }, + { + "ID": "0a1a092c0b9c4bbd", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "195" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIFRJTUUoVElNRVNUQU1QKCcyMDE2LTAzLTIwIDE1OjA0OjA1JykpIiwidXNlTGVnYWN5U3FsIjp0cnVlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6ImtnbmNscVY5dW52RHlKUGl6NDdzVGNBak1rTSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:27 GMT" + ], + "Etag": [ + "y+hPQKE4Xztg8N4DbXaiqQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SW2/aMBT+K5X30FYb5O4EpGpDkE3ZCmohdN0TcpyT1CWJIXY60ar/fSeBomnrqr2g4PPdzuWJrEWVkiFJRL5toN69u5cJ+UBAsxxfd+/vrq6/he7to86DmTtJbpnYXl9cIEK0LHUni2JXsqqXQil7GpQeLhf9dV7xYnszaKqHye7rlXh0fRXz0f10PUWmgiK7FNUa+Xdab9TQMF7c+7mUeQFsI1Sfy/L4bjzYxqaW98C1Ml4xNTC1Mt6w/VhIzrSQ1cVygREaBfUKSiYKDNEK9GqZSP3pFem+YGU/R/yD4MA4l02l22yowmWVibypO2EyfCJd1t8+yCK8DMfxSRxNw7P2ZxGPpldnp7Zp0Z7p9GzzxPKGpjs0vdPzc1RM0VBUnV7MkgJarUPf0T/m3bKYZgr2iFUCYPs0SQeeZblWRqnnBczy3YEz4IPUc23ugG06DHm6tehYrJIVT8AM/IDSNMuomQK1eOBSL4UMAsp9aieZ5zNnQJ6x8xqYholQG6nEvnsynoejOFxFn1ezMJyEEzT4WYs/Ud/nEYLi+XI2RjRiNrWQCGunFc3icD4ax9FNuN/RJeSM7xZb3JKuG0Bj3HO82+BcyPUynP8g+6c5Zqyh4v85L2R01bfP9OViEIg3g0ZK43/cD1etTTeCdk+ibONYnm/bge8HvutQ0oFr/VeNOh7WjmfSKkIJlT70tD8X8nwwa9QRhEUc2SyafcHqL4AYyFC1AwAA" + } + }, + { + "ID": "e00639aff7bbd5f2", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/kgnclqV9unvDyJPiz47sTcAjMkM?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:27 GMT" + ], + "Etag": [ + "AJe2BAMA8g2yvHUlwpzARg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P0W6CQBBF/2X6iok1TdqS+ABtUzVgLIovTdOsy4DAsovsoEHCv3fQPu2e7Jk7d3soc52AC4c8O7XYdA8Z0td4idC2iiwftdEWwQEkkbHprXDme6H3ks268yJWl/rqRdl8zoaVR6wEuD2kOarEgvvdgxYV8lg6/WWDunqE7S5arj+ZK5OMvI6DwPODDxh+BgcKc4gwxQa1xDGsbkyBkpZjT3s0SnWV0JMEKzMhtAS3idtrmWmpTvvXVp/fu9Umvz492530irAM2VJGCsqNZjHeAi8iQ0JF5sJF4RH+2e84dNMYidbiGDq9L3gzVa2QuBE1LTogBf92kdOdhz/Nt2xpSgEAAA==" + } + }, + { + "ID": "57ad65330c0b17d0", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anoncbe087866dff60de61c8465defe86c762bf57a39/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:28 GMT" + ], + "Etag": [ + "l3d8H0EWWjSGZrFLFSnIHQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8rnGKdYeBi4hodnBbtHFbn5uAXneXoE2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwmbWhmYWBmYKtXGAiEAbxEwWHUAAAA=" + } + }, + { + "ID": "86a734147395b230", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "261" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIEB2YWwiLCJxdWVyeVBhcmFtZXRlcnMiOlt7Im5hbWUiOiJ2YWwiLCJwYXJhbWV0ZXJUeXBlIjp7InR5cGUiOiJJTlQ2NCJ9LCJwYXJhbWV0ZXJWYWx1ZSI6eyJ2YWx1ZSI6IjEifX1dLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6InhJRFRacVVDaUFKNkhBNmNCbkZldG9PS1I1NiIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:28 GMT" + ], + "Etag": [ + "CDTm0lBumZ6odNjZuH8rGw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SYW+bMBCG/8rkfW1DIMGESNWaJrRlq7KNkE7rNEXGHNQtYGKbdFHV/74D2m7aumqfML7nvffufPfkVlQpmZJE5NsG1P7tjUzIAQHDcrydL+JyWJw05RWV6fLmqjmfqLO7oyMkRKvS17Io9iWrDlMo5aEBbabr1eBHuIivtuu5mL2n5zPKT6pTMPLjh8ilqNRQZBeiukX9tTG1nlrWk/sglzIvgNVCD7gsn++tnWPVSt4AN9p6wdTCqrX1iu27QnJmhKyO1issodGgNlAyUWARbYJDJRNpjl9IPRCsHOTI7wQHxrlsKtPWhlm4rDKRN6pLTKb3pKv1twNZBRfBPH5zvGMF8immE1VHxywpoCUfuwr/Mc1WxQzT0BObBMDxaJL6rm2P7YxS150w2xv7I5/7qTt2+Aic4YihzrQWnYpVsqLM5zY4zKNZOnIye+iPshEM02RC6XhMHddPmDekPnnAvhQwAwuha6lF3xuZR8EsDjbh6WYZBItggQZ3SvxJfYlChOJovZwjjUythESsnUW4jINoNo/Dy6B/gQvIGd+vtvgGGSs0HPRj+8QUK8GA0mT67Z5U+IPqfoL1Uyze1934TPdtc9NxW/ozcMmKpiN2/YHY5OHhOxK4Kb2YfF4H0VfSX0WQgYKK/+eboKKLvr7oTzuHIG4dGmmD/7gDXLc23ZjbXRBdh7brOc7E8yYT23FIByvzV8yxXXLwa9HajFBCZR576hcOW+3NGv0MYRCfZRkuzzD6E5HAkEv3AwAA" + } + }, + { + "ID": "2a17f360eca5ee13", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/xIDTZqUCiAJ6HA6cBnFetoOKR56?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:28 GMT" + ], + "Etag": [ + "bjFADPaTKgSWYpx6Rm3nuQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3W7CMAyF38W7BYlpWi8qcVH+RgdiUEBom6YppG4pS+LSuBpV1XdfArtyjvP5+LiFn8KkEMKxyC81Vs1DjrzxjwRtrdi6UpKxCD1AFrknz7Nosha7Rb49vJfXINFPpt4Mh46w8oRaQNhCVqBKLYSfLRih0Y1lg29HcFN6Ea9205dp4hqaUt9Y7ZfLaLScQvfV9eBMxwQzrNBI9G5lRWeUHPug9kRKNVqYfoqa+oyW4TZx+73Gk93HZT8uotdgHgVyZGbI9LZIngNHKZKCCzIO3G/BLWJioRL6dUnhEf71qHGm64okWovedHBfMCZdKmSXiKsaeyCFO3de8F13fykSBSdLAQAA" + } + }, + { + "ID": "9bb4227ca5ffd5e8", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon6a9c1e2a76fd32f1093f3e0db866446259ba7069/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:28 GMT" + ], + "Etag": [ + "kpceRaS9m0FwAf1HUJInPQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pnFySnBiUGW+YauJU7phl6hHp55gUE2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwvXxgIhAEE5v9FuAAAA" + } + }, + { + "ID": "d8077e6a53eeaf2f", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "265" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIEB2YWwiLCJxdWVyeVBhcmFtZXRlcnMiOlt7Im5hbWUiOiJ2YWwiLCJwYXJhbWV0ZXJUeXBlIjp7InR5cGUiOiJGTE9BVDY0In0sInBhcmFtZXRlclZhbHVlIjp7InZhbHVlIjoiMS4zIn19XSwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJIZ3RqeTBNNEpwYTJ6UE5scmxRbTdLRjB1OU4iLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:28 GMT" + ], + "Etag": [ + "FTtwBPtW+4jcMdWej7jDZA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Sb2+bMBDGv8rkvVwb/gQCRIrWLCFbtpS1CWm1TVNkzEGdAqbYpMqqfvcd0GTT1lV7hfH97p678/NAbnkRkyGJeHpXQ7V/vRUROSGgaIq3s1Ddv7tQ12+sLTuPr2HrbKdfx6MRErzJkjciy/Y5LU5jyMWpAqmG61XvQ6q2e/3c+lhS88dFkFXZZe58mum1F2CmhCxZ8OIW82+UKuVQ0w7qvVSINANactljIj/eaztTKyuxBaak9oyohl1L7QXZt5lgVHFRjNYrbKGWUG0gpzzDJpoCp5WIhDp7pnSP07yXIr/jDChjoi5U0xtWYaJIeFpXbWEyfCBtr78dyMpf+JPw1dmOZsjHWI4XLR3SKIOGfJpq/o9tNllUUQkdsYkATGcQxZ5tGJaRDAa27VLDsby+x7zYtkzWB1PvU8xTjUSbRQtsNB5QJ3H1RE8sakQJWJaTOGbfMiwasyRJXM+1YssmjzhXBVTBlMtSSN7NRiZLfxz6m/lsE/j+1J+iwH3F/6Sul3OEwuU6mCCNTFlxgVizi3kQ+svxJJxf+d0LLCClbL+6wzdIaCbhpFvbBa1oDgoqSYbfHkiBP5jdbbA8xMJ92a5PtV8yW3wehwOraf6IXNGsbplddyBGr08eH78jg27pCpDLtb/8QrqrJSRQQcH+810wo42+bPaD7xBE56GQVPiPPmCykWlX3fiBt1MatmOaruO47sCzSQtX6q+Yq+vk5JfZmoqQQ6GeZupMh6N2YrU8QhjEpwnmwXuM/gTvwFPa+wMAAA==" + } + }, + { + "ID": "ef5cba75941827f1", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/Hgtjy0M4Jpa2zPNlrlQm7KF0u9N?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:29 GMT" + ], + "Etag": [ + "9Dlos3T948RudU5fIirOZQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P0U6DQBBF/2V8pQlqjULSh1ZtWkXaYnnRGLOFgYK7DO4OMdj03x1an3ZP9syduwf4qpocQthV5XeHtr8okTfDJUHXaXZytNQ4BA+QVSlm8KDJXW+D8V3S5elNsazs6m0zmYjhsj0aBeEBigp17iB8P0CjDMpY4X+KwX07wDxaTbeChvIB4zSKprPoEY4fRw9q2iVYoMUmwyGrtVRjxsuhptuT1r1RzShHQyNGx3CaOL0uSq57/2X81Kqr33Wsrd6Y2+e53wWxWJoyxRU1IqavIIuYWOmEfqQnXMI/z3oJXVvK0DkcQv3zgnsyrUaWRmw79CBT8tlFxWc+/gHGMk6USQEAAA==" + } + }, + { + "ID": "22264fd1286e963f", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonfd6a7f80f0f4a1bfe447f723414adcfff8984d45/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:29 GMT" + ], + "Etag": [ + "fmPDaAW+FhkH9eGHuJzpGg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qn5Qa4JDqGa7tlZHtYprp7lHpVFbin29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwnrGSvVxgIhAFOxj1ZwAAAA" + } + }, + { + "ID": "8061fbc4bd29c3bd", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "273" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIEB2YWwiLCJxdWVyeVBhcmFtZXRlcnMiOlt7Im5hbWUiOiJ2YWwiLCJwYXJhbWV0ZXJUeXBlIjp7InR5cGUiOiJOVU1FUklDIn0sInBhcmFtZXRlclZhbHVlIjp7InZhbHVlIjoiMS4zMDAwMDAwMDAifX1dLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6ImpnbUhTQkJsNnBZRmczZk9tWmNXV3dZSWpoRiIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:29 GMT" + ], + "Etag": [ + "1oVlbEdkfdoUw9Y/M0u3NQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Sa2+bMBSG/8rkfU1DuIdI1dqmdENq6UpIq2yaImMO1Clgik2iqOp/3wHSbtq6anzB9nnec38iD7xKyYwkPH9sodl/3IiEjAgomuOrLm6LxE8fslQsd95Ku5q0ZnhzfIwE71TyXhTFvqTVUQqlOFIg1Wy5GG/y8svi7Kxw6tVFbmbX5Td2d7dbBZv7C1RKKLJLXj2g/l6pWs407SX6OBciL4DWXI6ZKF/fta2h1Y3YAFNSeyOohllL7Z2wnwrBqOKiOl4uMIVWQrOGkvICk+gcHDUiEerkDddjTstxjvyWM6CMibZSXW7ohYkq43nb9I7J7In0uf52IAv/0p/HH062tEA+RXe86umYJgV05KGq4B/d7FRUUQkDsU4ADNdJUs/WdUvPHMe2p1R3Lc/0mJfalsFMMCYmRZ3qQvQqWomK2WBa5tQ1TcuyPErdiW45ujM17YwmmaXbLmTM9hzyjHU1QBWcc1kLyYfayDzyT2N/HVysQ98/988xwK7hf1J3UYBQHC3DOdLI1A0XiHW9CMLYj07ncXDrDxO4hJyy/eIRZ5DRQsJoaNtX2tASFDSSzL4/kQovqB46WL/Y4n3dt0/1fxIur/womHfJvyK3tGh7ZjsciD42J4ePPD//QBa3ZnBEbpZ+tCLDUwQZNFCx/5wPKnrr+0v/sn8I4gZiIKnwjvvAZBemb3m3F7yvFsdhGFPXnXqGo5MebtRfNtOdkNGvpes8QgmVOtQ0LB+WOgRr5SuERhxRGISf0foTzoFAMQMEAAA=" + } + }, + { + "ID": "8cdcf94b53ee6ddd", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/jgmHSBBl6pYFg3fOmZcWWwYIjhF?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:29 GMT" + ], + "Etag": [ + "3MQ3YIqcZ2Yc6vRl1FcFeA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3WrCQBCF32V6G0EreBHwwojBQGxrRCSWUtbN5K+72ZidVELIu3diejV7Zr85c6aHn6JKwIVbkd1bbLqXDOk4PiK0rSLLpTaVRXAASWRMLg/HZRzc5fU1lqvfSC186eNmvWbCyhy1ALeHtECVWHA/e6iERh5L599MUFeP4u182EXBlhvaJFMjDDdeuIPha3CgNLcIU2ywkji61Y0pUVIwBrW5UarTopolqM2M0BI8J56/Zab3J89Tqzr2s2X6rq/ycnnEQZn7TCkjBRWmYvB8Al5EhoSKzIOTwgL+tdex6UdjJFqLo+l8WrA1ulZInIiaFh2Qgs/dFzTp4Q+exbZmSwEAAA==" + } + }, + { + "ID": "88a1b354e410eca1", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonc5e34387334449aa7014616835fabf4157efc596/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:29 GMT" + ], + "Etag": [ + "c9XTRKCuV7q/0DR2N8afjA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8onW0aEBHk7l4aZF+obuAQZ+VkkpmU52toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwnrGSvVxgIhAIkXbdhwAAAA" + } + }, + { + "ID": "3b512c73727b1a3c", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "263" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIEB2YWwiLCJxdWVyeVBhcmFtZXRlcnMiOlt7Im5hbWUiOiJ2YWwiLCJwYXJhbWV0ZXJUeXBlIjp7InR5cGUiOiJCT09MIn0sInBhcmFtZXRlclZhbHVlIjp7InZhbHVlIjoidHJ1ZSJ9fV0sInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiTWdYNWgwSHpteVlpSFVIVnhkbm9UdFpzNnRpIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:29 GMT" + ], + "Etag": [ + "nHk9tTrK51ZxbyVFbEI8vg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41Sa2/TMBT9K8h8bZslTdqk0sRGl9GI0kGbFjaEKse5Sb0ldma7ZWXqf+cm2QaCMfHJj3vOPfdx7skNFykZkYTnt1tQ+9fXMiEdAobm+CsmN4GJ1XvPvrpL9qvzJIz8XX58jAhes/RGFsW+pKKbQim7BrQZLRe9D/kXb3M0+VHuL/lkOVndpULG5koPDEemhiKbcnGD/I0xlR5Z1qN6L5cyL4BWXPeYLJ/+rZ1jVUpeAzPaekbUwqq19YLsm0IyargUx8sFlrDVoNZQUl5gEXWCrpKJNCfPpO5xWvZyxO84A8qY3ApT14ZZmBQZz7eqSUxG96Sp9bcLWYTTcBy/OtnRAvEppuOiQcc0KaBGPnQV/WOaNYsaqqFFrBMAZzhI0sCzbdfOBgPP86k9dIN+wILUcx3WB+eoT5FnaomGRYUUQcb6RxkEWQau4yWua7s+GwyYzTKa2czxXT9NEuqSA/algBo447qSmre9kfE8PI3DdXS+noXhWXiGAt8V/xP1eR4hKJ4vZ2NEI6ZSXCKsnkU0i8P56TiOVmG7gSnklO0Xt7iDjBYaOu3YPlJFSzCgNBl9vScCH8huJ1g9xuJ91YzPNCd5e3ExrSt/iq9osW0Au/ZCjMLjcPiGIPRKSyefluH8krRfc8hAgWD/uRVkNNGXrf7oOgSi71BIG3yjC5iuZZpB127gTY+2N3Qcfzj0A98JSANW5q9Y4AxJ55fV6oxQgjAPPbWWw1Zbsa1+AmEQFzOLZu8w+hMHdwIk+QMAAA==" + } + }, + { + "ID": "25a24c100d1c987e", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/MgX5h0HzmyYiHUHVxdnoTtZs6ti?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:30 GMT" + ], + "Etag": [ + "cMe4UxitIviAQT4MMAgf2Q==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3W7CMAyF38W7BYlNbBeVuCgTUpFaGIxO+9E0hdQtYUncNWajQ333ubAr5zifj49P8Gl8ARFsTfV1wKa9qpBX/WON4WA5SKnJB4QBIKtKSJ3hOD8ann+beLUZZ1lclTeryUSIoHfoFEQnKA3aIkD0dgKvHMpYOfoQgtu6F9PlMp3FC2k4KvrGIk/TeJrOoHvvBrCn7RpLbNBr7N3qhvaoed4HDTuytnXKDwt0NGQMDOeJ829WPd/uRsmva19MkidPx8LThl/DHRuhLGnFhryA+SPIIiZWdk0/khSu4V9PWzF9aEhjCNibji4L7snVFlkScXPAAWgl5yaGL7r7Aw78YW5LAQAA" + } + }, + { + "ID": "9843d83857eafa00", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon9fc30fe9ffe425b44148c66c1cfaf1c2848dbba4/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:30 GMT" + ], + "Etag": [ + "dxSHkKOAd4KsqW0FQm4mZg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qnVAR7ZHv7O6aYeBcXhhu4Beaa5Eal29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwqXFJWmKtXGAiEA9xmoHHEAAAA=" + } + }, + { + "ID": "adc08435ff40d901", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "264" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIEB2YWwiLCJxdWVyeVBhcmFtZXRlcnMiOlt7Im5hbWUiOiJ2YWwiLCJwYXJhbWV0ZXJUeXBlIjp7InR5cGUiOiJTVFJJTkcifSwicGFyYW1ldGVyVmFsdWUiOnsidmFsdWUiOiJBQkMifX1dLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IjdHNFM3clM1VlNoZVBqNzhlNU5oYW50QXdTZCIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:30 GMT" + ], + "Etag": [ + "X0/LHROGCcSjAGN6gTif/w==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Sb2+bMBDGv8rkvW1DQvgTIlVrlrIsUsQ6IN2maYqMOYhTsKntpIqqfPcd0HbT1lV7hfH9nnvuzvdAbrnIyZRkvLzbgzq+3cmMnBEwtMTbr0Nr9TH+tJizZDdbRF6Z8sK6v7hAgrcqvZVVdaypOM+hlucGtJmuk4G/cBJfJe5NsoXrnT8BN9pSYWb3SY5KDVWx4uIW9VtjGj21rCf3QSllWQFtuB4wWT/fWwfbapTcATPaesHUwqq19Yrtu0oyargUF+sES9hrUBuoKa+wiDbBuZKZNJcvpB5wWg9K5A+cAWVM7oVpa8MsTIqCl3vVJSbTB9LV+tuBJOEqnKdvLg+0Qj7HdFx0dEqzClrysavlP6bZqqihGnpikwHYvpflgTsaOaPC81x3Qke+E4wDFuSuY7Mx2MMxRZ1pLToVFVJ4OXV9h7pj6jFwAi+bOMU4CNzctQPHoRNgwwwy3yEn7EsBNXDFdSM173sj8zicpeFm+WETheFVeIUG94r/SX2Jlwil8TqaI41Mo7hErJ3FMkrDeDZPlzdh/wIrKCk7Jnf4BgWtNJz1Y7umitZgQGky/f5ABP6gup9g8xRLj003PtN9SZLGy2jR1v5M3NBq3yGH/kBm7+fkdPqBDC5Lryef12H8jfRXMRSgQLD/fBZUdNHXd/1p7RDExUMjbfAf14Dp1qabdLsOvGty5Pq2PfH9YOg6HulgZf6K+Z5Pzn7tWpsRahDmsad+57DV3myvnyEM4stE3aROPwHXrpdr+gMAAA==" + } + }, + { + "ID": "3ca3a29ac933fd51", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/7G4S7rS5VShePj78e5NhantAwSd?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:30 GMT" + ], + "Etag": [ + "w2RCs+V11RWRgVPCk4AvJg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3WqDQBBG32V6WQOxJKQIuTBS0hQRuzbJRSllo+NPsu5ad6yI5N07Jr3aPeyZb74d4VLpDDw4VcVPh+3wUCC9TxeBtlNk+WiMtggOIMmCzf5JBPbx4LriKIpDHFwW/u9bsV6zYdMSawneCHmFKrPgfY6gZY08ls+/2aChmSD5ELtoy1ybbOJoH4b+JnyB69fVgbM5CcyxRZ3iFNa05owp7aaetjRKDbXUswxrMyO0BLeJ2+tqu0hWbbI8JCXG59UzLqNSavL7JGNLmVRSZTSL+wR4ERmSSpiei4IL/7wZODRuTYrW4hQ6vy8ITN0oJG5EbYcOpJJ/+1rRna9/F8V9qEoBAAA=" + } + }, + { + "ID": "2ba376fa2c915191", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon6da574a53a6ce496b84f3995d52944a8ec0beb74/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:31 GMT" + ], + "Etag": [ + "pXPF0HaBC9nGh4B2h1toxQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8oXRAS4GXgkOjlb5rlnmDgZZRiW5FcE2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwo7Ojkr1cYCIQDOHZWmcAAAAA==" + } + }, + { + "ID": "291a7059bc437e0c", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "264" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIEB2YWwiLCJxdWVyeVBhcmFtZXRlcnMiOlt7Im5hbWUiOiJ2YWwiLCJwYXJhbWV0ZXJUeXBlIjp7InR5cGUiOiJCWVRFUyJ9LCJwYXJhbWV0ZXJWYWx1ZSI6eyJ2YWx1ZSI6IlptOXYifX1dLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IjBFRVVUaTBwT0VZaldCNW1wV1JheEJ1c1h3biIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:31 GMT" + ], + "Etag": [ + "VQTSvfZeAuxFJfzX06AffQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Sa2+bMBSG/8rkfW1CICGESNWapu6UKUpXQnqbpsiYA3UKNsUmbVb1v+8AbTZtXbVPvpznPfcncidkTMYkEul9BeXu40ZF5ICAYSn+XpyHy21yA5Pq8fRL8uOqN5wkyfnhIRKiVulblWW7nMlODLnqGNBmvFp2e5SuQtErzuj15vLYzYvLgD0eV/rqQaJSQ5bMhbxD/a0xhR5b1mv0bqpUmgErhO5yle//ra1jFaXaADfaeiOohVlr652wnzLFmRFKHq6WmEKloVxDzkSGSdQOOqWKlDl6w3VXsLybIr8VHBjnqpKmzg29cCUTkVZl45iMn0iT628XsqRzOg0/HG1ZhnyM7oRs6JBFGdTkS1Wzf3SzVjHDNLTEOgJwvGEU+65tD+xkOHTdEbO9gd/3uR+7A4f3wen1GepMHaJRMamkN4y9QeRG4PV9xxv5dhxH0B/a8ShxeBInwNEBA588Y10lMAMnQhdKi7Y2Mg3oJKTr2el6QekJPcEAD6X4k7oMZgiFwWoxRRqZohQKsboXs0VIg8k0nF3QdgJzSBnfLe9xBgnLNBy0bfvKSpaDgVKT8bcnIvGB6raDxast3BVN+0xzkuPrkC7r1PfABcuqhti2F3KT+1vy/PwdIVyWVk/OVzS4Ju1XAAmUIPl/jgUVjfX9XX9dOwRXTYLa4BvXgOs6TNPpeh1EU6Tteo4z8jzftj2fNHBp/rL1bYcc/Nq12iPkIM1LTe3OYaltsErvITTiZBazxWe0/gRH4cGL+gMAAA==" + } + }, + { + "ID": "0b6cb470a6ff49df", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/0EEUTi0pOEYjWB5mpWRaxBusXwn?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:31 GMT" + ], + "Etag": [ + "o5M+5xutMzmwl/SRISxabg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PTU+DQBCG/8t4lEY8cCHpQQyJTVo/oKQ2xpgFphTc3UF2SIuE/+7Qetp9ss+88+4I37UtIYS8rn567IabCvltviToes1OjpasQ/AAWVViUrC5Dc49b37NSd+lySo9q7xaLsVwxRGNgnCEQ426dBB+jGCVQRk7+F9i8NDOEO23cSpoqJzxOVuvH6J1DNPn5EFDeYIH7NAWOGe1HTVY8Gqu6Y6k9WCUXZRoaMHoGC4Tl1c/jrNt7bcv8b7ZRYFpd4k6R717P1mxNBWKa7IiZinIIiZWOqGT9IR7+OdokNDXjgp0Di+h1wWPZFqNLI2469GDQslnn2q+8vQHCZ2xXUkBAAA=" + } + }, + { + "ID": "47ae4302fd9a13a6", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon76d74b5be73927891ddbe361d8f2cfdfec9c9ae9/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:31 GMT" + ], + "Etag": [ + "6zjPuiNZCcmMgaPqh+EexA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qbVWUFlGb6RTkn5/qmJwYUZmi7plY42toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwpH5VqWKdXGAiEAHvgGyHEAAAA=" + } + }, + { + "ID": "0a9e2d776e9ff105", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "289" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIEB2YWwiLCJxdWVyeVBhcmFtZXRlcnMiOlt7Im5hbWUiOiJ2YWwiLCJwYXJhbWV0ZXJUeXBlIjp7InR5cGUiOiJUSU1FU1RBTVAifSwicGFyYW1ldGVyVmFsdWUiOnsidmFsdWUiOiIyMDE2LTAzLTIwIDE1OjA0OjA1KzAwOjAwIn19XSwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJtWkFCSmhHaE5PQ3RYUW02bFNZVW5Tcm9GVG8iLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:32 GMT" + ], + "Etag": [ + "tRJgAEsltOZCoP6L9dKPFA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41TW0/bMBT+K8h7HG3sXJtIaHQloEApJUnZYJoq13VTQxKH2O1UVfz3nSTAJsTQnmL7fJdzyx49iHKJArQQ2eOG17tP93KBDhHXNINXHZ9nw1Dl+upuJKfu2F9eTE+HR0eAEA1LrWWe7wpa9pa8kD3NlQ5mSb+4G349X5+tJ1cj/f26cPPkdlYmtTxNJTAVz1djUT4Af611pQLDeHHvZ1JmOaeVUH0mi9d3Y2saVS3vOdPKeMfUgKyV8YHtl1wyqoUsj2YJpLBRvJ7zgoq8KRIEerVcSH38jnRf0KKfAX4rGKeMyU2pm9xAhclyJbJN3QqjYI/aXP86oCQch6P04HhLc8AvQU6ULTqli5w3yOeqon90s2FRTRXvEPMF56bnLpa+Q4hNVq7rOANKPNu3fOYvHdtkFjexRYGnG4uWRUtZuhYZ2K5pOtwjFsM2sSkxfX+AvUaDMUKoRZi/Qk9QV82p5idCVVKJrjY0isNhGs6j0/kkDE/CEzD4VYu3qG9xBKA0nk1GgAZMVQsJsKYX0SQN4+EojW7CbgJjnlG2Sx5hBiuaK37YtW1Ka1pwzWuFgh97VMIF2F0Hq5dYuqva9un2i9LoMkzS4eW0Sf8VdEPzTYvadgdkYuL2sNUz8QFxAmwH2PmMcYAxenr6CUzYok4YXc/C+BZ1TzFf8ZqX7D/nBYw2+vFP8LKPAISNBCOl4Q77wVRj046g2RPRVk8czzQHnucT38WoBdf6bczEno8O/yxho8gLXurnmrplhFI7s416BUEQRjaJJmcQ/Q0apn1ZEwQAAA==" + } + }, + { + "ID": "cf3ea2b10249c734", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/mZABJhGhNOCtXQm6lSYUnSroFTo?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:32 GMT" + ], + "Etag": [ + "wEb4r8g8wAqbe+ZOJubdww==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3WrCQBCF32V6WQULpYjgRSK2VfxNFFpLKZtkTGJ3d+LuhBDEd+9EezV7Zr85c+YCv6XNYARJmZ9rdO1DjrztHhH6WrOXUpH1CD1AVrmQzTR5dsN82ATnBB8P63mdZE0zHgvh0wKNgtEFjiXqzMPo6wJWGZSx4+BHCG6rTuxmy2m8C5YbaRnKutZqv1gE4WIK1+9rD06URHhEhzbFzq9ydMKUZ11UX5DWrVG2n6GhPqNnuE3cfs0hCOfFW7FaT/hja150/Lm3saPXHQmlKVVckhVwH4MsYmKlI2okKzzBvw5bMd04StF77EwH9wUTMpVGlkTsauxBquTg95Lv+voHlDT19U0BAAA=" + } + }, + { + "ID": "9b9a03a9846584be", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon631846225e713c0414a12998076655cc11a31c9f/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:32 GMT" + ], + "Etag": [ + "PJzSqkZmDjY51CeDabfgeA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8oHeFUFF2ZH5bpkRZoaOgMVJKWlpzra2gJVlOSXJOYE5ZcXA5UZAvlFYGZ0tVIamCwDCZuYWphYmBmZmOoZKNXGAiEAlmZrgXkAAAA=" + } + }, + { + "ID": "97470ee9856725b8", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "374" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIEB2YWwiLCJxdWVyeVBhcmFtZXRlcnMiOlt7Im5hbWUiOiJ2YWwiLCJwYXJhbWV0ZXJUeXBlIjp7ImFycmF5VHlwZSI6eyJ0eXBlIjoiVElNRVNUQU1QIn0sInR5cGUiOiJBUlJBWSJ9LCJwYXJhbWV0ZXJWYWx1ZSI6eyJhcnJheVZhbHVlcyI6W3sidmFsdWUiOiIyMDE2LTAzLTIwIDE1OjA0OjA1KzAwOjAwIn0seyJ2YWx1ZSI6IjIwMTYtMDMtMjAgMTU6MDQ6MDUrMDA6MDAifV19fV0sInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiamZQcnRyckp1ZG0wbWxnRXF2ckJXbUFiSzczIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:32 GMT" + ], + "Etag": [ + "Ua8fssOygsr4QpDmAGK2+g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41Tf0/bMBT8Ksj7E9rmV5smEhpZm6EO6CBNQWiaKid5CYYkTm23U4X63ffiAEKMIaRIiX13757PL4/kgdUZ8UnCivUGxO7LPU/IEQFFC9xd0nEu5c9dIYVz1Uyr4PTMOiyOj5HBWpW842W5q2jdy6DiPQVS+ctF/z6/FEqIH5usMqqyCNdb8e2mCpIz10alhDI/Z/UD6u+UaqQ/GDy79wvOixJow2Q/5dXL/mBrDRrB7yFVcvCO6QC7loMPbL+WPKWK8fp4ucAWNhLECirKSmyiLdATPOHq5J3SfUarfoH8LUuBpinf1KrtDaukvM5ZsRG6MPEfie711QdZhOfhJD442dIS+RmWY7VmxzQpoWU+nWr2nzRbFVVUQsdYJQCWO0oyb2iajpmPRsPhmJqu49le6mVDx0ptsAybok61FlpFa16nrkk9IxmN08y0wLU8xzassWWPaOaMEhibjmPaWQ5kj+cSQBVMmWy4ZN3ZyCQKgzhczb6v5mE4Dado8Eewt6ybaIakOFrOJ8hGTiMYR1qbxWweh1EwiWfXYXcD51DQdLdY4x3ktJRw1MV2SQWtQIGQxP/1SGpcoLpLsHnG4l2j41P6TYIoCm4Rp0LQ3Rssnl2Eizi4uCT7/asK17TcaJrW6FVnuO0AYhnmqGfYPcs4MIe+4fjG8NAwfMPAiD7F+r3H54jgaHYdkatlGN2SbiuCHATU6SeHABUa/fjPeh7y9s9dtEZS4RqHLpWtjb7XdviYjtQcupY1dl3Pcl2HaLJQ/2Bjjb1MdlsRKqjV05m6CdfRttBGvpAQxDmYz+aniP4F7Ftol2gEAAA=" + } + }, + { + "ID": "2c05b964dcd7b199", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/jfPrtrrJudm0mlgEqvrBWmAbK73?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:33 GMT" + ], + "Etag": [ + "83dkhuH3Ku7WZ0KbVzyuHA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3U7DMAyF38XcdlLRLoYq7aKDShvVpNIVJoEQSlv3b0nTJQ6oTH133I0r5zifj48vcGr7EgLI2/rs0Ix3NdLL/EjROkmWy6B7i+ABkqiZfFiWp8Ztl7FbHd/9OH/7Hd02XK+ZsEWDSkBwgapFWVoIPi7QC4U8VvlfTNA4zCLb7aNDFu4Tbildzq00SqIwi55g+pw86HSeYoUG+wJnv8HoDgvazVFto6UclegXJSq9ILQE14nrb1clhox5dqXylayj87fZHFWYx6slU1IXglrdM/h6AF5EmoRM9Q9nhXv415uRTROjC7QWZ1P/tuBRq0EicSIyDj0oBB+8bemmpz/bzJrMTQEAAA==" + } + }, + { + "ID": "0abf637163c0e021", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonc71a90b68cd12e72943028236ad46be814413dfe/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:33 GMT" + ], + "Etag": [ + "qV6Ty3CsePmRIjlSQFwLWg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8oXhpmFVBo7F6cG5AZ5ZuUEB7qV+4Sn29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsg5FKhiamFiYWZkYmpnoGSrU62ARjwRAA2mrJiJYAAAA=" + } + }, + { + "ID": "531f33a22b0b1228", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "289" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIEB2YWwiLCJxdWVyeVBhcmFtZXRlcnMiOlt7Im5hbWUiOiJ2YWwiLCJwYXJhbWV0ZXJUeXBlIjp7InR5cGUiOiJEQVRFVElNRSJ9LCJwYXJhbWV0ZXJWYWx1ZSI6eyJ2YWx1ZSI6IjIwMTYtMDMtMjAgMTU6MDQ6MDUuMDAwMDAzIn19XSwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJ0RUhoNXBSakJQUjNWQ0lDS082WHlHc1dTcmsiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:33 GMT" + ], + "Etag": [ + "RXC7X9hj/Ft5Q+5/2gKyFQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41Ta2+bMBT9K5X3cU14GgJStHaEdqhd1hDSdpqmyBhDnAKm2MkUVf3vu0DbTVtXjS/Y955zz335Ad3xOkM+Snlxv2Pt4d1WpOgYMUUKsMa3gXvrbbbamcKL91gzi4vD2WI6BQTvWHIjyvJQkXqUsUqMFJPKXy3HKvy0wU28/XgVW9dBFFx8cW4P5/Jm2d4BU7Iyv+T1HfA3SjXS17Rn9XEhRFEy0nA5pqJ6sWt7U2tasWVUSe0VUQ2yltobsh9KQYniop6ulpDCTrJ2zSrCS0iiCzBqRSrUySuhx5xU4wLwe04ZoVTsatXlBlGoqHNe7No+MPIfUJ/rbwe0DC/DIDk62ZMS8BmE43WPTkhasg75VFX0j252LKKIZANinTJmuk6aedgwbCN3HIwnxHBtz/Kol2HbpBYzdYsAT3USPYvUonb1zLUc1zYJNXHm5baNU+aAhTguBLWc1LJyOsHoEepqGVFsxmUjJB9qQ0EcnibhOjpbz8NwFs5A4EfL/0TdxBGAkng1DwANmKblAmBdL6J5EsanQRJdh8MELllB6GF5DzPISSnZ8dC2K9KSiinWSuR/e0A1XIA9dLB59iWHpm+f6v9oBmpJ9Dnssn/BXJNy14P2wwGZuuGMdGtk6kcG9nXb1/FY7z4LPT5+Byps0RAYLVZh/BUNppjlrGU1/c95AaP3vv0InvcRgLCRICQV3GE/qOxk+hF0e8L76g3smubEdT3LdCaoB7fqL5/lYXT8awm7iKxitXqqaVhGKHUQ28kXUPfSV/N5ND8H70+MoY2fEwQAAA==" + } + }, + { + "ID": "eb0bcbc6d2d530a6", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/tEHh5pRjBPR3VCICKO6XyGsWSrk?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:33 GMT" + ], + "Etag": [ + "nx1vnOWlIZlpLTw4I5vkpw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PQU/CQBCF/8t4hQSieCDhQGsjjVWwFDEaY5btFArb3bU7pTaE/+4seJp9s9+8eXOCQ6lzGMOm3P40WHc3W6RX/0jRNYocF2u0Q+gBktgyqX+HRz1fq/hD2SRr7+LR8WDbyYQJJ3dYCRifoChR5Q7GnyfQokIeKwbfTFBnvXiYZlEWP0fcqUzuOy+rJJkGSQTnr3MP9maTYoE1aoneztZmj5Jin9TtjFJdJXQ/x8r0CR3BZeLyS9FsN7LpPlikt29hHD7N79+7R7de1gemlJGCSqMZXC2BF5EhoVLTclQYwr8OOjZd1Eaic+hNB9cFoamsQuJEVDfYAyn43llJV33+A4RNWM5MAQAA" + } + }, + { + "ID": "b9a271f14e108d65", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon70d736742ac25d9f445be6367a67bee36b33fc85/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:33 GMT" + ], + "Etag": [ + "fxmspMvMESqTkEM0r+XTCg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qnVeQWF/iW+boGF4Zku/oaFGlHhDin29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwobGRia6RoY6xoZhBiaWhmYWBmY6hmAgLFSbSwQAgA/ounPhwAAAA==" + } + }, + { + "ID": "ff0899ea448a3ea5", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "269" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIEB2YWwiLCJxdWVyeVBhcmFtZXRlcnMiOlt7Im5hbWUiOiJ2YWwiLCJwYXJhbWV0ZXJUeXBlIjp7InR5cGUiOiJEQVRFIn0sInBhcmFtZXRlclZhbHVlIjp7InZhbHVlIjoiMjAxNi0wMy0yMCJ9fV0sInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiQTJEbjVaZEc1aFowSUhZUmFETEhWUjloRVBHIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:33 GMT" + ], + "Etag": [ + "nXLLlyvkavk2JcTUG++7jw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SYW+bMBCG/8rkfWwTAgQIkaq1SljKFEUdId3aaYqMOYgbsCl2UkVV/vsOaLtq66p9wvieu/fu/D6SLRcpGZOE5/c7qA8f72RCTglomuOt+D6fF4f9lu631hcWr2YnJ97dw9kZErzJUhtZFIeSil4KpexpUHq8WvYvrKlwbtOZs7kdhJc3EZ3OL68jfxNczTBTQZHNudhi/kbrSo0N41m9n0uZF0ArrvpMli/3xt4yqlreAdPKeEPUwK6V8Y7sp0IyqrkUZ6sltrBTUK+hpLzAJpoCvVomUp+/UbrPadnPkd9zBpQxuRO66Q2rMCkynu/qtjAZP5K211cHsgzmwST+cL6nBfIpluOipWOaFNCQT1OF/9hmk0U1VdAR6wTA8twk9R3THJqZ6zrOiJre0Ld95qfO0GI2WAObYp5uJNosKqSgpjtiziiz0yGktk+9lPq+n4BjppRZbpIxJ7PczCRHnKsGqmHKVSUV72Yjkyi4iIN1+Hm9CIJpMEWBh5r/SX2LQoTiaLWYII1MVXOJWLOLcBEH0cUkDq+D7gXmkFN2WN7jG2S0UHDare2K1rQEDbUi4x+PROAPZncbrJ5j8aFq16fbL5k2asdX8Wta7Fpg3x2INTDd3sDuWQNyPP5EFB3TFSFfV0F0Q7qrCDKoQbD/fBvMaKPvG/7Zewii+1BIafxHLzDVyLTrbjzB20lNx7Oskef59sgakRau9V8x3x6Q09+GaypCCUI/zdQZD0ftxHbqBcIgPs8iXMww+gswia9k/wMAAA==" + } + }, + { + "ID": "7248799baf41dd7c", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/A2Dn5ZdG5hZ0IHYRaDLHVR9hEPG?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:34 GMT" + ], + "Etag": [ + "YJwb4caWBuH1VqWhai1ccQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3W6CQBBG32V6qwk09aIkXkAxYkMapVWjTdMsy/Bjl11khxhCfPcO6tXuyZ755tsB/iqdgQdpVZw7bPunAmkzXhK0nSLLR2O0RZgAkijYPLxf0hcp9kEXubvzvhSVK+VmPmfDyhJrAd4AeYUqs+B9D6BFjTyWO79sUN+MEPpfC6baZCN9bOPYD+IFXH+uEziZNMEcW9QSx6imNSeUtBpb2tIo1ddCTzOszZTQEtwmbq/+c6hnx2w5K4/OKjokIoyjXfJaLtZLtpSRgiqjWdx+Ai8iQ0Il5sI1wYUHBz2Hrlsj0VocQ537gjdTNwqJG1Hb4QSk4L9GFd35+g+lhsOHSAEAAA==" + } + }, + { + "ID": "98a9ea63df2755dd", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anona168c58f3d4ed39a7da999be51dac26bfc5f26f1/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:34 GMT" + ], + "Etag": [ + "vOyD2fkNLNp00/0rQoTvWA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qX+Ve6GKVl+/n4FRgY6BsUBeaHlIU72toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwobGRia6RoY6xoZKNXGAiEAFeEMeHcAAAA=" + } + }, + { + "ID": "eafe3b51c0cf5dca", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "274" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIEB2YWwiLCJxdWVyeVBhcmFtZXRlcnMiOlt7Im5hbWUiOiJ2YWwiLCJwYXJhbWV0ZXJUeXBlIjp7InR5cGUiOiJUSU1FIn0sInBhcmFtZXRlclZhbHVlIjp7InZhbHVlIjoiMTU6MDQ6MDUuMDAwMDAzIn19XSwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJ2WG81VkNXdkxtOHFSazhWMHRiVWpDQWxFNWoiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:34 GMT" + ], + "Etag": [ + "GMRSv6/xOoU06NMVKRtBFA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41S226bQBD9lWr7mpiLuRikqHEdEqE6Toux06qqrAEPZB1gCbumtaL8ewdI0qpNo/LC7s45c+Zy7tktr7bMZwnP7/bYHN7uRMKOGCrI6fXiMlq2jvbjSqx0Z3G5/hCp9+fTkxNC8I4lb0RRHEqojrdYimOFUvmr5aj9LOz17Lqdl5O76Hay1lWy2s2mRWDviCmxyOa8uiX+jVK19DXtSX2UC5EXCDWXo1SUz+9aa2p1I3aYKqm9IKpR1VJ7RfZdIVJQXFQnqyWVsJfYbLAEXlARXYLjRiRCnb6QesShHOWEb3mKkKZiX6muNsqSiirj+b7pEzP/nvW1/nZgy2AezOI3py0UhN9SOl716BiSAjvkY1fhP6bZsUCBxAGxSRBN10m2nm0YlpE5jm1PwHAtb+yl3ta2zHSMpj4G4qlOomdBJSrXRMuCBJOtk1lg6oltJKbnjD0bHEhN3dZhkliQsQfqq0FQeMZlLSQfemOzKJjGwSY83yyC4Cw4I4HvDf8TdR2FBIqj1WJGaMLUDRcE62YRLuIgms7icB0MG5hjDulheUc7yKCQeDSM7SM0UKLCRjL/6z2r6ELsYYL1Uyw+1P34VP9ncXgZdJU/x9dQ7HtAOxyYYfu65ev2SO++MXt4+EZ4ss2QiX1aBdEXNjxFmGGDVfqfCyJGH33d9U8GJCBZkISkojsZIpWdTD/zzhi8HMp1TXPiup7l6BPWgxv1V8zVDXb0y3VdRiyxUo89De6jVgexvXwGUZB2tAgXFxT9CVQdw8UEBAAA" + } + }, + { + "ID": "169ee25ff277e0be", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/vXo5VCWvLm8qRk8V0tbUjCAlE5j?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:34 GMT" + ], + "Etag": [ + "hLnzuafks7Zo8lfk6yriow==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3U4CMRBG32W8hWS9QDckXAAhkWQ1ugoajTGlO/vbdpbtLGQlvLtT8Ko96Zlvvp6gqVwGU9hVxb7HbrgpkF/CJUXfG/ZytOQ8wgiQVSFmmbjfXuWNv/+k2OTN3dBVdJzNxPC6RKtgeoK8QpN5mH6dwCmLMpZHP2Lw0AZ4Wz+uhCxlgZ42STJfJCs4f59HUNMuxRw7dBpDVNtRjZrXoaUvyZjBKjfO0NKY0TNcJi6vhw+abJfvh8TG+7SJtxHvNvVyblaTWixDWnFFTsTNK8giJlYmpaPUhFv458Ugoc8dafQeQ2h0XbAk2xpkacRdjyPQSv76UPGVz39p3CSrSAEAAA==" + } + }, + { + "ID": "e73c60e3687e7b60", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon72e44abebd6f4a20b51b296395a6ac2050a8b4af/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:35 GMT" + ], + "Etag": [ + "uaAZrbCrIaQIoDoJ+VKp8g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qXJjpGFSU5F3kmBnrmu+R7aYd5F1ik29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwmbWhmYWBmY6hmAgLFSbSwQAgCWElj9fAAAAA==" + } + }, + { + "ID": "46f7f4728a747204", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "936" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIEB2YWwiLCJxdWVyeVBhcmFtZXRlcnMiOlt7Im5hbWUiOiJ2YWwiLCJwYXJhbWV0ZXJUeXBlIjp7InN0cnVjdFR5cGVzIjpbeyJuYW1lIjoiVGltZXN0YW1wIiwidHlwZSI6eyJ0eXBlIjoiVElNRVNUQU1QIn19LHsibmFtZSI6IlN0cmluZ0FycmF5IiwidHlwZSI6eyJhcnJheVR5cGUiOnsidHlwZSI6IlNUUklORyJ9LCJ0eXBlIjoiQVJSQVkifX0seyJuYW1lIjoiU3ViU3RydWN0IiwidHlwZSI6eyJzdHJ1Y3RUeXBlcyI6W3sibmFtZSI6IlN0cmluZyIsInR5cGUiOnsidHlwZSI6IlNUUklORyJ9fV0sInR5cGUiOiJTVFJVQ1QifX0seyJuYW1lIjoiU3ViU3RydWN0QXJyYXkiLCJ0eXBlIjp7ImFycmF5VHlwZSI6eyJzdHJ1Y3RUeXBlcyI6W3sibmFtZSI6IlN0cmluZyIsInR5cGUiOnsidHlwZSI6IlNUUklORyJ9fV0sInR5cGUiOiJTVFJVQ1QifSwidHlwZSI6IkFSUkFZIn19XSwidHlwZSI6IlNUUlVDVCJ9LCJwYXJhbWV0ZXJWYWx1ZSI6eyJzdHJ1Y3RWYWx1ZXMiOnsiU3RyaW5nQXJyYXkiOnsiYXJyYXlWYWx1ZXMiOlt7InZhbHVlIjoiYSJ9LHsidmFsdWUiOiJiIn1dfSwiU3ViU3RydWN0Ijp7InN0cnVjdFZhbHVlcyI6eyJTdHJpbmciOnsidmFsdWUiOiJjIn19fSwiU3ViU3RydWN0QXJyYXkiOnsiYXJyYXlWYWx1ZXMiOlt7InN0cnVjdFZhbHVlcyI6eyJTdHJpbmciOnsidmFsdWUiOiJkIn19fSx7InN0cnVjdFZhbHVlcyI6eyJTdHJpbmciOnsidmFsdWUiOiJlIn19fV19LCJUaW1lc3RhbXAiOnsidmFsdWUiOiIyMDE2LTAzLTIwIDE1OjA0OjA1KzAwOjAwIn19fX1dLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6InR4ckZBOGJGeWdiakxkeDZOTVg5S3VGa1VQbSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:35 GMT" + ], + "Etag": [ + "vGfUgrpbmydQEq+rnQ4C1Q==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6VUa0/iQBT9K2b2owJtoRSamJVgMWSVSFvcNZsNmU6ndbQvp1NWYvjve2cKiIK62f1A4M4959wn9xk9sCxENgpY/FhRvvxynwfoBFGBY3hdXESzmBdBugynzuMxz6adoT49PQUEk6zyLk+SZYqzRkjTvCFoKeyZ1xRPfDToBaNlHNxfhk/dydWP/rdq9DC7ToFZ0iS6ZNkD8O+EKEq71dpEb8Z5HicUF6xskjzdvrcWRqvg+T0lomwdCNqCrMvWB2G/JjnBguXZ6cyDFKqS8jlNMUsgCSnQ4HmQi7MD0k2G02YM+AUjFBOSV5mQuYEKybOIxRVXwsh+RirXnR/Icy6doX90tsAJ4EOQY5lC+zhIqESuqxq/003JwgKXtEbMA0oNqxuEfVPXO3rU7ZpmD+tWp9/uk35odgzSpobWxsATMoRi4SzPAsuMIiOyjJ5BzA4J9a6Fu6HZ65hWP6Ltfog7UtJCK6iLUyzoOSuLvGR1bWjoOgPfmY9H84njnDvnEOA3Z29R390xgHx3NhkCGjAFZznAZC/GE99xB0N/fOPUE7ikMSZL7xFmEOGkpCd1264xxykVlJfI/vmMMjDkJqoOFhufvyxU+4T6Rh6EHPpytwSviJDeV2yfpdBMnBayL6+p/vjK8fzB1TVarU62BE9wlsUDzvFynzJw3cEtPGPp3s9kPLkArV2xKvBUXvtSnyVe53GQV4f5dTDQvyX+35nAZ2dGNzipFLJWVGYp7d3mgqmy2Xgh4KLmIYxkaRsrQEr9pZfvCstfGxZRk3jbmANBP5cK10P9HEnRuhUva7fjNTS929DaDUM70k1b69iaeaxptqZJlqLBMauHg6Yzx71F9ZNLI8ppRv7ybABDeT++xZuzCEA4jCs5fbDhTBFVm7oE8lwxtQO6aRlGz7Lg+rQNtSqYiz2fYUnf9hZKRZrSTKxrqm+i/LcpV1VuQeCEyzGp1+kPnswsIpoGAAA=" + } + }, + { + "ID": "dc9687f441d2fdc8", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/txrFA8bFygbjLdx6NMX9KuFkUPm?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:35 GMT" + ], + "Etag": [ + "N2sJBMS5YHkEHBaILy1pIg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6WSUU+DMBSF/0t9xWQz0eiSPcDGHAqIhSUaY0yBO8ZGKbYljiz77142M+KcLxoe4JTz3XPSdkNWeZmSAYnz7L0G2ZxloB/bDwqqLrTCVyVKBcQgoFmGTv9C3VleePk8XdlTizlu06+cbDhEh0oWwBkZbMg8hyJVZPCyISXjgNi894YO3VStoPbogY5Rc5G22p+5rmm5Nq78JKOcg9KMVx0fOZ4dRqYXnBixNQ5kqGVeZqaUrOnYMKKOf9uB1A5sM7LH38A6RrZO9B8r74N/z+zKvp5KPWp8HH1o/N/o9jHIUsQU5iChTKA9u0qKJSTaaa+FWoiiaDgrz1Pg4lzjQZAdsfur13JiXseTJouXbrq+8r2nm/t6spoFHF2FSJjORYnGWYi7S7TQrKDiA/uSPvnSVoNDAykSUAraob19wEjwqgCNjXBLwCAJw8s1zfVebz8B5wAJ8LkCAAA=" + } + }, + { + "ID": "8b98df71cc20f03d", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonb75ff2f7282c54cd167a6d584579fe39da451147/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:35 GMT" + ], + "Etag": [ + "3tKwmoVejW2WF57RGiO40g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8obl3iX5+aHpWaFG4W7mZoHuWf6mxik29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsU7JCYioZmphamFiYGZmY6hko1eqABaFSiTC+UpJSbSyUjaw3GSSMogdZNgVJFlk8FSweCyMAVWdpk/MAAAA=" + } + }, + { + "ID": "35059da6526c8895", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "827" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUIEB2YWwuVGltZXN0YW1wLCBAdmFsLlN1YlN0cnVjdC5TdHJpbmciLCJxdWVyeVBhcmFtZXRlcnMiOlt7Im5hbWUiOiJ2YWwiLCJwYXJhbWV0ZXJUeXBlIjp7InN0cnVjdFR5cGVzIjpbeyJuYW1lIjoiVGltZXN0YW1wIiwidHlwZSI6eyJ0eXBlIjoiVElNRVNUQU1QIn19LHsibmFtZSI6IlN0cmluZ0FycmF5IiwidHlwZSI6eyJhcnJheVR5cGUiOnsidHlwZSI6IlNUUklORyJ9LCJ0eXBlIjoiQVJSQVkifX0seyJuYW1lIjoiU3ViU3RydWN0IiwidHlwZSI6eyJzdHJ1Y3RUeXBlcyI6W3sibmFtZSI6IlN0cmluZyIsInR5cGUiOnsidHlwZSI6IlNUUklORyJ9fV0sInR5cGUiOiJTVFJVQ1QifX0seyJuYW1lIjoiU3ViU3RydWN0QXJyYXkiLCJ0eXBlIjp7ImFycmF5VHlwZSI6eyJzdHJ1Y3RUeXBlcyI6W3sibmFtZSI6IlN0cmluZyIsInR5cGUiOnsidHlwZSI6IlNUUklORyJ9fV0sInR5cGUiOiJTVFJVQ1QifSwidHlwZSI6IkFSUkFZIn19XSwidHlwZSI6IlNUUlVDVCJ9LCJwYXJhbWV0ZXJWYWx1ZSI6eyJzdHJ1Y3RWYWx1ZXMiOnsiU3RyaW5nQXJyYXkiOnt9LCJTdWJTdHJ1Y3QiOnsic3RydWN0VmFsdWVzIjp7IlN0cmluZyI6eyJ2YWx1ZSI6ImEifX19LCJTdWJTdHJ1Y3RBcnJheSI6e30sIlRpbWVzdGFtcCI6eyJ2YWx1ZSI6IjIwMTYtMDMtMjAgMTU6MDQ6MDUrMDA6MDAifX19fV0sInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoicmhEQXlSM1RVWHdDZEpXeUZYYXlJNEZvRlRrIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:36 GMT" + ], + "Etag": [ + "JElTrp2vPaTxLLvpcXstmQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6VUa2/aMBT9K5X3cTzyIECQqhVBmKgoakPoQ9OEHMekbpM4dQxdVPHfd+0USgfrpu1D5Nj3nHNf9n1BjyyLUA+FLH5aUVF+euAhqiEqcQyn514SiNxaX+Lgx2SyzsltIdOr01NAMMUq7nmSlCnO6hFNeV3SQvbms4a4H/ZL3w7mt8+D6PymHN3ictwa8VHwCMyCJssJyx6Bfy9lXvSaza33Rsx5nFCcs6JBeLo7b66tZi74AyWyaB5x2oSoi+YHbr8knGDJeHY6n0EIq4KKBU0xSyAIJVAXPOTy7Ih0g+G0EQN+zQjFhPBVJlVsoEJ4tmTxSmhh1HtBOta9HzTzJt4gODlb46QRsBTkcJrXqv1sFc6kWBHZgIVlMQhGAGCZlgtwmFAl9Zr2+DflViwscUErxCKk1Oq0w8h1TLNlLtttx+lis9NybZe4kdOyiE0tw8bAk8qFZuGMZ8QgtGu7ZmgTHNrYse2uhd1lm4RL2sI4Ch3Dsa0wQhtIXFAs6ZAVOS9YlTwa+F4/8Bbj0WLqeUNvCA6eBfsVdeOPART48+kA0IDJBeMAU8UaTwPP7w+C8bVXtWhCY0zK2RM0aYmTgtaqul5igVMqqShQ79sLymADbCipktvagjLX5ZN6RTNwOQjU5dMlV9Z37F1zVF3eU4PxhTcL+heXaLOp7QhVz/pC4PKQ0vf9/h0cY2U+jGQ8/Qpa+2Lbq3Ao9afAd3fnkFe5+X7U0b8F/t+RwLfXo2ucrDSyUtTbQu3f6nHMWPmBv3XFR1hXc6+HezbLMNt1w65bxonp9IxWz3A+G0bPMBRHhwOjo8oUXc09/w5VRz5dUkEz8pdvEBja+vHk2w4hAMIY2qhSwh7ePNGZ6Wel3j7TBTWdjmV1Ox3X6UK4Gizkgc3tmqj2NnmUIk1pJl9zqiaQurratCp2IDDCM5xWvfkJXIDUAggGAAA=" + } + }, + { + "ID": "db2be932f840a045", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/rhDAyR3TUXwCdJWyFXayI4FoFTk?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:36 GMT" + ], + "Etag": [ + "7onp6EW68MtfjjprqRc5kA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/22QT08CMRDFv8t4XRKNioaEw4Kga4Dg7hJIjIfSHZYu/Uc7hDSE724XjF48tfP6fjNveoKd0BX0YC3q/QFduKmRPtpLjv4gycfDGu0REkBidXQ+GW27o2X3eUqbprFun/PHXdrvR4fnW1QMeifYCJSVh97nCTRTGLFSKPTElI0+CvYiZdNRUabTeZSUqVpptphM0sFkBOfklyzICV3/YUWZZ7PX/5ivcwKNWee4QYeaY5vEOtMgp6xd0m+NlEEx3alQmQ7FQHAhLq9u+5KG/L5crI7D6n0ZxisWsoexGZe76JKGMxJGR+OiiPGADDGZm2PcEu7gpx6E2HTuDEfvsW16ex0wNMpKpJiI3AET4Cx+1Zuga33+BkHFTECHAQAA" + } + }, + { + "ID": "cf21212b95aa8abf", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonc0ce8391b3cab3a53382a9f6cbfe4aadb50532bd/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:36 GMT" + ], + "Etag": [ + "lhvxDnPw0Fo0dy3jEk+n/g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8rnZJRVuOQFlBu45RukVBpnuWZr5+mn29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwmbmFqYWJgZmZjqGSjV6kAEE5VqY4EQAFx01huDAAAA" + } + }, + { + "ID": "33a25680f232b5ee", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "233" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7ImRyeVJ1biI6dHJ1ZSwicXVlcnkiOnsicXVlcnkiOiJTRUxFQ1Qgd29yZCBmcm9tIGBiaWdxdWVyeS1wdWJsaWMtZGF0YS5zYW1wbGVzLnNoYWtlc3BlYXJlYCBMSU1JVCAxMCIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiVVF4cmQzWHR4VFMySEpZUjkwWDk5MVdDek5rIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:36 GMT" + ], + "Etag": [ + "C93D59g1oAOUTK6HSr3mbA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41T72+bMBD9VyL2tUn4EUiJVG1pwlY0lnaEbJqmKTXmIG4BU9u0iqr+7zuTpGurTNs37Hv33vnd49G4ZXVmTIyUFXctiO27G54aJwYoUuDtzHfmrl9YfHq5Sj57F0vhVOn07AwRTHfJDS/LbUXqfgYV7yuQarJaDrAsocwjVt8iaKNUIyfD4UFiUHBelEAaJgeUV8/3w3t72Ah+A1TJ4RHmIY4mh+9LTolivD5bLVGnlSDWUBFWopJG9QVPufpwpH/ASDUoEH/PKBBKeVsrPQCyUF7nrGhFR2xMHo1uoBcfxjKIglnSe+Ai6+WCV73rw9j9pk1LRvsZUWQgSdWUIAdyQ25BNkAEXPei8EuY9CwThTKcg9WdTELSErTE/s3hXwzVXUgtYYdYpwD22Esz37WskZV7nuueEms88h2f+pk7sqkDtukQ7FNaousiNa/d7JR4JqGmiU3UdfOxiySu55rEG5nguVk6ym0zNZ7QEAFEwZzJhku2M8WYxcE0Cdbhx/UiCObBHAUeBHuL+h6HCEri1WKGaMQ0gnGEaRPDRRLE01kSfgt2q4ugIHS7vMPl5aSUgMqZ2MYtEinRwomBK0+2DdpkfF0F8Q89Gl7FkIOAmv6nfYfEIAAzgxRS4RkXQaUm6N6qF8IqLWS5Y9s+HY99z/F8bSJXpDzfIteV4BSkBK1kOY7tjxysP0flX8A/9XNWll1RR4ISuoELpvYWnBji8LqsiwjO+PP1K48l701K9jl8lYEXmTSefqELqFsRPXnOoMx2OjXpTNA5180775dJHC4+4bnimT4vVlE0PY8CpNm7CRXUar+p3a9y3LkppfiXUR2GqziYhUvk2FO03TI6MqzOLxe69BuyKSAMoAQAAA==" + } + }, + { + "ID": "91c39d7c74c6a9ac", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "711" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiXG5cdC0tIERlY2xhcmUgYSB2YXJpYWJsZSB0byBob2xkIG5hbWVzIGFzIGFuIGFycmF5LlxuXHRERUNMQVJFIHRvcF9uYW1lcyBBUlJBWVx1MDAzY1NUUklOR1x1MDAzZTtcblx0LS0gQnVpbGQgYW4gYXJyYXkgb2YgdGhlIHRvcCAxMDAgbmFtZXMgZnJvbSB0aGUgeWVhciAyMDE3LlxuXHRTRVQgdG9wX25hbWVzID0gKFxuXHQgIFNFTEVDVCBBUlJBWV9BR0cobmFtZSBPUkRFUiBCWSBudW1iZXIgREVTQyBMSU1JVCAxMDApXG5cdCAgRlJPTSBgYmlncXVlcnktcHVibGljLWRhdGFgLnVzYV9uYW1lcy51c2FfMTkxMF9jdXJyZW50XG5cdCAgV0hFUkUgeWVhciA9IDIwMTdcblx0KTtcblx0LS0gV2hpY2ggbmFtZXMgYXBwZWFyIGFzIHdvcmRzIGluIFNoYWtlc3BlYXJlJ3MgcGxheXM/XG5cdFNFTEVDVFxuXHQgIG5hbWUgQVMgc2hha2VzcGVhcmVfbmFtZVxuXHRGUk9NIFVOTkVTVCh0b3BfbmFtZXMpIEFTIG5hbWVcblx0V0hFUkUgbmFtZSBJTiAoXG5cdCAgU0VMRUNUIHdvcmRcblx0ICBGUk9NIGBiaWdxdWVyeS1wdWJsaWMtZGF0YWAuc2FtcGxlcy5zaGFrZXNwZWFyZVxuXHQpO1xuXHQiLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6InloQ0lIZlE3Qk1DZFRybWtQVzRWTVNPVUlGSCIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:37 GMT" + ], + "Etag": [ + "0TgKaIUR5jswYPUNAEZANg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/4VTbU/bMBD+K1b2YSDR9GWwQqeKhTZARFsgL6BOSMV13dQ0iYPtgCLEf9/ZaQraGFPywb577p7nzncv1pplC6tnzVn8WFBRfnngc2vPogrHYG2F8QX2Iv/gQT5Pr6KJ4/5yJnG/Dwimo+SKJ0mZ4qyxoClvKCpVLwrscjXwzpfX3ZPxYBGKdH11u38zDi4j7/QcIiVNliOWrSF+pVQue81mzW7HnMcJxTmTNuHp1t586jRzwR8oUbL5AWkTVMvmJ7THCSdYMZ71owAkFJKKGU0xS0CETtAQfM7Vzw9S2wyndgz4J0YoJoQXmdLaIAvh2ZLFhTCJrd6LZbS+O1h32Z1qNNCQkgQLijB6woLheUKR4gi4FijDKZUIw58hLAQubR0zdAcjx3cBlc8qhOP7zvSuaLW+kSD0vcmZOdMfG4aTgkGyOgfiS6RWmiRH7VZrQ7IUPDXmkmKBOq1213AFbviOp492tBGhwB25g7DinTlnZzvajy79oeujkynKinROBRq6wQCNvLEXaqLdKvTUvxyj+/rtGnkxTxhpLLDC93YhccVkTu2jdmtGCiFopqrY23MX6jYK+0ajNu/WZd6uGFnVPctzjYLWPXOxkIhlKFjhNZXaTL9KlCe4lMdVibqWisCU4QRIvmGNIO01wqPJxA3CnW1LdjW6RlTyTA5v8kertIz/N0DiNE+g/Hf8byXCUOWCccGUnh5vErq+Mwi9G7ea2RGNMSmDR5jaJU4kfd2zYPDDMqeAvo5cf2pVJp8uKfSUUD2Mm8Xx/rGwlokw3s/3tl4hAMISAZFUcJeKEalpiKDGHbJUy2kfdDudw2736Pvh/qFlwEL95YMPfNu90RlpCsOwqSkY+N5VaL1uyAq5BYHTh5eCRQDvb7hqkLvGBAAA" + } + }, + { + "ID": "8ea9728555391751", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/yhCIHfQ7BMCdTrmkPW4VMSOUIFH?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:40 GMT" + ], + "Etag": [ + "AG6V181pQnvs8nraQiGJ9g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2OS2+CQBSF/8vtVheIoUjiQkiLNGgF1C6aphnh8pB50JmxDSH+9w60q/s657tngLbhBXhwaaqvG8r+oUKdjE2K6ka1MqUTXCHMADWpjHITOmfLtbqEfyuXS5I04cuqWq+NQuU1MgLeAGWDtFDgvQ/ACUNjUzVpDQuJxM9pNQPdd+MlO6bRPjQzE8U4709xvPHjJ7h/3GdwFZcUS5TIcxzJnRRXzHVUTExBac8InxfIxFyj0jA5pmtfB9G2TB79XVAcJWsPb8vzLns9Rc9bo6IiJ7oR3AhPGZhHWmhCU/FjUoPtwv/C7w31IEWOSuFItZb2ynacxeLvUyBYR1GbaFre8P4LCaf5JFABAAA=" + } + }, + { + "ID": "d41a0c97d8bf2538", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/yhCIHfQ7BMCdTrmkPW4VMSOUIFH?alt=json\u0026fields=status%2Cstatistics\u0026location=US\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:40 GMT" + ], + "Etag": [ + "AqO2IhLIdCfeR4N7J3xGEg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/4WQzQ6CMAyA36VnD7ghGx5BD5qoRHgBhSYuGUxZORDCu7uhxhhNTE/t96V/A1g6kbKkSgvLAcoWXWqaQtUIS5gvBGNSiDiSoYSZl1v6Yi4cw6b6JDIIAsYdIUMnnfSENmtNidZi5a2QxzyKGHPGrcO29/P/q28jUVo/cSgCHkr5wrk2tHP3AGfisTVhjQ0V/dXvl6fHTVbA+Ntuujq9KF1tzdkXmfd8h2560NTLlVeH/RrG8Q7AcM1sQAEAAA==" + } + }, + { + "ID": "f035b8e7c491adb6", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?allUsers=false\u0026alt=json\u0026pageToken=\u0026parentJobId=yhCIHfQ7BMCdTrmkPW4VMSOUIFH\u0026prettyPrint=false\u0026projection=full", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:41 GMT" + ], + "Etag": [ + "0JlHaFzTGLbfPR8XTgQtaw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/+1Z6W/bOBb/VwRtP6RAGlC35EGBdRylccZHKinNFNtAQ0u0rVaWXB1JvEX+930kfelwjmIWM7uYfAhk8h18x++Rj/whkgLPxI6ILuMLfP5v78NgMr1yzN+82ccC379/Lx6L36IkBIpJNPtekmz1j6/pZBDlBczAVy52/vVDjChBPk/jeLXAybuQLNJ3BcmLzrV7kgdZtCx8oPUtGUkmNnTFCkNNnmpkEigTYsiGGk6noUV8qV0dV+WQKclIEhCx80NcZulXEhT9A4o5B599pf44DXARpQmwXrvi47GYF7gAneLZeGSL/CeYHwU5XUeQEUbtRQtKI2mGLJuGYVmyZHLirGjMqTJVRJKwOaOpMFOkBY5PV2DIVZYGJM8JNQTBDHMJ1XuYZDdzGsXxdjjAwZxcRIXYKbKSrK1akKTwVku6Btce2D2P2rvE4OXicu2+1bzXv5h+NE6HvdDLFt+ubtRPQ3d83T+/oPYx57oVl5A7HJfMKb/yULpe17OH9sjjDgm+nWd4QXjmMAcNogSWIElrf/XSuFyA/y3mo/WkwX5spiQEhpKHYrvwL8mXQhASkCt0XSGf428kXxKwxKdjdPbcGQ+F69HIdr2jIl2y8fwtpd5Q3FzYjs1l9EfCERfJxQv3aRbyASbn9016vluWkzgK3oW4wL+f5HixjEl+sqefMr0VH28fwbNBmkyjWZmt8+vHLpzrj/8NY47FECAWJTzx8SR+ISKp2JxwCn9CiGzok9DSJEmVprquaSaWDNVSrMAKNVUOFCIjBdOMpioYF07SJESWpIeqgieaaQUacMihKSuBbhlIDxVdCScaDvQpTWWGTnIW5cs0j9ag7jk2pKPfP/dHtn1mn4GC+yyqU904fSDynOtRD6iBZplFKZDRIPVHnu10e17/E50oczIgMxys3O+x2JniOCdrnF5hmucFyXiq01gA9zZcIoMap+AgBFhzMHYdp/sZ5nGW4VVtzvWc/uiD+Pi4x/4JEMdoGAP7xXXe8QnRXiwwOGQ3MIyqv0cpnlcGxnF0V6Nx0+W8NtTP8YTEcXWwocwlEwwJg5PK6CDCiypfMa+RDHFRzMl9ZewMJxGJK0OXOIBNosZI0spINyYPOAlJ9rTZl2VcX2fdVack+YoXUfK8IxoWtnjQXkTxqjLSA+F1QemstqiW8FziVUiSmr5pjWhQBjivOiZqcLWGi2qsee8M38HOXxEGpQRH1eh0cZZWRXXv8DPROlvFNfUj3MyOKJjjRipQZFUcHEdfa0H+FAUFgBk/R9dNinmarOqBxsHTUW4xr5HFN7A31/maadyb4yxOCzh+VOSHWT04LaBoSaMhztNXY7AZ5Ms0ry6omWbdJMxqFlOu5bzuyyZoGpDsJrOaae1YbpSdZi404d7ETAuyWqpnM/Nay0ITXPYdiVfPY7lZhtoyZlAmdZPrKdREUhtGB+U3Ug9N9BLUuAFkKCmK50qFs6pX/0ZJc/GirPnUxQnUoVlaS6SkWQuaZfSKJCROl+Q57/fmGZxdoTDXVtzI8u6CxNR6epTb7uYky9LsZJpmCwA5CX12vvWLDEObcnh/3+3hNUGQsDme/RTryzQ/c7K47vFDelYGrDGonFxiehI/XlNvueA0pKuV9QT8kP4CymkUE/bZoG0xc9uYHSaG0LT5hTc6PmsYXuXZLL33g7RMnmLbWHULB7IwWzllsj0FQs9JO7y0LIbgSFGWNMtUTJU3p+u+6+O17XzetJkla6AqDecjO2FmPllQzMLxEc7S77J0khb/bDlln0CFOJkB/V0UEBywtZ8EKa8aL+zSZcnSTUNTNF2dyqquyjKxwsBEMjGCCTEVH/13u/QX6f9junRDV4xDXbphylp7l26qZrXR3m/BJVWxFF2X5f1unbcDtBDvwclFqCP0k2VJ/RBt+nS2FpYuO31IU/hKauOyRO8R7nFUONS87t1M7KATWTV0yULb/wonGeZsXpT1fZ4hfniSh81zHvBhuNMj8YGNVAlp+ySMbUvChXASSEawmOwv2NyObqQxjOxTrpe5T8mFMkrWv+1LRIqJLE3e/JfWJBvxVZ617IM8XBHlyefldBqTcVnAEljkqW9U02ydc5f79y8ZCaDrzh1wCIzoSDYlTdqN34CugtB0lta1Bnhjlh35epBaDlstCa/aZjflQ+yNh1cD2+MgIEtewddwhdaX9rt5OdlMiW/kDs3HY+GN0knKxYRk8Cl1VtDuAyW7H2i7Hjgpc8zbWPYlWRLygzKjN0fAxi8fyPcSx0dvpGNBRpLxVrylRWi9ku6HD479gbfW1eUgofNecC+6zpnPNisfSI/eyMLYObMd4fQzLFQ4s92eMOgP+54gIVSVzDr3plQY8caCTzfoGUHIT1mggPN2r967SOoIPIQbTEqHMGlJ7ZhULMpKQ+NSVUw/Em+bOFUkVTY1Y/e/ilNFacHpQR6epIynilNUxSlqoBRVUYraMYpqBULSG6Cto3uDq6c4uU6tFcN6/a+GYqMVxYe5uC7jEI4l9BM4/msgGG2Q2pLeL4CcxCDnjMdeBXFoB7nXA06qAU7aBxyAgV4gwpGZhE9uoEBD2KmTeoDEeAkkDG+6JG92YBcaZDamyDS2S4BklMyuk4g5Fu27fTMoi3QJjBsiUbA7vyfu0Q+urnnTLqmqgRS+I0xow5bMvAgaC7oXtq12dyu/PjJmm+NTyC5Weez3j1Ftxbh2t7otzZW700aZpj44/ArQ6ts/+mXA/u3KsV23Px49/TSg1V4GZG3vacA69DJQvfTepTa7FN/mNt/06hn+/PX44Q2Q8/I9kO6jwnu2Ab7uJYBfUwuePbwSzq9HPQ+cBGiiTQe0JCQLgNGPEuhHEhz7/tEDN/BLiZAS8FaGfRP2KnD08PaXL8naE09I+Su67O0vf/KLg66bCgqQ4utTlfiqhgJ/YlrED4mGDW2iGhqS/+9fG/6+8/j7zuMn7zwsy5D+lDuP28f/AGojk2LgIAAA" + } + }, + { + "ID": "d821c0f7903cbf6b", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "272" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im5hbWUiOiJudW0iLCJ0eXBlIjoiSU5URUdFUiJ9XX0sInRhYmxlUmVmZXJlbmNlIjp7ImRhdGFzZXRJZCI6ImRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QiLCJ0YWJsZUlkIjoidGFibGVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAxNiJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:41 GMT" + ], + "Etag": [ + "lx1UaOxunlsjqNJkyvIxCA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SUWvCMBDHv0v2Ok1SUWvBBx0iDudA69MYEtuzRtOmNtFZxO++a6cT5jb6FO5//7v73ZET2cokJB5Zymi3hyx/sGKpgDwSsCJCXR35XLwe94kym93keZsfRsenXreLDlnUmbVWKo9FUgsh1jULxnqhsMKAXTiMdzhz3EWr1WGtZoexTgOfBWOM18s5/1h4C0cYUKuxTLY4aG1tajxKr6D1SOtIgUilqQc6/tbpwaFppjcQWEN/oaMXOkOrYNIS09BKtKVpCivIIAmAeCdyARn9cSmsuUCUjipA1zFlQQWqMx4xWEMsCpyVBBUa4r2dSCJiJPx6sGWeFtHMn44mQ6y55ffxLT2a+IPhYErO79gVM/0cl0CdkTIc6yTyIfspT/XHNQoyEFbqxJdlc95sO47bdhlnbqP4csdUZvcGt8HauDoalDD2RYcS9wjvenDu3FD9Xn88KCp0UDZEaT4j508CGiX17wIAAA==" + } + }, + { + "ID": "73a490efd4070511", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "298" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiSU5TRVJUIGRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMS50YWJsZV8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDE2IChuYW1lLCBudW0pXG5cdFx0ICAgICAgICAgICAgICAgIFZBTFVFUyAoJ2EnLCAxKSwgKCdiJywgMiksICgnYycsIDMpIiwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJISmIzYVhpenZpOXU4cmhoeDVBakw0V2tGWVoiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:41 GMT" + ], + "Etag": [ + "K9+lCo/1Y1GNWEmLF0NT5A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41S227aQBD9FWv7kKCCbwSDkVCLIielRZYKJikVElovg1li7xLvGpVG+feObYKqNqXhhfHOOXPOXJ7IAxcr0icxTx4LyA/vtjImTQKaJvj6xX+fXkvLmTu34X2QjW/sMOoMBwNE8JKlNjJNDxkVrRVksqVB6f5san76HLfpN/5zz/2il282PzrD7fjq/uFm/h2ZCtL1mIsH5G+03qm+Zb2om4mUSQp0x5XJZHZ6t/autcvlFphW1iuiFrpW1hnZD6lkVHMpBrMpWigU5EvIKE/RRFmglctY6o+vlDY5zcwE8XvOgDImC6FLb1iFSbHmSZFXhUn/iVRefwvIKJwGk8hYUU0V6KVrO75ju72l5/m21/Ft22/j39K2bcfUNE7hDMTxjEtBM2gaosgaC7HQC2388bsbjmfB1Li8oBdNw2k0MYoxcquIYdRuoO8VtsVF5ToqRUvHx+mO/rHVklU3USHe0hBSqpYqwv+bI89NNMFlznU9uSiYDK+j0V1Q72sMCWWH6SNubE1TBQjHpUeHHdonX2fBZE7qpwmsIQfB3tgWMqrs+Zt9OR8E4gGhkNL4jWNkqpRhOdTj5Flpx+l0XbfX7dmO63mkAuf6r9xVu4u5082UFSEDoY891bdDno9ihTqBMDmZheEovMXsL2wZWfrCAwAA" + } + }, + { + "ID": "16bc24eaa6d416e2", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/HJb3aXizvi9u8rhhx5AjL4WkFYZ?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:44 GMT" + ], + "Etag": [ + "StvP13MfFXywrsSOVDXYSw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/0VPy07CQBT9l+u2JBo00SYsUF41itiigsbF0N62AzOdOnML1Kb/7i0uWN3HeeScBnaySMCHjcx+KrT1RYb02i0hukqR41GawiF4gCQyZka0X1z1n9PJqj5YF728j1br6DAYMMPFOWoBfgOpRJU48L8aKIRGlp2GB1SX3RUtw2A+hdY745U+w8F8OZ6OQ2i/Ww+2ZhNiihaLGDvv0potxhR0sV1ulKq1KHoJatMjdAQnxQmdPW76YiV/9/KuurV5frwZbp+uP3aT9SezlIkFSVMw8S3iKECGhLqv2WRhTYzOYWdy+W/4YHSpkDgB2Qo9iAWXnUkCPxXK8YMLjLQapilnwyQ0B64PfWj/AFcikQ9jAQAA" + } + }, + { + "ID": "b56a11fa465cad17", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/HJb3aXizvi9u8rhhx5AjL4WkFYZ?alt=json\u0026fields=status%2Cstatistics\u0026location=US\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:44 GMT" + ], + "Etag": [ + "Uq90DVYFtVFjwA6j6epTXA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/7VWXU/jOBT9K1WENC+w8kc+7EjzwEBXi7SdorajeRihyiS3kNk06cbusAjx3/faaWiahtKR4Kmx7z0+17fn2H7ytFEm0yZLtBc/eUkFOCyLWbYEL/ZoEDEmIkEoC0Pv1CZXZi/m8whjUKTdiE8ExYgpjcq/PBrQ11WZgNaQYhbByL9rqB4tr/u4zlXhxT+evEK5daaExIOrYrU2mJo1GFfDSO9UEDC/rqA7zwXOP6jMTOy2zn/deTH5gxDBQt8PmSBS0ogHQVgnjbTL8GgbNFL/vQFyGQ6E3UtbTPVEsyppJ9SrNgn1CjYhKZe4X9gpl3MSRCKgjMswlD5jL2nN0n4H2dR8CFlzWuRDlb3N6JLafFvUAbYNasul79eLRQ7jtcEqnCZsgPVGpqssz1+0UkFSVqmeYMN2Z74jhwFUjsdxcqUqhajc6UZv/he76RwMpNd9UWuBtR1cjEfXfw9nQzcHK+3E+E9WpJvYtzq0vm2i3gklg/jz4JP6hIETSu2AejfPp2/hWI27dTjmcOwYHK9xicNxh+M7uO+Tq54qTwcntsez8WA+x+3eASHz0nUawQ7+4jkaDy5KlYNOoLEd7bcdIzLssx3jTFqo7fHUkrkiiHfzXlbsE1rLif6HOdGnnDFOfeLLQIRRJPacGLzixMjneB6FAROSBeG+D2WfD7GjhPmR5FwIn8ko7NiQyj4f1hRUCu5HFIm7NuTBO/qQH+3DgBw0YkCOdeJkeH7ZEfifk/HobWWzeFDvqtE1e0XXjEa9uvYl3dc13dc17WiY7auYdi4P9mHXBz2gvU19vF+0h5CbsnmfbHcNzUPRkW0k+mT7Oqrmcqhe2ZIPVO073R49mn05lHfES7fi/f0znbWVj6oEfNctFRbe+/jCGORZAa5OyNUKQ07wgRDNq22al7U5mEWs0BJZcfetyIxuCc71ppm0LVGJyX7BNs1upU1AaUj2GAQJ6JEcATuChIXUf3+Sm82KKAWT2Zfyfltffe1uI1/a0rzFARYzy6By50JvxYlK7uGvzHjxQuUarHwXUEGRQDpTtznUaltV5U9IzJVdWt+Xef64VMVZCsvyDFntuZcqozTUGZvvOSNUUsLEHC9TEgaSEMnxZ04Icc93u74DuK8D6TR0DSrWy8tlfr5YYCmQTsoHvXGXtQosoTCzx5U9kq++ToeTGf5zfXt+3lrrqUZi5HL8deg9P/8PRf2Ik7cMAAA=" + } + }, + { + "ID": "c3cb40688d39d8a3", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "389" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7ImV4dHJhY3QiOnsiZGVzdGluYXRpb25Gb3JtYXQiOiJDU1YiLCJkZXN0aW5hdGlvblVyaXMiOlsiZ3M6Ly9zaG9sbHltYW4tZGVtby10ZXN0L2JxLXRlc3QtdGFibGVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAxNi5jc3YiXSwic291cmNlVGFibGUiOnsiZGF0YXNldElkIjoiZGF0YXNldF8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDAxIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCIsInRhYmxlSWQiOiJ0YWJsZV8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDE2In19fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiSkkwbkNkUms1dUFENE8ydGpIVTRVeFZQRzgxIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:44 GMT" + ], + "Etag": [ + "/9v6gMxQA4aEy5pYLCmfrw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/61S0W7aMBT9F+91JE4GIYmENsS6jqljGyRVp2pCjjGpIbFT22Ggin/vtQuTtjK6hz35+t5zzzk58QNac7FAKSp4ed8ytXu1kgV6jZghJXT9ZBOVn7ffhl1yses1369G9VL9HAwAwe2WvpNVtauJ6CxYLTuGaZPmM+/TGIvRYrrutcP33S+hWX3Mu/n2+utlHMCmZtXyios17N8Z0+jU94/qXillWTHScO1RWf/q+5vQb5RcMWq0f0LUB9faPyP7tpKUGC7FIJ+BhVYzNWc14RWYsAQdJQtp3p2g9jipvRLwG04ZoVS2wlhvwEKlWPKyVY4YpQ+IbY0i1NhSy1ZRlpGiYvZ6MD/+S2hAtiCGaPaEONTzEAdJgMN4HkUJjnoJxskbOOYYYxuksexuwVVn4EGE9iABSlw4t7nisFba7E/FWdy7s/Myr0f1Bv1JrVF6+9/If/zG/kGqmkDCaDS7tt8EPz7bNZAxurjJpsNRdmhO2ZIpJug/pg8bbnr+5R4fEQDhGYGQNnAHb1RbGaqYG2e8toaCXj8M436MuxGOkQMr82zWx/jI1DoWW1nINJ9MxpNLtN8/ApaOOW6lAwAA" + } + }, + { + "ID": "e9b0b15fd08cbecd", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/JI0nCdRk5uAD4O2tjHU4UxVPG81?alt=json\u0026fields=status%2Cstatistics\u0026location=US\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:44 GMT" + ], + "Etag": [ + "/9v6gMxQA4aEy5pYLCmfrw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKi5JLMksLslMLlayqlZKLkoFcvPzQjJzU5WslAxNzY2MLMwtDEzMDCyUdECKi0ow5MwNDJRqwZIlpWBTQCyQkqBQPz9PP3el2loAZuTgdWgAAAA=" + } + }, + { + "ID": "0244d20d8817220d", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/JI0nCdRk5uAD4O2tjHU4UxVPG81?alt=json\u0026fields=status%2Cstatistics\u0026location=US\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:45 GMT" + ], + "Etag": [ + "/9v6gMxQA4aEy5pYLCmfrw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKi5JLMksLslMLlayqlZKLkoFcvPzQjJzU5WslAxNzY2MLMwtDEzMDCyUdECKi0ow5MwNDJRqwZIlpWBTQCyQkqBQPz9PP3el2loAZuTgdWgAAAA=" + } + }, + { + "ID": "14475bebfc9e4837", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/JI0nCdRk5uAD4O2tjHU4UxVPG81?alt=json\u0026fields=status%2Cstatistics\u0026location=US\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:45 GMT" + ], + "Etag": [ + "LAShRajm9MLk6iSygk76pQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKi5JLMksLslMLlayqlZKLkoFcvPzQjJzU5WslAxNzY2MLMwtDEzMDCyUdECKi0ow5MwNDIByyfm5BTmpIM1BICOUrAz0TGvBWkpKwWaDWCCNQaF+fp5+7kq1tQCA6jeufgAAAA==" + } + }, + { + "ID": "d807e5db8203c367", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/JI0nCdRk5uAD4O2tjHU4UxVPG81?alt=json\u0026fields=status%2Cstatistics\u0026location=US\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:48 GMT" + ], + "Etag": [ + "1fvX/kW8+O++3NtPczhbhg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/21Qu67CMAz9F89FSinQ0pGXxABIXJgQQ9QaFCkkVeIiUJV/v05ZuBc228fnYXfgSZLypCoPZQeVQ26tOagbQgnpOB8Oi7wQo4koIInLjj6wXAjG0NT/kfG0mDBS2VujMcruoziUKW8/yMmKomeNbG9626NTK6VxbltDnOcEKZwTUKZpafYk5BFkGYQEyJLUP9rSJs6mImMbhx7d/aXj5ZWTnDowso9U40W2mgaNalArg/GWd3Y4/+Gv62+c0D+A2v5TsYrKi912CSH8AmMQp2lJAQAA" + } + }, + { + "ID": "a0e766714ed10443", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "451" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUICogRlJPTSBjc3YiLCJ0YWJsZURlZmluaXRpb25zIjp7ImNzdiI6eyJjc3ZPcHRpb25zIjp7ImZpZWxkRGVsaW1pdGVyIjoiLCIsInNraXBMZWFkaW5nUm93cyI6IjEifSwic2NoZW1hIjp7ImZpZWxkcyI6W3sibmFtZSI6Im5hbWUiLCJ0eXBlIjoiU1RSSU5HIn0seyJuYW1lIjoibnVtIiwidHlwZSI6IklOVEVHRVIifV19LCJzb3VyY2VGb3JtYXQiOiJDU1YiLCJzb3VyY2VVcmlzIjpbImdzOi8vc2hvbGx5bWFuLWRlbW8tdGVzdC9icS10ZXN0LXRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMTYuY3N2Il19fSwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJ2cGh1Y1lCOWhDNWlUSTFEVUkzQWVtOGFYUzgiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:49 GMT" + ], + "Etag": [ + "rFoh4jm3dD32JbvK3npiOQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41T72/aMBD9Vyrv21QgPwgkSNXWQaiyMqqG0K2aqshxnOA2iVPboUIV//vOCaXT1lXji4nv3bu753fP6IFVKZqghOWPDRW7D/c8QaeIKpzDrZjzzfC+tNOZbX1Ntpd2VbOr67MzQDCdJTe8KHYlrnopLXlPUakm61V/W28acvvF20wdFgXmbB3Y57R08Y+VC5mSFtmCVQ+Qv1GqlpPB4KV6P+c8LyiumewTXh7vB1trUAt+T4mSgzeKDqBrOXin7KeCE6wYr87WK2ihkVTEtMSsgCY0QU/whKvPb1D3GS77OeC3jFBMCG8qpXsDFsKrjOWNaInR5Bm1vf72B638hT+NTj6ezMOrbydEbiErBVJWtTkRTgqq8YfZgn9oqrOwwpJ2iDih1BqPktRzTHNoZqOR47jYHA892yNe6gwtYlPLsDHkKV2izcIVtEscb2xYRpwZjhMP7cSNPcPAsTu2XJzhJHXTDO1hMkGxojMmay5ZNx2ahv555MfBPF76/syfAfmTYH+ivocBgKJwvZwCGjC1YBxgWo1gGfnh+TQKbvzuDRY0x2S3eoRXyHAh6aHdGc1Y1RJKLY6WDQ7JG0HoWjC4/IlybZu3nJA8tmevZYotw/RMw3Lj0cgzRg4M69lwxIZhjvqa+A78SDZgBV0iY7RINf0zqnAJL9Md0Nau1l+rKAyWFyDQa7wpX8N6vgs/RPs7kLBrd85FiZVWb3WjHSO3V/VxsLbcjBasBBkFgE71djywekFxyqo85E+AQybaw+8UgcejrtD12g9vUXcV0owKWpH/9BFktNH3V/RlWwAI+6KnUfANviXdi2h7aP+yVgTTGVuWO3YNz7QN1IKF+itmWybEjiuiGWlJK3WYqVsVtD8Ua+QRBEGw07JVfv8La8KkwbEEAAA=" + } + }, + { + "ID": "eb1ea54f8b1d9635", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/vphucYB9hC5iTI1DUI3Aem8aXS8?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:50 GMT" + ], + "Etag": [ + "nxLdGvELu0X51a1jS2hoMg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/22QTWvCQBCG/8v0GqFRBBvwoDbYQCptoqCUHtbNmMTu7qTZiW0Q/3t3bcFLTzMv8z7zdYaP2hQQwb4uPzts+7sS+dUnGdpOsXWhIWMRAkAWpXOa77RYnuK0u9+OQxEe82FFz+V06hxWVqgFRGc41KgKC9HbGYzQ6DEfAuC+8SpfZ8lq6bSmwuvVJk1n8zSGS3AjOn0DktU6XsbZf8T7JYAj7TM8YItGop/ftHREyYk/zVakVK+FGRSoacBoGa7EtXpqqk7u5g/VYlyvk/Bxk4xmqCdim0+cS5EUXJNxxk3ulgMmFiqjL3cbjOBPz3vX9KUlidaibxoOfycsSDcK2a3EbYcBSOE+9FQzRAehLF5+AHL/Qu5/AQAA" + } + }, + { + "ID": "b31be1c84d590c29", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonfc597020_f055_43b8_900a_8728afabd8df/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:50 GMT" + ], + "Etag": [ + "J1d+8bL5TCVRVrD4oDAKYw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8p7GaZoWyT5mIY4hwWFFbmY5Ls4ekeW29oCVZTklyTmBOWXFwOVGQP5RWBmdLVSGpgsA5muVKsDYRkp1caC2Ai5RLicIYZcMlzOGCQXWwsAn0oY6LAAAAA=" + } + }, + { + "ID": "2448ca961dc642a7", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "556" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJleHRlcm5hbERhdGFDb25maWd1cmF0aW9uIjp7ImNzdk9wdGlvbnMiOnsiZmllbGREZWxpbWl0ZXIiOiIsIiwic2tpcExlYWRpbmdSb3dzIjoiMSJ9LCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im5hbWUiOiJudW0iLCJ0eXBlIjoiSU5URUdFUiJ9XX0sInNvdXJjZUZvcm1hdCI6IkNTViIsInNvdXJjZVVyaXMiOlsiZ3M6Ly9zaG9sbHltYW4tZGVtby10ZXN0L2JxLXRlc3QtdGFibGVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAxNi5jc3YiXX0sInNjaGVtYSI6eyJmaWVsZHMiOlt7Im5hbWUiOiJuYW1lIiwidHlwZSI6IlNUUklORyJ9LHsibmFtZSI6Im51bSIsInR5cGUiOiJJTlRFR0VSIn1dfSwidGFibGVSZWZlcmVuY2UiOnsiZGF0YXNldElkIjoiZGF0YXNldF8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDAxIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCIsInRhYmxlSWQiOiJ0YWJsZV8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDE3In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:50 GMT" + ], + "Etag": [ + "CpCiKYaxKmdPFI2QP3QIuA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42TYW/aMBCG/4v3FYgT1ACR+qGjtIrKWBvSqdNUIZMcwcOxU9vQIsR/3zkNRWq7jU+W7967e+6NsyMrLnMSkTkvntagt18smwsgLQKWFRgfVkN+85O93JT57VUc3N127+L1xfk5KrirM0slxLZksp1DqdoWjI1yZpkBOwuoP/Bp0J+F4YCGZwNKB108ZpRSv1PP+YfE7+EIA2Ix5nKFg5bWVibyvANop1CqEMAqbjqZKt/i3ibwKq1+Q2aN9wmd19AZ7xRMr8Y03km0tSiBBWiQGZBoRxqQ+C9OYU0DUStOATqMqQtOoNqjidkSSuZwFhxEbkj0a0ckK5Hw9cCW28rdpmkST66x5phfl8d0PElH16OE7B+xK2a+bnEJjFNSX8dKFino9+FEPR9umQZmuZIpr5v7Z70g6Pf6Dt75By8V1x8F/S7t4eooEMzYbyrnuEf+oUfXD4+oo4d0lEwuxnVXC1oycYnuDpVc8GL9OsQ5YtRaZ3CvuXOFFO6BffZm5k/12f6v4WEnMxvy2GoaXyldMut+o+kPt7/ZfK/caPP2NS5B8JIjIYpa7sWveDUGlnNZNMb5ZI92C5U10OR+SvZ/AF7QcQe4AwAA" + } + }, + { + "ID": "6f2fc31083e53cca", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "236" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUICogRlJPTSBkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEudGFibGVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAxNyIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoib1I1MHdnWUd0ZHI4Q1k0b20ySXZ2TTVWd1JpIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:50 GMT" + ], + "Etag": [ + "ASjDhj92AAEgxMpVIRAoOw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SXW+bQBD8K9H1raoNBxwflqLWskmElDgqxqn8hA5Y43OAI9zZrhXlv3fBSVS1adQnYHdmZ5jdJ/IgmoJMSCbKxz10p087mZEvBDQvsTpd7ubbXWBNp2H587a9j+KpvDteXiJC9Cy1lVV1qnkzKqCWIw1KT1bLsYyZeSzX17ro/NnakbUVHQ637P4YC2QqqDY3onlA/lbrVk0M41V9XEpZVsBboca5rN/qxsEy2k7uINfKeEfUQNfK+ED2ayVzroVsLldLtLBX0KVQc1GhiX7AqJOZ1N/eGT0WvB6XiD+IHHiey32je284JZfNRpT7bhhMJk9k8PrbC1mGN+Esufh8cRXf3V4UXHMFOrVMGlDT8lPXDUyXBaYZ2PhITdOkY82zCj6AUA+VCzQmmkE36fG95ks+0T/20rPO+gMizQAsz82KgFHq0I3rMuZz6jmBHeRBwRwrt8EybY68wdLA4o1s7CJjSHPSDfXc1LGpk2YWdVPmgO/ZbsYK3yfPmE4HXMNcqFYqcU6IzOJwmoRpdJUuwnAeznH4sRN/on7EEYKSeLWYIRoxbSckwvpEo0USxtNZEt2H5z3eQMnz0/IRN7nhlQJUxmNITi2GQr6vwnhNzqUYNtBBk/9nWMgYuh/f8utZIRAPC4WUxm9cTq56mSGDfkmi7u1Q5lmW7/nUdJhDBnCn/+oxL8De2y31E6GGRr/80/mmyPOL2F69gbCJmS2ixTV2fwFhic3E2gMAAA==" + } + }, + { + "ID": "2f8027403a19d1c3", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/oR50wgYGtdr8CY4om2IvvM5VwRi?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:51 GMT" + ], + "Etag": [ + "DxRabi0owJ4KP4G8paI66w==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/22QTU/CQBCG/8t4LQkiENKEg2BTq0hwARNiPCzttCzudmp3Sm1I/7tbNOHiaebNvM98neFT5Qn4sFfZV4Vlc5Mhv3aJQFtpti4UlFsED5Bl5pwP30LuVZ/qp+HzahhOChmNx/V06hw2PqCR4J8hVagTC/77GXJp0GGX4AE3RafWGxEtQ6cNJZ1ebheL+9kigNa7EpW5AtFyE4SB+I/4aD040l5giiXmMXbzi5KOGHPUnWYPpHVjZN5L0FCP0TJciEuVxKhfZ7uQk3Iy3w3JDKLT6WX0VgvlXJpiyYpyZ9yu3XLAxFILqt1tcAd/eta4pquSYrQWu6a3g98JczKFRnYrcVmhB7F0H3pUDH4qtcX2B3sdNuF/AQAA" + } + }, + { + "ID": "1e2eaf6b1918c6e7", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon3db5bd94_f176_4314_b216_54e8736b5d88/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:51 GMT" + ], + "Etag": [ + "4j12MRVv3xOz3coQxRWq6w==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qbZBka+QaFlRlX+FcZJ+cHVgSFF5qV29oCVZTklyTmBOWXFwOVGQP5RWBmdLVSGpgsA5muVKsDYRkp1caC2Ai5RLicIYZcMlzOGCQXWwsAg8Vx0bAAAAA=" + } + }, + { + "ID": "7026c07edca1695e", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0017?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:51 GMT" + ], + "Etag": [ + "CpCiKYaxKmdPFI2QP3QIuA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42TYW/aMBCG/4v3FYgT1ACR+qGjtIrKWBvSqdNUIZMcwcOxU9vQIsR/3zkNRWq7jU+W7967e+6NsyMrLnMSkTkvntagt18smwsgLQKWFRgfVkN+85O93JT57VUc3N127+L1xfk5KrirM0slxLZksp1DqdoWjI1yZpkBOwuoP/Bp0J+F4YCGZwNKB108ZpRSv1PP+YfE7+EIA2Ix5nKFg5bWVibyvANop1CqEMAqbjqZKt/i3ibwKq1+Q2aN9wmd19AZ7xRMr8Y03km0tSiBBWiQGZBoRxqQ+C9OYU0DUStOATqMqQtOoNqjidkSSuZwFhxEbkj0a0ckK5Hw9cCW28rdpmkST66x5phfl8d0PElH16OE7B+xK2a+bnEJjFNSX8dKFino9+FEPR9umQZmuZIpr5v7Z70g6Pf6Dt75By8V1x8F/S7t4eooEMzYbyrnuEf+oUfXD4+oo4d0lEwuxnVXC1oycYnuDpVc8GL9OsQ5YtRaZ3CvuXOFFO6BffZm5k/12f6v4WEnMxvy2GoaXyldMut+o+kPt7/ZfK/caPP2NS5B8JIjIYpa7sWveDUGlnNZNMb5ZI92C5U10OR+SvZ/AF7QcQe4AwAA" + } + }, + { + "ID": "e97e3aa755c88575", + "Request": { + "Method": "DELETE", + "URL": "https://www.googleapis.com/storage/v1/b/shollyman-demo-test/o/bq-test-table_20191028_66906590093659_0016.csv?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 204, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "no-cache, no-store, max-age=0, must-revalidate" + ], + "Content-Length": [ + "0" + ], + "Content-Type": [ + "application/json" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:52 GMT" + ], + "Expires": [ + "Mon, 01 Jan 1990 00:00:00 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "UploadServer" + ], + "Vary": [ + "Origin", + "X-Origin" + ], + "X-Guploader-Uploadid": [ + "AEnB2UqiWfcy5JSDn0peycZ-pq80XYA9xgPaFfnXMl9juv2sZEdN6UZwvV56nFdaqFnACUVRwWLOD8Ey7FwCkusdFZczRTtn_D8XRj6Km944atJ7yRzugJM" + ] + }, + "Body": "" + } + }, + { + "ID": "6807fd7b35129d13", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0016?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:52 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "19daa71025199c7f", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "366" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im1vZGUiOiJSRVBFQVRFRCIsIm5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifSx7ImZpZWxkcyI6W3sibmFtZSI6ImJvb2wiLCJ0eXBlIjoiQk9PTEVBTiJ9XSwibmFtZSI6InJlYyIsInR5cGUiOiJSRUNPUkQifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMTgifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:52 GMT" + ], + "Etag": [ + "BNEF5WsGLdGY5cUQAQtE0A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42S3U7CQBCF32W9VXZbBUoTL4quhKSC1BpjjCFLO5TVtlu76w8hvLvTCtaIGtKLzZw5Z+bLpCvyJPOYuGQmk+cXKJcHRsxSIIcEjEhQ74/4RftWD/x4cNeObibexHDmnZ6iQ1Y5vVBpusxEfhRDpo4MaOPGwggNZmozq2cx25l2Oj3WafcY6x3jM2WMWa16zz8Wy8EVGtK5L/MnXLQwptAupVvQVqJUkoIopG5FKvvS6atNi1I9QmQ0/YWObug03QeT1pia7kVbmwKYQwl5BMRdkQ3I8I9LYWYDUTv2AdquqQN7UK3xiNECMlHhzCWksSbu/YrkIkPCzwdHLouqug6D4WiAmab/kummPxyFfMADFDIVV0LAr7gX8vPvkRKiJhHws3FwjvXu6plSaWPsj8c+90Zk/YDfYbW3v8QTYYeRuvRVnoRQ/pQD9batohKEkSoPZT3fandt2+k6lm2fdKof+r2Q5a7BOWZdPCwaUqHNpYolosa7MxyrgQ29vs+rhIrqgSjdXJP1B/nb0HFNAwAA" + } + }, + { + "ID": "6d7c1016f011922d", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0018/insertAll?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "105" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJyb3dzIjpbeyJpbnNlcnRJZCI6IlBVUktIQThKWjh0bTVuSkQ1ZkpIVVhCZmhJcSIsImpzb24iOnsibmFtZSI6bnVsbCwibnVtcyI6W10sInJlYyI6eyJib29sIjpudWxsfX19XX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:52 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTMK04tKnHMyQlKLS7IB3KUagGmFzWCLgAAAA==" + } + }, + { + "ID": "e370c7a558c19ce2", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0018/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:52 GMT" + ], + "Etag": [ + "OnHzgA3+l3ESC+Sx6N2oFA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8r753lUpTsaa+cYuwY7awdXmPkZ5bs52toCVZTklyTmBOWXFwOVGSjVAgCmwRjgUwAAAA==" + } + }, + { + "ID": "f383c4982718616e", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0018?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:52 GMT" + ], + "Etag": [ + "BNEF5WsGLdGY5cUQAQtE0A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKk7OSM1NVLKqVkrLTM1JKVayiq5WykvMTVWyglA6SiWVBSBecEiQp5+7Uq0OQr40txgh7+kX4uruGgQUyM1PAQkEuQa4Ooa4uiBrKUpNRugIcnX2D3IB8jGtTsrPz0EodPL393F19FOqjQXCWgCN1fK3tQAAAA==" + } + }, + { + "ID": "365d79896ad9ed62", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0018/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:53 GMT" + ], + "Etag": [ + "nCZ+muwhAbUbUWE2zKcV4A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8rnOUdp55aWZzgmhSaFhrsaVXknh5k42toCVZTklyTmBOWXFwOVGQD5RWBmdLVSGpgsU7LKK83JqdUBM6NjoQx06dhaIIqtBQBvgOV7kQAAAA==" + } + }, + { + "ID": "b8656343ef3e6714", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0018?alt=json\u0026fields=schema\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:53 GMT" + ], + "Etag": [ + "BNEF5WsGLdGY5cUQAQtE0A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWKk7OSM1NVLKqVkrLTM1JKVayiq5WykvMTVWyglA6SiWVBSBecEiQp5+7Uq0OQr40txgh7+kX4uruGgQUyM1PAQkEuQa4Ooa4uiBrKUpNRugIcnX2D3IB8jGtTsrPz0EodPL393F19FOqjQXCWgCN1fK3tQAAAA==" + } + }, + { + "ID": "f456a1ff29c84278", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "306" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7ImRlZmF1bHREYXRhc2V0Ijp7ImRhdGFzZXRJZCI6ImRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifSwicXVlcnkiOiJzZWxlY3QgbmFtZSBmcm9tIHRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMTgiLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IkdUYmtiWGxjSjNZVXVMQ3gxZHk0Y0RCRlU0MCIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:54 GMT" + ], + "Etag": [ + "+GAmcoPW3jua6evKKlP1VQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41TXU/bQBD8K+j62BKfv+1IqKWJQSlRBIkD5ck6n9fmwPYF35k2Qvz37jkBoZbSPtm+nZmd3Rs/kjvRFmRMclHd99BtP9zKnHwioFmFpx9Pjxsuz6/c254F8HB2Vp/blxdHR4gQhqVuZF1vG9YeFtDIQw1Kj9er0Wma3+Xfa/7NvV7388lPu9h6fPr1ZO1RZCqoy7lo75B/o/VGjS3rufuokrKqgW2EGnHZvJxbD4616eQtcK2sN5pa6FpZ77T9XEvOtJDt0XqFFnoFXQYNEzWaMAKHncyl/vKG9EiwZlQh/kFwYJzLvtXGG6pw2Zai6rtBmIwfyeD11YsZFS0ftKyBg7KTzYFmeQ2ZQ+3Ypk6UBUFMAz+mNHbxkVFqR6hbYFvRDqqpwRvF/fSzv2zdsJhmCnaILAdwwiAvYt+2PbsMAt+PmB16sRvzuPA9h7vgUJchb7A0sFgr26IoAXgMmVtGbubFYZzFfu5klPuhH0GIxIA84ewdMA1ToTZSid38ZLJMjtMkm51kiySZJlMU/9GJ31FXyxmC0uV6MUH0MG7J+lpPd/7NsK9H2b+/szNqo8i/9vNkIEKiHXMvs0WaLI8n6ewy2aVhDhXj29U95qFktQKEY6TS7QaXTy7WyfKa7I6WUEIHLf/PS0HGUH3/j3gOJwIxnthIafzGEHBl2gy7NmEQjbFj+6HjRGFkezQMyADu9B81h5oovSTSKEIDrd7PtErmySQlT/tmvXoBYRHvZjFbnGL1F4aeSQEgBAAA" + } + }, + { + "ID": "9b2d48dffcd0caa1", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/GTbkbXlcJ3YUuLCx1dy4cDBFU40?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:54 GMT" + ], + "Etag": [ + "4ycYBFDlOo4/UbZf1jjWtw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y1P0U6DQBD8l/WVxjbyRNIHaW2tIVVpiVbjw3EsFHp3i9ySSgj/7oE+zU52dma2h0tpMgggLYvvFpvupkB+HYcYbavYOqjJWAQPkEXhlH4nT+FmrZ7Jv03Sj3xRVW98XS6dwsozagFBD3mJKrMQfPZghEZ3NoEH3NUjOxzj3X7ruKZs5Pskiu7D6AGGr8GDitIYc2zQSBzd6oYqlLwbi9ozKdVpYWYZapoxWobpYtpuj+klfVfy6e6UtNHqZ5F1vlyHm8SfO5UiKbgk44TJAVwQEwsV09U1hQX887Bzpi8NSbQWR9P5X8CKdK2QXSNuWvRACvfuY8kQ5EJZHH4BgoM0VEwBAAA=" + } + }, + { + "ID": "c43448bf0ff8e50e", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonddfeec9e_3f83_4979_95b2_0c5758e72c36/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:55 GMT" + ], + "Etag": [ + "JL8cJwenC9svu+inOTD5Kg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8p7+Vgke5Wn5jlbFpeVamfm+Ye4mHqn29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsU7LKK83JqY0FQgBW4/RhbwAAAA==" + } + }, + { + "ID": "bb3d39d5fa0cc00e", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0018?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:55 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "74f0637283ab5fc1", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "217" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0IHdvcmQgZnJvbSBbYmlncXVlcnktcHVibGljLWRhdGE6c2FtcGxlcy5zaGFrZXNwZWFyZV0gbGltaXQgMSIsInVzZUxlZ2FjeVNxbCI6dHJ1ZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJndlBHYVA4cjJrVU52OUd3NllraE1IazN5M3MiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:55 GMT" + ], + "Etag": [ + "X73OV5Tv0r9QFoPVRlG7+g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41S72/aMBD9V1D2cYM0zg8IUrVVNGVIHWtD6FZNE7KdS3BJ4tR2QKjq/74ztNW0ddW+RI7v3b3n9+7B2Ygmd8YOE+V9B2r/7k4y54MDhpZ4+33of70Js+2Jiq8v5NVNWk2H78vTU0QI26XXsqr2NW36OdSyb0Cb8XIxKLdXU3o1UmSznG/j6S663ay/fN74e19jp4aquBTNBvvXxrR67LrP7INSyrIC2go94LJ+uXe3xG2VvANutPsKqYuqtfsG7cdKcmqEbE6XC5TQaVArqKmoUIQd0FeSSfPpldEDQetBifit4EA5l11jrDacwmVTiLJTh8HO+ME5aP3tYJ+Kkns7qfJeoWTd+/H8on7bsUrwfk4NHWtatxXogV7TDegWqIKfvUrUwvQ85MlRhmgOLBllFViGJzdm/0jBduFkDUfEigGQYcTyOPS8wCuiKAxH1BsGsR/zOA8Dwn0gJz7FPmMpDl20kY0XMMZOgggIhaDwaRgzQhiP8RMFPivIiOQ5cN95RD8UUAPnQrdSi6MnziRNzrJkNbtYzZPkPDlHgp0Sf6K+pTMEZelyPkE0YlolJMKsh7N5lqRnk2x2kxyTu4SS8v3iHrMzqgMkxvSzfYu+ONfLJL11jlcpFKCg4f/pF3Ycqm8v7/MeIRA3CYm0wX/Mh2tLc7DA5iRqK8cLh4SMhiMv9IlNEsHK/FULoghrL8tjJ0INjXl60yK5TCaZ8/hE1ukXEBbRsvlsPsXqLwpYrH3LAwAA" + } + }, + { + "ID": "52618b87671a91bb", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/gvPGaP8r2kUNv9Gw6YkhMHk3y3s?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:55 GMT" + ], + "Etag": [ + "V4KEpQbJglN3jc319Ba0fg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3U7CQBBG32W8hQSsMULChRgCaG1KsSbGeLFsp7/bTt0daBrCuzsFr3ZP9sw3356hKpoE5nAost8j2v4uQ94Nlwjd0bCTo6XGIYwAWWVifj68rdrd4TUzgVdqbzpbqkmaLRZiOJ1jrWB+hrRAkziYf5+hUTXKWEc2EYX7dqD9R7QN1sI1JQMHse8/L/0VXH4uIyjpEGGKFhuNQ1prqUTN26Goy8mYvlbNOMGaxoyO4Tpxfc1O4VqFT/a+ioPTbN09flX5+6byes+JZUgrLqgRMd6DLGJiZSLqpClM4Z+XvYSGljQ6h0Po5LbgherWIEsjtkccgVby3U3BN778AdROBytLAQAA" + } + }, + { + "ID": "f2e93786cf940883", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "218" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0IHdvcmQgZnJvbSBbYmlncXVlcnktcHVibGljLWRhdGE6c2FtcGxlcy5zaGFrZXNwZWFyZV0gbGltaXQgMSIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiandjbWN3VU9RZGYzampJZ2F3ZllhNndReUtwIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:56 GMT" + ], + "Etag": [ + "HOI3lzRokig7ymOOsO8yfQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/91S607bMBR+Fcv7SxNaNCiRqm3aKq0aouptEirVOHVOUre+BNuhZIh333EKu2iMB5iUH/E53/kux37gO2lynvG1LG9rdM2brV3zI44BSqp+Ho9O1Pep3cnyrNHjsR/3m2IyGBBCxim/sUo1GkwnR207AX3IFrNkuxda7BfjSV6cbLejEvbFFZzuJ82XiiY9quJCmh3Nb0KofJamz+pJaW2pECrpE2H1z3p610srZ7cogk9fEE3JtU9fkX2nrIAgrRksZmSh9ui+oQapyEQk6Di7tuH9C9SJBJ2UhL+TAkEIW5sQvRGLsKaQZe1aYp498Nbrbz8xKllme+tyVjir2fI5Uaeq10qKTg4BMg+6UugTv4Ed+grB4YopqWVgXdKpnLROhkg4upwPpx8+zkdfh4cYF1iCaGa3FKQA5fHxiNMu5k2FhJ4shtMrfihNsUCHRmD097TL0T/ukLcTbff1q3zeKgFpryTkA519kMJHGeGwbc+ljna6b896vf5Zv3t6fHzOW7ALf/d6p/EBmvzFzpNG3fKjc9ZN0dcqxCOp+daLNHegZD5pb+EPl7dPJY3eQxnpZ40JcM9aqowtDN5XtBnM2TVfXnMGgS27Wbe/StioYGEjPaMPWIC1QiZzNEEWEt0RQy+gQoIgM6CR7WXYsBuqJ2XCblp8Ehs3jB7MBh0hwbDlr8YqielaI5Ru+V/kWR2uKxr7NL4c8sfHHz+eSg9yBAAA" + } + }, + { + "ID": "b7d9391f6792a10f", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/jwcmcwUOQdf3jjIgawfYa6wQyKp?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 400, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:56 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/9WQwWrDMBBE7/6KRecgEuih+BZoKYY20DbpxTH1xt44AllypU0bE/zvlRVDc+gPBARiZp7Q7J4TAEHOWSdSOAcRZGVrCupuPp9djJa8x2b0xHtvGE8QX6SwMXTqqGKqYSvyrQBkyBfp4r6QkO2BD8pDOAiMO02gajKs9orcDMhX2FFACAy2BD+KD1AGXzYSysjLMSjBYYBcINFA/hcUUkz1Yhkf2uVRwzTHDVSPFWvbojJjw0bbHerrzBF6GzNlvlGr+vVIrr8mtK2Q1YX5+i9Y910cv0MXvmZyYmKGeBfTEj0jH8climz1sXzOHj6Xb0+bl8fVeuSHZEh+AVVsNvkrAgAA" + } + }, + { + "ID": "217f01f654f99eb5", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "218" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0IHdvcmQgZnJvbSBbYmlncXVlcnktcHVibGljLWRhdGE6c2FtcGxlcy5zaGFrZXNwZWFyZV0gbGltaXQgMSIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiQXVqOFdTYklGZzhzT2FXMXRLSE12aHBhdUpQIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:56 GMT" + ], + "Etag": [ + "GuDFYbMm+EaIyFjg7wr/WQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/91S607bMBR+Fcv7OZqolUa7SGhDo2zduKy3IVSqceKcJC6OndpOoUK8+44D3UVjPMCk/IjP+c53OfY9v5E64wlPZbFu0G5frUzK9zh6KKj6sTk6vkxPq9dDGG2PV0X/1sYX44MDQsgw5Uqj1LYC3cmwMh2PzifzaXTYrAYX03R0XAzcOVx0/ZdPp5uyhubzV5p0qPITqW9ovvS+dkkc79SjwphCIdTSRcJUP+vxphfX1qxQeBc/IxqTaxe/IPtOGQFeGn0wn5KFxqH9jhVIRSYCQcea1Pj3z1BHEqqoIPxGCgQhTKN98EYswuhcFo1tiXlyz1uvv/2EqGSZ3Rqbsdyaii12iTp1kyopOhl4SBxUtUIXuRJu0NUIFpdMyUp61iWd2kpjpQ+Eo7PZcHL4YTb6NnyMcYIFiO10TUFyUA4f9jjtYratkdDj+XByyR9LE8zRohYY/D3tcvSPO+TtRNt9+Sp3WyUg7ZWEnKez81K4ICMstu2ZrIKd7pt+rzfoD7r7vf193oKt/7vXfxseoM6e7TxpNC0/WmvsBF2jfDiSmmu9SL0BJbNxewt/uFw/lSp0DopAP91qD3espUrYXONdTZvBjF3xxRVn4Nmim3QHy4iNcuZL6Rh9wDykCpnMUHuZS7R7DJ2AGgmCTEOF7Fb6kl1TPSoidt3io9C4ZvRgSrSEBM0WvxrLKKRrjVC6xX+RZ/l4XcHY0fnZkD88/ACS32T0cgQAAA==" + } + }, + { + "ID": "0d4f35a94931296e", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/Auj8WSbIFg8sOaW1tKHMvhpauJP?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 400, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:56 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/9WQwWrDMBBE7/6KRecgEuih+BZoKYY20DbpxTH1xt44AllypU0bE/zvlRVDc+gPBARiZp7Q7J4TAEHOWSdSOAcRZGVrCupuPp9djJa8x2b0xHtvGE8QX6SwMXTqqGKqYSvyrQBkyBfp4r6QkO2BD8pDOAiMO02gajKs9orcDMhX2FFACAy2BD+KD1AGXzYSysjLMSjBYYBcINFA/hcUUkz1Yhkf2uVRwzTHDVSPFWvbojJjw0bbHerrzBF6GzNlvlGr+vVIrr8mtK2Q1YX5+i9Y910cv0MXvmZyYmKGeBfTEj0jH8climz1sXzOHj6Xb0+bl8fVeuSHZEh+AVVsNvkrAgAA" + } + }, + { + "ID": "05d1a03037919769", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "217" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0IHdvcmQgZnJvbSBgYmlncXVlcnktcHVibGljLWRhdGEuc2FtcGxlcy5zaGFrZXNwZWFyZWAgbGltaXQgMSIsInVzZUxlZ2FjeVNxbCI6dHJ1ZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJBeFJaeG1EU2pHcjhhazk2dzNqUTgwQWpYc04iLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:56 GMT" + ], + "Etag": [ + "q+pKf6Cx7KHbgpJ/XzZNKg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/+1Sa28SQRT9K5v1i8bubkELlIQoaYkiBMPL1NbGzs5eloF5LDOzFGz4795ZWNNGbPS732bu45xzz70P/pLJxG/6MUtXOejti4WK/RMfLEkxunqd9Wa1i0299zFOs0/R1Y/rQS9ttbCCuS4zV5xvBZFBAkIFFoxtTsdhezO63ojL8eKDbpDlee3+zWLYOG0vrswAOw3wWZ/JJfbPrc1MM4pK9jBVKuVAMmZCqsSveLSuRplWC6DWREdII1Rtomdo33FFiWVKtqZjlJAb0N9BEMZRhAMItIqVfX8EOmREhCnWrxkFQqnKpXXaEIUqOWNprgtgv/ngF1ofPdyoKNm7VzrxZloJ766cKMjymDMaJMSS0BCRcTChmZMlmAyIhjuPM8GsV0GeTDOlmXWA3cGkM2pfTLpfOvsx+pASuh2vcBCrc9id+GjFZJsBFg+nndFXfx8awQw0SApO3sHK7h9W6BcdRfb5TZamYiHaikTG4t9YRo2joRqK9IQJJ6dyVq9WG/VGpfb2/NQvirX9LXdWcTmQydHMgSMv8EFrpUdgcm7dF9lMoYXJNeF4n08E/r3z2CfAGJI6+u4ey7Mk5uBJIqD5D0v8Jm8meuvlhsnUQ+EyIXgJ42Hfe1mePuUqTw53//TmE0VNpMu9RWV7YFY8Aol6EDR4HH11GzqDClvQoJv/luwtud0fjdN++XnQ8Xe7nxVTqh/3BAAA" + } + }, + { + "ID": "a5019c8a6c744397", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/AxRZxmDSjGr8ak96w3jQ80AjXsN?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 400, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:56 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/92QQUsDMRCF7/srwp4U3KQHT3srKFKoBbV6qcXOJmMazCbbTFYoZf+72XQL/Q2ehvde5pFvTgVjJYbgQ1mzUxJJSq8wqfvZ7O5stEgEevTKhfsFaxSL0FhkDlqs2a4x+tBjOFZd31gjKwUROEHbWSROe/hB6hAC7j7dZh2OrCfjNKMITkFQ7O1lyW72MXZUCyGt7xXX3muLXPpWXMqF8pJEwG8M6CSKy3pFByvQpf+k0uravd3yciLIhJQANlmzCfV/0GUK5VswboTQ1jdgr7OAQD5n5gxYTtmQ53Y6UmqPPeU7rD7my8XD1/z16f35cbUe3w/FUPwBjqyvuS4CAAA=" + } + }, + { + "ID": "c88f844ac82188ae", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "218" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0IHdvcmQgZnJvbSBgYmlncXVlcnktcHVibGljLWRhdGEuc2FtcGxlcy5zaGFrZXNwZWFyZWAgbGltaXQgMSIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoib1N0aGp4UU10cFlSb0xRVWxGWDN1a1ZoY2Q0IiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:57 GMT" + ], + "Etag": [ + "Bk69o6oiPAZo3pY3wYd0pg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SXW/aQBD8K+j6Wmz8DUhRmxKnQqKoGJOWvpDzeW0ObJ9zdw5FUf5714agqk2jvtm3Mzuzs/tE9rxKyZgkPH9oQB7f7URC3hPQNMfXT3t/JHzBv17/EE69dg7rdFDnV1eI4C1LbUVRHEta9VMoRV+D0uPV0hBLvd39XHzR9ToSs8WquP3uNPu7LUtdZCooshmv9sjfal2rsWm+qBu5EHkBtObKYKK8vJuPtllLsQOmlfmKqImulfmG7IdCMKq5qK5WS7TQKJAbKCkv0ETboC9FIvTHV1obnJZGjvhHzoAyJppKt96wCxNVxvNGdo3J+Il0Xn/7aEdFy72DkGkvk6Ls3b9M1K+bpOCsn1JNDUXLugBlqC3dg6qBSrjvFbzkumehToo2eNWpxDQpoFU4pzH9xxZaFnZWcEJsEgA78JN05FmWa2W+73lDagXuyBmxUeq5NnPAHjgUebqV6Fi0EtUA/MQeuH4aZK7jZXYyAieA1AInGVgD2w6cYeC6QUaeMQ8JVMMNV7VQ/JQJmUThdRxuprebeRjehDcocJD8T9S3aIqgOFrNJ4hGTC25QFib4XQeh9H1JJ7ehafNzSCn7Lh8wN1ltFCAyrj++FhjMGSxCqM1OT1FkIGEiv1nYMjoqm9f78shIRBPCYWUxn9cEFOtTJdBuyhetnYsL7DtYTC0/MDySQeW+q/a0PKwdrmetiOUUOnzTMtwFk5i8nwWa9QFhEXMbD6df8bqL+hoVmfMAwAA" + } + }, + { + "ID": "6a0a5ced86b911e8", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/oSthjxQMtpYRoLQUlFX3ukVhcd4?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:57 GMT" + ], + "Etag": [ + "7ydy5G4pgswmGn4VZcQr4A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PXU8CMRBF/8v4ConGNSYkPIDRlWQl7iLEj/hQ2mE/aDtrOxvcEP67s+BTe9Izd26PsK+9gQls6/Knw9Bflcj5cCkwdpajHC35iDACZFWKed+b/i5N2jIeXOqTzafOQzKbTsWIukKnYHKEXY3WRJh8HcErhzJ2oGBE4b4daPVWLJapsCMz8HKdZbN59gin79MIGtoWuMOAXuOQ1gZqUPNiKBorsrZ3yo8NOhozRobzxPmVVlw1v/kLtx8FZfnaPr3fdvtNpU0iliWtuCYv4noFsoiJlS3oIE3hBv553kvoayCNMeIQen1Z8ECutcjSiEOHI9BKvvtc84VPf3onWkxLAQAA" + } + }, + { + "ID": "d5f7cb5b525894ab", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "218" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0IHdvcmQgZnJvbSBgYmlncXVlcnktcHVibGljLWRhdGEuc2FtcGxlcy5zaGFrZXNwZWFyZWAgbGltaXQgMSIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiTnRObHdjNnUzQWhvUTdIeGgwWjJEcE0xU2t4IiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:57 GMT" + ], + "Etag": [ + "IUHNop7Qw2WQ5e4CIrS8Iw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SXW/aQBD8K+j6Wmz8DUioReA2llJLgGnUvpDzeW0u2D7n7hyCovz3rg2JqjaN+mbfzuzMzu4TOfA6I1OS8uK+BXn6cCdS8pGApgW+RturWDTB6mjfrDxwF5HcjKPjbIYI3rHUXpTlqaL1MINKDDUoPd1ujFjH5ZH5rTPfi1Vw9bgf/bSXzTdrc3hEpoIyv+b1Afl7rRs1Nc0XdaMQoiiBNlwZTFSv7+aDbTZS3AHTynxD1ETXynxH9lMpGNVc1LPtBi20CuQOKspLNNE1GEqRCv35jdYGp5VRIP6BM6CMibbWnTfswkSd86KVfWMyfSK9198+ulHR8uAoZDbIpagGty8TDZs2LTkbZlRTQ9GqKUEZak8PoBqgEm4HJa+4Hliok6ENXvcqCU1L6BQuaUT/2ELHws4KzohdCmAHfppNPMtyrdz3PW9MrcCdOBM2yTzXZg7YI4ciT3cSPYvWoh6Bn9oj18+C3HW83E4n4ASQWeCkI2tk24EzDlw3yMkz5iGBalhy1QjFz5mQxTqcJ+Eu+rKLw3AZLlHgKPmfqJt1hKBkvY0XiEZMI7lAWJdhFCfher5Iou/heXPXUFB22tzj7nJaKkBlXH9yajAYstqG6x/k/LSGHCTU7D8DQ0Zfff96Xw4JgXhKKKQ0/uOCmOpk+gy6RfGqs2N5gW2Pg7EVOMGY9GCp/6p5Ex9rr9fTdYQKan2ZaRNeh4uEPF/EWvUKwiJmFkfxV6z+AtKVAE3MAwAA" + } + }, + { + "ID": "8a1dffe8652e2abe", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/NtNlwc6u3AhoQ7Hxh0Z2DpM1Skx?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:58 GMT" + ], + "Etag": [ + "J7IuKE5wg9PbtrdujlXuDQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P0U7CQBBF/2V8hQQ0SmzCAwgRtDZQJDEaH5bt0Ba2nbo7m9I0/DtT8Gn3ZM/cudvCMS8TCGCXp38ebXOXIq+7S4zOG3ZyVFQ6hB4gq1TMt9HSv88f6/R5tWOb+IP58rP1eCyG0xkWCoIW9jmaxEHw00KpCpSxmmwiCjdVR5vPeBm9CheUdBxtw3AyDedw/j334EC7GPdosdTYpVWWDqh52RV1GRnTFKrsJ1hQn9ExXCeurxFHptZP/mGS0Xq0OGWD7/tZ9THcHE9iGdKKcypF3G5AFjGxMjHV0hSG8M/TRkJXljQ6h13o4LbghYrKIEsjth57oJV8d5Hzjc8X4VUu4UsBAAA=" + } + }, + { + "ID": "9d0b2861bc3d934f", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "366" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im1vZGUiOiJSRVBFQVRFRCIsIm5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifSx7ImZpZWxkcyI6W3sibmFtZSI6ImJvb2wiLCJ0eXBlIjoiQk9PTEVBTiJ9XSwibmFtZSI6InJlYyIsInR5cGUiOiJSRUNPUkQifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMTkifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:58 GMT" + ], + "Etag": [ + "pxZTK0i42E7Y/YDIRyKAYg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SW4/aMBCF/4v7CtgJl1ykfYBirRAUqmz2gVYrZJIhuJvEaWxaIsR/30kKTVW2FcqDNWfOmfk0yom8yjwmPtnK5PsByuqDEdsUSIeAEQnqxfFLOGdyYHNnTdfTWVDNx+vk4QEdss7pvUrTKhN5N4ZMdQ1o48fCCA1mYzPLs5jtbkYjj42GHmNeH58NY8zqNXv+Y7E8XKEh3S1k/oqL9sYU2qf0CtpLlEpSEIXUvUhlv3X6w6ZFqb5BZDR9h45e6DS9B5M2mJreRduYAthBCXkExD+RC8jsH5fCzAWicdwDdF3TBO6gOuMRoz1kosbZSUhjTfyvJ5KLDAl/PTiyKurqKQxmy0fMtP1Dptv+bBnyRx6gkKm4FgL+mY9DPv0zUkLUJgL+cRVMsb5dvVUqbY2T1WrBx0tyfsGvU++dVHgi7DDSlAuVJyGUf8uB+nmtohKEkSoPZTPfGjq27Tqu5VrOoP6hj4Usbw1unzl4WDSkQptPKpaIGt/MsK1+CxuOJwteJ1TUDETp+Ymc3wCZcxW1TQMAAA==" + } + }, + { + "ID": "9d43a1b74286b21f", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "226" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRfdmlld18wIn0sInZpZXciOnsicXVlcnkiOiJTRUxFQ1Qgd29yZCBmcm9tIFtiaWdxdWVyeS1wdWJsaWMtZGF0YTpzYW1wbGVzLnNoYWtlc3BlYXJlXSIsInVzZUxlZ2FjeVNxbCI6dHJ1ZX19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:58 GMT" + ], + "Etag": [ + "+qYcgJVq8LWs7UopTGBiDA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42RUWvbMBSF/0rQHrfEstMktqEP62pKhjeo47SUUowi3zhqZMux5AYT8t93ZZKutBv0SZyre+/5jnQgW1HlJCQrUexaaLovhq0kkG8EDCuw/nX3wIufdzs/vtezparTmytx/f3yEjuEndMbJWVXsmqYQ6mGBrQJc2aYBpN51A1c6vnZdBrQ6SSgNBjjkVFK3ZHJXgTsM4qLNMh1LKotrtsYU+vQcc44o0KpQgKrhR5xVb7WnRfPqRv1DNxo5x8MzolBO5+BcfrQ2nnD1FcSWEMDFQcSHsjJbv6f1Dhzsuo7PmN7tukHXr2P+CB8AyWzpmsBMtckfDyQipXIQfaqye1gV1u1SJP57xvUpcqtTqLb5TyJrsnxCfdUbXnVIRxe2EwoY1UVKTTvy4nanxVvgBmhqlT0du5k5nn+zHf98WSM15Jp80vlAsHyDy0Xs+Av2t08ukdlU9kk/bdZ4iiOfqQDG2OwblQ5eDz/6bBuV1LwoX26ULOyxi8Z6Q3bgq6BNfCE21oNMRSMd4udJKFpWsCYUvEeGbcvF+T4ByKRxMzUAgAA" + } + }, + { + "ID": "436b8a54244551c3", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_view_0?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:58 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "e67506591a5733d1", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "227" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRfdmlld18xIn0sInZpZXciOnsicXVlcnkiOiJTRUxFQ1Qgd29yZCBmcm9tIFtiaWdxdWVyeS1wdWJsaWMtZGF0YTpzYW1wbGVzLnNoYWtlc3BlYXJlXSIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fQo=" + ] + }, + "Response": { + "StatusCode": 400, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:58 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/9WQwWrDMBBE7/6KRecgEuih+BZoKYY20DbpxTH1xt44AllypU0bE/zvlRVDc+gPBARiZp7Q7J4TAEHOWSdSOAcRZGVrCupuPp9djJa8x2b0xHtvGE8QX6SwMXTqqGKqYSvyrQBkyBfp4r6QkO2BD8pDOAiMO02gajKs9orcDMhX2FFACAy2BD+KD1AGXzYSysjLMSjBYYBcINFA/hcUUkz1Yhkf2uVRwzTHDVSPFWvbojJjw0bbHerrzBF6GzNlvlGr+vVIrr8mtK2Q1YX5+i9Y910cv0MXvmZyYmKGeBfTEj0jH8climz1sXzOHj6Xb0+bl8fVeuSHZEh+AVVsNvkrAgAA" + } + }, + { + "ID": "4d42ed2d58302eac", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_view_1?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 404, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:58 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/72PwW7CQAxE7/mK1Z6hclIaNTkjjsmFniq0Ml0XkDaxFDtFCOXf2Wxz4As4jWbG0jzfM2MsDQMPtjb3aKL9YU/RbWCz+g86EsHTnNmG1fzy2Pva7PEYyMiZQ7h12K89dbxWEq09KgqpKyCvcig+XVlWUH5UANV7FAcA+Zu6vwtdXW6XkQQhceM7ebPQvAwgDXnu8NLPO6fARwzP3UAonLqedTcj2KWckh6WR0RRR0ms7d7t2q9mOx9O2ZQ9ADSd8r1uAQAA" + } + }, + { + "ID": "6f03df53ad536142", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "227" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRfdmlld18yIn0sInZpZXciOnsicXVlcnkiOiJTRUxFQ1Qgd29yZCBmcm9tIFtiaWdxdWVyeS1wdWJsaWMtZGF0YTpzYW1wbGVzLnNoYWtlc3BlYXJlXSIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fQo=" + ] + }, + "Response": { + "StatusCode": 400, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:59 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/9WQwWrDMBBE7/6KRecgEuih+BZoKYY20DbpxTH1xt44AllypU0bE/zvlRVDc+gPBARiZp7Q7J4TAEHOWSdSOAcRZGVrCupuPp9djJa8x2b0xHtvGE8QX6SwMXTqqGKqYSvyrQBkyBfp4r6QkO2BD8pDOAiMO02gajKs9orcDMhX2FFACAy2BD+KD1AGXzYSysjLMSjBYYBcINFA/hcUUkz1Yhkf2uVRwzTHDVSPFWvbojJjw0bbHerrzBF6GzNlvlGr+vVIrr8mtK2Q1YX5+i9Y910cv0MXvmZyYmKGeBfTEj0jH8climz1sXzOHj6Xb0+bl8fVeuSHZEh+AVVsNvkrAgAA" + } + }, + { + "ID": "c1d50d0d7bfeccf9", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_view_2?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 404, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:59 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/72PzYrCQBCE73mKYc66dKIbTM7iUS96EhnanfYHJmlIt4pI3t3JbA4+gaeiqhrq61dmjKWu487W5hVNtH/sKbo5zCf/QUMieB4yu2Y1J761vjZbPAYycuEQng22U08NT5VEa4+KQuoKyKscioUrywrK3wqgmkVxAJD/qLtf6eEKO44kCIkb++TNSPM1gDTkucFrO+ycAx8xfHYdoXDqWtbVgGDHsk96GB8RRb1JYt1s3WqzWy+Hwz7rszcBPx/MbgEAAA==" + } + }, + { + "ID": "99480a915206a471", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_view_3?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 404, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:59 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/72PwYrCQBBE7/mKYc4qnahhk7N4jBf3tCxD6/RGYZKGdKuI5N93MuawX7Cnoqoa6vUrM8bSMPBga/OKJtoze4puA5vFO+hIBNspsw2r+eFb72tzxFMgIxcO4dlhv/TU8VJJtPaoKKSugLzKofhwZVlBua0AqnUUBwD5St39Sg+3tvNIgpC48ZW8mWn+DSANee7w2k87beAThr/dQCicup51PyHYuRyTfs+PiKLeJLEejm5/+Gx20+GYjdkvLaOUVW4BAAA=" + } + }, + { + "ID": "6eadd20692bbf5fe", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "226" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRfdmlld180In0sInZpZXciOnsicXVlcnkiOiJTRUxFQ1Qgd29yZCBmcm9tIGBiaWdxdWVyeS1wdWJsaWMtZGF0YS5zYW1wbGVzLnNoYWtlc3BlYXJlYCIsInVzZUxlZ2FjeVNxbCI6dHJ1ZX19Cg==" + ] + }, + "Response": { + "StatusCode": 400, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:59 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/92QQUsDMRCF7/srwp4U3KQHT3srKFKoBbV6qcXOJmMazCbbTFYoZf+72XQL/Q2ehvde5pFvTgVjJYbgQ1mzUxJJSq8wqfvZ7O5stEgEevTKhfsFaxSL0FhkDlqs2a4x+tBjOFZd31gjKwUROEHbWSROe/hB6hAC7j7dZh2OrCfjNKMITkFQ7O1lyW72MXZUCyGt7xXX3muLXPpWXMqF8pJEwG8M6CSKy3pFByvQpf+k0uravd3yciLIhJQANlmzCfV/0GUK5VswboTQ1jdgr7OAQD5n5gxYTtmQ53Y6UmqPPeU7rD7my8XD1/z16f35cbUe3w/FUPwBjqyvuS4CAAA=" + } + }, + { + "ID": "bd3421b0c3910834", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_view_4?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 404, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:59 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/72PzYrCQBCE73mKYc66dDQbTM7iUS96EhnanfYHJmlIt4pI3t3JbA4+gaeiqhrq61dmjKWu487W5hVNtH/sKboCisl/0JAInofMrlnNiW+tr80Wj4GMXDiEZ4Pt1FPDUyXR2qOikLoZ5FUOs4UrywrK3wqgmkdxAJD/qLtf6eEKO44kCIkb++TNSPM1gDTkucFrO+ycAx8xfHYdoXDqWtbVgGDHsk96GB8RRb1JYt1s3WqzWy+Hwz7rszdre8QvbgEAAA==" + } + }, + { + "ID": "67649221d810896a", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "227" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRfdmlld181In0sInZpZXciOnsicXVlcnkiOiJTRUxFQ1Qgd29yZCBmcm9tIGBiaWdxdWVyeS1wdWJsaWMtZGF0YS5zYW1wbGVzLnNoYWtlc3BlYXJlYCIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:59 GMT" + ], + "Etag": [ + "AayGkjmb0HWH04d30mJUJA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42RW0/jMBCF/0rlfd3GTqCXROKhrCooyvLQCzysVsGNJ6mpHYfYpYqq/nfGUcuudkHiKTqTmTnfGR/IVlaCJGQty5cdNO03x9cKyHcCjpdYn/D2Zvus1+z28ZZdigum71Z3k6sr7JB+zm6MUq3mVV+ANn0H1iWCO27BZREL45BF42w4jNlwEDMWX+AnY4yFgcteJeyzAS6yoIpUVltct3GutgmlZ5ygNKZUwGtpg9zo9zp9jWjdmGfInaUfMNATg6VfgaFdaEv/YuoqcyiggSoHkhzIyW72SWqcOVl1HV+xPdt0A+/eRzxIvgHNvWkhQQlLkl8HUnGNHGRvGuEH29qrxXI+u79BrY3w+n6VppPrdEqOv3FPtdPXLcLhD0Y6mZqqXELzb3lu9meVN8CdNNVSdnbhYBRF49E4jIehv4vi1v00QiKY+K9lFF7+QXuYTR9R+VQ+SfdsnniaTn8sez5Gr2iM7j2d37Rf79ZK5n1/usByXeOTBHbDt2Br4A084badhRRKnreLF0WSgisLmFOZvGPG9asFOb4Bhlx+/NUCAAA=" + } + }, + { + "ID": "42ab895aa873c3e5", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_view_5?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:36:59 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "9fa5bd2794888bb6", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "227" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJkYXRhc2V0XzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRfdmlld182In0sInZpZXciOnsicXVlcnkiOiJTRUxFQ1Qgd29yZCBmcm9tIGBiaWdxdWVyeS1wdWJsaWMtZGF0YS5zYW1wbGVzLnNoYWtlc3BlYXJlYCIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:00 GMT" + ], + "Etag": [ + "Yjxnnay3Cv7KElkpCkyZfw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42RX2/aMBTFvwryXkfshPEnkfrQoqhCy/oAdNNWTalJboIbx05jA40Q333XEXRVtUl9ss71vff8jn0klVA5ichGlM87aLtPlm8kkM8ELC+x/vPpRSnejeb76ddYVs286n4Vh6sr7BBuzmy1lF3N1TCHWg8tGBvl3HIDNg2YH/osmKWTScgm45CxcIRHyhjzPZvuBRzSCS4yIItEqArXba1tTETpBccrtS4l8EYYL9P1a53uA9q0+gkya+g/GOiZwdCPwNA+tKFvmPrKEgpoQWVAoiM52y3+kxpnzlZ9x0dsLzb9wKv3CR8k20LNnWkhQOaGRA9HoniNHOSg29wNdo1Tq/VycXeLuta503f3SXJ9k8Tk9Bv3qF190yEcXjDSy0Srcg3t+/JSHy4qa4FbodVa9Hb+eBoEs+nMD8PZF7yW3NhvOhcIlr9rCVgwGv9F+76If6ByqVyS/tsccZzE8/XAxRgUra4Hj5c/HTa7jRTZ0D2dZ3jd4Jd4ZssrMA3wFh5x285AAiXPutWzJFHBpQHMKXXWM+P6+xU5/QETr3kl1QIAAA==" + } + }, + { + "ID": "1b0f287462dd84a6", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_view_6?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:00 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "dfce3a3b888918af", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/t_view_7?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 404, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:00 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/72PvY7CQAyE+zzFams4OcAFkhpRhoarEFoZ1vxIm1iKHU4nlHe/zV6KewKq0cxYms+vzBhLXcedrcwrmmgv7Cm6Faxmf0FDIngbM1uzmiv3ra/MAc+BjNw5hJ8G27mnhudKopVHRSF1C8jLHBYbVxQlFJ8lQLmM4gAg/1D3fNC3W9tpJEFI3DgmbyaatwGkIc8NPtpx5xb4jOF/1xEKp65l3Y0IdiqHpKfpEVHUXhLr/uB2+696Ox4O2ZD9Al7ZKV5uAQAA" + } + }, + { + "ID": "daac2b78d5b82095", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0019?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:00 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "e620ab3008a70dfd", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?allUsers=false\u0026alt=json\u0026pageToken=\u0026prettyPrint=false\u0026projection=full", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:01 GMT" + ], + "Etag": [ + "UDEdqWFU40uhL7e9V31qtQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/+19CVPjSJr2X3GwE1FV+1F03gcTE7sGDJgbH1zVFe5UKoUFvvABmI76719KsgHbkoBue2zPAhWFrTzevJ73zEz9uWK66nplfaW8lXPvzrfLBPSqB9zIMwzvuqf/+tfK6sqt33BtDse/vuuZdv+/bprOgd/p2pSGeeyeqGtTat6ahs0CKUdIcM4xB+y72b7a4pcE75/19gtPzeyxn7/K750Dra9sWVtLZ2X9x58rflB5p9qs1fp11fjumnrze9d0uuvl4tpR96j2oFkPZ6vNU777WAVXaKt1CIu3j/ENiyouGM+0TUOblfU/V1rt5o3R3XwCmahEmJpOrdbUqus3g36Wiyu/Vlc6XdW1FFa2jo9yK9FXOyy+7gRUdduEuUt+3byMjIB2aESUud2dSKOS2TTTcCdSGOI2pdvsqtpG3zb7pN3UptMxQbOBTQkHIKCbnOUlZcOv1Z4fa6WrZtfvrqx32z0z6FXdNLqlfitoQzF3kNssrfyyHdbNhudf99qDYfjzhergw0rH1OxQZx6abTfjtZv1zB/Dyfne6jk1X393VVetdVS9VTOdtU5V3ZpOy6i2+SNT8+t+NwNtk1w7LX4jGj7l1N45i0HNHRPlqDjGIM4cV1IICfQYo1QoyInEUkuXEqSxQQCrYFwCEmEp1Wg2gGEOAoS53COYesiRBnPjQoMdAAFCHAtOCPeCBRDOsdnyO61mxx8sjc1CLlvKVfLblaNcbiu3ZQk8tP3xXOeFvM1UKpSPNm1um6fV9ps2WzCG+aNSrpDdLOXPgoRexxyYa6X7xbvayrqnah3zK1yxg+k5LecKl8PV2AuX3si6/BVW0a6YuvJtBSvBYH1vN51m939jhnHNV/W1a5v/3tdGad3sNbprulm31aQDtVnsVm8eTw+7rctC8+C0XNu+wL3bs6p2yQyAmk5tOkBlHLIkoDIBaTxQmcDsE6ifQF1YoGYfC1eP9a3izU5bqFvJHvDNqQDZm4vO0QyAmk7tLaCadrvZLphOr9YNyNpJ7ISZ/ca9qtlOjtTw/gVsy9Ut3qzeEkxiVFcmXFyZhqqb9Q9g4ffGj1K7n+l1/MZ1xra+4SoLqOLpQeZrtdttddZ/+03Xmj137brZvK6ZYIZ+G1b+m9vUnd/aw4H9bVj8e+eu9ptp2PbYSr+/fvrt59pwlN7Bv4gEifyLQpDAv4KUfyMHeSecAo73Fpo+V0vsagmHJdK0P4ckGJKfq/NhvL0bcV508tvXonOszmF3f/fwvtpSvb2TWTDeVGp/k/GehixgpJq7waOXdVHsN7rqMRNWtZ4pW1OxZZtu3MzvKz9+X8mobuYHXIfi51om72W6Vb+Tsf/UYBn5rtVrfM837dWM6WjVMjZLtLoyD363mvnDPl+7Xsv8EeZfCxL+yFhuVTVtm1M1Mj9eEj7ENRFL1voQlwlcM0j5a1zzRxxU1mOg8vPjXPNdSsh/4lyn8Lwl7M+cGNbNg67rh/Lxqevhm5v8tXrwLhV7OO3vt2bAsNKpfTKsRIYFgExkWAAl+JPClE+GtTBz/cmwpsCwru9PdtSJaKPb8tG93Hlgl7fVw91b3MedGTCsdGrT8UFRjGASuClhCeCmRKKl9EH9JdYyTx8UJI7jAMIMUoZ4WFHpIORoaf9jBDseEsh1jcbz8UG9x2ieB053Ss6tc1HTe/iy3DvYfIRun+itjSD2NAOcplObDk4J4IlWA0FAxOPUAvidQZ3ww0lNNUIJEbDZAGsArGeOe91WL+iuPywUNuKwM0IIs0ETxp5TgIMlp/xuIehX9v56ZR2sQTH6i6Ish50wfQW9LnKoHlOLhOlhETt07isq0YNhneB1hqjOYYaohpD5NOu2r+Z1Uwkd/cXPuYY107GCgwanFYwo0iEYX+jBwZNh3RCO5AnLveSJqgnzdKo9z6uZaLLCqQ5SYhOKrdf8tm205Y6dgh2JQYnBk3NLoxvFXAOGoNrKlqrlG7aaYd1Bf2rGKgEncalDFrCyeXx4cpArRYvdtCIlZABCy54CntTpOcOklX/A9XD9ra5sF44PIw2iggCUECBRYUwCRqXVSbH9UwEAipWfAT8YVBiysoka7YPScaZSsW26NgBUmtGi/vnrZ6BKBPy9bkHpxgsqC6qa3zBhs01NtWxSuMoJEkNwFWvNASJIALiWBYLfuC43/HA0wOuxGj6EoRYTlrbD1w1ZcYqQfKf4dOwXS7lkVa1wpcS17kXEhtpwMOMDvueG8i2aoI9JuMHnlHkCcES4vWNan7W8GPEf17OPqASh6hmqBO9oyHxVANf1jNHSVLAncIVILiuSOqgCNOVUGG4LsimLf9d4yho/W1H7g87+hbl+a3x+LX+oq1mg4OH6cqfrtsXmJWnWUf7+/pCePRT8WcSkU6lNR88AVlQl6RmAJnknoZ35RG4F0RQVDcAJiFM0gAhjUROKBuSMcECFQJgiSeCoosHiFI2kIpG0ZZOKxhpH1iCyYGCAC4IhpqOqB+aTukdymYhMWCZGHYGUCYa41aukAFgiOKGOiHh1JK1gRFK8rY7Qd6gjNFEdIejD+giO00fwXPSR1cw/0HqjVx/qJe/hgmtvChf+DuUloDwbBSbE85ggDTePzViBgaPeg2cNxrIfQTl7hyITtnI5FBn+MUXG9uxdikxUQea/M1NdjfNVdbDrUFuMVDzLhCuWLZKKgyCrUGIEx8yhrhCfu21GVJD7VrWnLzdkdZP6pTzcKudx1tSFuiiKGagg6dSmooIACXHSthK7UkN35aQKAiQHydvipqmCAEkIi1FBgF3tI/rEQGIDOfoLx5wdI/6RgbBOLjPQDiaUEDimcozkGMrpEQUDxysYCI7+Tvo7xjWTQZvTCkYk+aSCEeglo79oXOWY1DjSCr14Vv4PqCC6cz9P9QG/bER9Fl9hxGDRtYewkdNSHl4kWDAdHxH17J0B0lFJH1CZr5T2NLXcFoGKByi1UtoRFatEqIrgSChPOa5w57kndtDcLeP5jWhZhdLGDlsgopu9tjblth+C4zrY/RUzVL85d+Hf729qTGwtBKGddLua6iog4fmm5nZey5aBO7M7WA6lQv5oJxTsw/QQ0oPkoH87uYJdSYEADZu73WxbeAajVzwLVm7n/rj13LGQ3JYJw1XBarcZbLlbv3Vg+ZfFQKH5MMDbr1+LqMDs5UFj0y3c0l52ixyj7s1umZQfz052BJyBApNObToKDGEg6QAOIBzE74sFVAr2wihttaHAC7mXeey2lY78cC+4t4t426+ZzWCkw9UMg3XoN16JO4wnuY4EkUQLpiqqJ4rwvyzXgffve8tvRYzf9uV16YDHvSofmU3jZeI426t+RAv7L7Ku6dtoISceHVtbbFrsYbzqafOeV7WPsIoRuOcuSgHbnD/gd/ccrC78p3tf9kS7Wn2k2ZsDcn67fXk1A8CnU5sO4GHylk4ASejKiwE8ASHP+VvB2VC7fMNeseoxibNXIMUizl4BAjFr4iBr0UjIMaVs1GCBcQZLcqFBkHLSbTqd+CzAGFAuKERYWogQhCYMFhJvsKSWjGiSOIslrtyIyTJaKoXaiM1CpmizvHry77FZgrRyjO0BMuv/ynxRX2zCPyAMvsARiyWhHIrKOWE5FJZD7ymHo3I6LIfDcvjvW0irrzAH1zObTWWtA22GsIPxsENAxroJEEaB1zWU08WAWNgIEPDx6UAxbqG9QiKZGRIJxAhhSACRVDDOxXu3SgBOsOVHjCIhEWWTOJTxngNrhBAuMRaCIMnZ+N4JGYfDiASUAhMeRJPGYYjn4zugIBWIFPwN70FoNr65stG4+wslrGsEeey6JhJOrms4ua7HYnAQTa7isZhblGUmixamrL1B+8YdZUMf1JurNiw5sWxHAY2ZGFu2XMQt2+RSA9+aSFq2YEk9XgOmPLJ44cvi/ThPR9PxelExuesHgXd7vVZXrAXk35uXbEFXXhOAkIEJCtY+hO+kQdE7iCAGyfSJ/Ns3NA1avByBQBYOUKNX36rXsp4Xbp8feGfwyqTbMH9UzBVi3IZhn9/lOIxqmFJskGW+Rj5o24Fvvzd+7/7ezYz9nGUPyrli5qtV+FYz8Nuq/eTYTyj8pO0n/G0qrssZ2f/LHgrs6Lbf6lZsuyrS9lUozrB0XYo8ahyNHcMRJ67nudJUZuFb+yj9aRjfXEoEE7xtNo3EhwuDFEpS2dHsTzCsDgasONJNc69qvbCj+9H0FEvZUu4wd1SKOqlvt9sWhhFHCzt9EEopCAdjsNms9ep2TGXY70EiD78Mk6DVjbrmsfvcmADOmWhPZLaYeXUMohI8C1JDMVw+OsoVS1+7zVb4vPMtyD3Mcb6bK+SiOvJHma9RlYPQRXAAI3oQ1hN7ePuPuNPbQaFvgSv8A4GSBe/MnDeTAgmZS7ByqJCa2hLIFQhrFsTPXcyCHRhKs/nGbyJ/lwrWede0R0Ipz9M1UEfDHBGw/hxGULKFQvYyUE/abdUfSxsGX369Kn5mERfmCQuE3yKa91HCSq5eVyH3HT449Ee/HzVVdeTBcc2/H8tTbLaqY4/yHeWYWm304QSxonGUXTCqMfL0wEqJ0XLBObnRVqput2oeRp5tqYZvaiOP9pS2jH+soGmOPMnWzKNquFYHS+32Xq823s7xodowjRtV9xtvD8RED2NGMFf3a/2RJ5u28vGKmtdjjYqZnj3Vd01jjJ43lumgp1VndGD8iVKx0xVQHBu9LXVvpflIZZaVBBrCyDPVbo5Wlb1Xb8zWVr82Rv5ITa4OX1fVxFIIkDUywDX/ZmySz3zdtWBWb+XLNrrVZqM/PtFKp89yTPcmVvF5YBSMlZtcxptV1bZKc9eM1u+2xycnBhQxy+gwPDX7QQxOTvJeszPaoMlllm247bEeB6Va1fGxnATNBCSzjeuxrsVjeYLtTK6FSbhPYiYGWTHcc3LlxbKFSXDl7k2t/zaWJ9lQ3Io56DXGuzy+hCaRFIfRg96tGZ8a/z2oKWq7Qk23+xarKPTHuf8ESyuqem9sTIuqYfnQdXNsITUmecEkGz0xDVNrtsxbo79ZbVvd1TLmsRZPrPJs4E5RkSr3LM3D0+RrXhiztMZwJdRvK0GQ2KTI9xcZPlbR8LT6Xyj6PspvaBblzUhJb/d0qOyPaC6DSHp3tJTVhhgZaY+OlPR35PT8mhnZWpLWzWdjKznzz1+x4xIZL5XQYPjQyLabD5XQek0pNuxVsNnFbfcLvcazFhjY19Zqa/YGPjZIpcCCrCy25Y2gZIJTTBnxEGEEISNdLQAyXDtG4MosTiB/lP50LG9r3vMky5sLFHt/JZeCiJStfQRLzBh6537dt8Pflh6geDJeYZ8jOBJ4GO5/JZxBCZ7/x2NHk+OODCWWGZxNnjwzNLZdFwI6Eb8Y268bZYmJYExG2URCwFtMRChEQoA72MyMhv+PHwJKCG8nlHkjuI2IiI9cpAUoGEAC0oU4q4yGG3NxsDHXCS44+Qdc71tzfxi7iL2ortdRkRkbfgrckhXda1vkB6s5cj6Yu56qfQ0CGQhA/m0k5JHd2SnkdrJJgfPibrawVQmFVcVm/foPlDkubOUKmY1L29DMVq64mTnIH+ZLGQjAt7eDKWF4453R8dEYYmxsPMCkhPGYxO+NjWNIkKD85f+xXfVx2+oTy7zaEj+j0Pgog4Ds3aHxtJKJ1wjYcmz8ZzzMGIvi5FIvW/jjrxoAfwHHi4FgMB5lBHFRxkTIRXtcCsfHpRHEgRfIfRxwcAxw8N2hy9cCNDGEyV520D9HlTB678UF6G/s3H/dupgN/IRwgCOJkB73i1r78bBfHDMe860+s+YR3+kEm/7IRv+ote/y9ucuTgq5YjF/fJTu7qdj3n5EX7n7ZZK3f9SR/bJcQ0f383qNBNn4qn3b5Z0s1KKykVwLZGPmX6FQ+5h3P3I9Z0q5w5PMdvlos2QHySIkMCSsmWHa2has+A1rYzRUrVL5+hh18PceAFhH5kn42YSe/q+P3/75e2MwEim1LOKQffvnnKMIjAkMNMAV5hFTIRToiiOkqbiGKk4dwilA//ERhE8/xqcf4y/6MaTkcBH9GP3qZn7XO+Ubh5tuqV2/PTknZ4fF43J+e3cGXot0atPxUTBBEncHMPsb56MQAACUcp9JnI/ib+s7sRrDuH6xWcifJOoXVgZtVv2auxe+9mgFvW+PUCBQvn/PbBldU22TUZl71fbDSzu7zYydPjeMgncyyv5rZEKGsRaU2cptHmStbHpmp0nS9p8DChs927bnOjJNL7wC1BYPROWASHQhk30cSrxA3oW0irnSKzr/yiyiTB5287zq6+pwzFpB3D8YumDPQCfjNzLFl+0AXzqZVk31O/8TdXHxty6EXVyi/QvLvp+rXd3K9gu4VL542HT3zvvbF6qfJ9vN7dLtDLhxOrXpcGMqQMLVDjZNioS9WgyEvuSFv212ALL/tTbdWtAHW1m9tRp9L/acYqhPrdk/1q6dM4w00EZgCR2slYMVxVggJT2mHc8QpSyIAMXIcRdVibdDmq7Dpaqwz5MzqUSW8oeWtWYPT0Y0wGjOsoHgmizyUWPheSnEqrCpDX9eOymqbwyhv9bwv92SUBme3GUV1TjcZvXnq/GIS4zorL8EklU4mq/m8FWalcbsO8DfEchAug7IOqD/D4B1y3R+DZqzcEy++9jezgpnu3/t3By4j+zo8ELu97Zvyyf1GTD5dGpTYvIQo0QmjziKZ/IUy2Vj8nPm4Q6nnoc8jgTSlGgXMq6YSwWhXHoGS1eRoEr+ycM/efjMefirwU3ZSDu6+8mJ7jj5IP/XEf8fG5gYom9X5Q4m9e2cZmUwFP8pYuf+oknPNs/vD+rirnArzkDXKd9sZms5ejMDsZNObTpiJ/nWFZvGQYJtQXiKp+dT7MSIHY4MIcoxjss8ohBwKHSQZFZ8K6Y0AhQo4RC1sCcI0sVOIDtWYlneEOxDhK+B4AevLCjAs2irQa/cHVq9Avndy4LaOtg9K8hq7mRnBgBPpzYdgFsTNRHgWOLYa5WCFJp+7vQT4GMAV5AJTYWHXWJcLBV3lZTSMRS6Ft/M8TT1EPPgcgJ8K6CWCvAXab6o2O7mdqu0VbjZOCngs8385v4xu+jvdM6L7Vk4BtOpTQnbiCVjO7IM47BNPoX3B4U3cDlmnCCLZOpKjxDqGIYDy5HbSjFzMPa0oMuL7bcFeIy2vuCy/MY7aXfb7b2eWwf12nXu7r69cV7POvsczwDv6dSmg3fEecJrJmya4CQe70iCpXjt3OLgXXOoJHCsQHchMhxJggESCDPlEuYYAQmB2PXMcuI9zfkx4gT6wFnfFFt+9V25fi4oE6lfZTf2qjvVo+PN7sVpndWKl+VGsd3cLjVnwETSqU2HiQQvT0lkIiD+XTU2BYJ3vhPvk4kMdvthKAhDiBoOsQYEEgWRlALwoA6tIVQYarnEFv+AUXxQa3j28S0k3kEuVy75oHWcu7w536D11nlBPW70OhcPjRngPZ3alPAOecKLqG0ahgmBJYjJp9LwMSOBuZw41jDg2CpqQkLXdaxpAF3hIe1ZbUHbCpSRy4n3jctSrpiO9au6vF9UWPMdUuTtIj0rVs3JDReGHlVVo5t9KLozgHU6tenAGlCScHuyTeMs9vbkIEUmv+/lE9ZxYtxVlBNFsWLaEMkcQTwsJXWDt9wRJYwGjnGs7bWUsH5+q0IKrrMbm4sK68PrC1oFu0/1/qW/W949e3QbzVL3qsO6s3iTZDq1qcBaSIGSpLWQEsXD2qbQd16K/gnrCNbS0xh4RnqeIYg61qAnQjOmofaUBzUSRLiOo5YU1hvHxwfpoA4mc1FRfXNd3y1ubNRY63L7GnvH9St9fv5wmb+pbs/CcZdKbUqoRgwmohrz+CCckAR8BuE+5rijBhMsOMaEEKkUB5AwyASmnnI8YkfWBK9hmvaLn/9NqD4qH+YK+c03Au1rGAx+FhXfu9fdmz44JHsthZ5Ojmrt2mmd72+DnjyaAb7TqU0H34KFwbZYfAsR/+6iIAXN+zbVJcO35zLFPQE84BEFg133hHsc4cC55mrP86z+RFyypIG47YPjbHge8g18LyquH/Nbpau78qaf3WO7WaY3Gtum2zzeL1A2A1ynU5sSriFK2pRtwQvjA+wBrD/l9seMbCU1NEhx5rkYeRBI7GEDXEew8BUOVDpWlrMl9Z0NTjmnonpRMX173dC1uzPZa9xv9fdO/CfCOyWdvTm8PZwBptOpTQfTnOAkx5ngDCdgmjMmlwjTQXjm63OM5uuXmDjMl2/zvlVbOwYIbiHueh4DrmFQC8Koa9eOYJoz5HiUKzwn1AeTsYiIPDmvlqo612ve+SV84jx1zls+vmMHJ1enM0BkOrXpIJJJmOjzYlIm+Lw4QMsUoQp2WS08IomjDRcecAWS1LUmtFWpPS0VDC5kQMFpM+x6c9ulvrCILJGnXdwuHbO94t5+bqfc3+m293b9Zn5vFohMpTYlRMKkV3PatGjTaQwi7QpZpo2lb4FxzlhUgAniKOE4kEuiFAKIa4cLC0LkcsdggB1bdk6HzRcVizvZs/rDds0/rVbbtQPW6hye8LOTzetmdxavyU2nNh0sUgYSbVDKkqSj/btMB4M3s8XS1y9es/kluJQl3Gwwb/wZbI1OzYRBUmsDOcfcsXaqIxkgCGigGJAQyjnd2Lao+PM2VK/eP7+nMndf9q/Pt/a6l+Bo+3hfPs4Af+nUpoQ/IJPu6xbULosE/EG5TPslv2Q3Nr/MGXCOA7iArhQaIeq4jmuNQCkAEUIRbJNcIJRD+Jx2XS8q4A4PzktGlbecbB0UD+/O0KE8KBWeLvqPTzMAXDq16QCOUJSofBJG4zco25TlUj4L5dyc8YaQEcyhrlXoAYQaUFcbxDSFBGGNHG3lHnMdoD7x9hpvpezRw+YV7jfpw3brrm+1vYZXcC/uPHQ3A7ylU5sO3qw9kbg5gYCEE8I2hS2T+yUIm81ZvBnjAM8AV1iIceICHryW2vM85QHNAXE0Q0C6+hNur+F2sFfuXApQyLVp9Tx/gXju8uy4etg9q5IZwC2d2pTglnxoV2DC4vfj2xSxTOINzju0oB0LMUWQ8mwe6UHtecBDCHFkjTZbqcORQQZ/gm0kgA/2Wr3ccfWo19l5wvjpen+rLjdKeHd/YwZgS6c2HbAhwnAS2BBNAhuiYpl2yYcHOr8OvkTXV339EbwB5+fcAwqQUOY5lBkBOaJGIgWlhSHBBFHpGotCLbma64tzFxGIvVLxkBwfdt1uscSd+163yqvugTz0CuUZADGd2nSAaKc/0YsJBU1QMqEQy7Sv/UcEu9UM/rmaId9WM19/0NUMs1/4t59zRiLVLvIAYZwG2+WEsaDTniaQYQEggp4CTBkIwScSR5CYY3mx8Vjyr73W3sE99590sdXfPDvf3+3PAInp1KaERASTkYgRTkAiJsskEn98HQAxACFZzQQwnDsEGSQSaYEh5MAKRSAkJtxAxLEwQAmijAeQEZ/CcBSCauv06UmcUX6NdffSoHtpTlBJlq+vvBlAMJ3adCAIWLIJCHiShxPwlFeALh4EByqoxeBq5kcAwZ/zVkZdAaiDiJRU2TpcKQHASBptOaKWEkroWQBid55nvhYRf+fnuthvFtyzwlHj9MZ/MPmjje1zr8z2CjPAXzq1KeEPiMTjGgDBhO0tAC3VIctnVXTOqJOEOQxSRyDoQBcbyTxs/3KiCDNWIQWQCgfreV64vYiou37aYw/5tuPue81Hp2eeti/7G97JgdquzgB16dSmgrrgruEk1HHJSPzG6/B9U0uEulDvnLegg0xjK+coB4xDHGwgIhgQL5gAhYTRiHIHON6cQg0LCznnhFc79bsbv/CQhec7Ilv2d+WGf+ifzOKur3Rq04GcEDwplM6F5PGCjgd60RJBbvSsQ2YhN3M6Vr0EnhTMlnNcAQ0nxmWuG7z2TXoQc4FcSZT4ROTolb387Oqi13C3HkqwtEfvn9yrJ7iFH86aswi2p1ObEiIRTjL9gkh8vOnHBUFiiRA5etZhMRHJseNag9AwgzCh0PM4VdoD0GjXwx7RUHBNqZznUeJFRKTcK+URu2yVLtF+59LRhzR/7PV2m547i+1m6dSmg0jOYNKluvYn9HrGINL+LNP+6uEdz4uOSsAlZ0h4ruV5mkOuEUMAWZMRQsBcRTwKpK3iU06OopLttYsn8O60cdO+1vnc6TEo5re3r3qt1uUMUJlObUqoBDjpTCDnKOHWSptClklz/fqlamq15pfVzILD0nGk43paMuoQxTzPc4nGzFNUOIBJAIUG1Fqbn8HDsYuscu2dVvmyuIMd75yYo6Pth7MNxaW3OYujuunUpgNLhliisGQExr8uyqaQZToM8eMNNL4J13m7XLWkUknFJKaKMI5d7QZvrRUqQCvyXOgYjT3tfMJ1VLfl2MvVLktXW2SrfAk23NpNq/x0SG/p8Sx021Rq04ErTXG52sWUIEWp1bmWCK5vgHHOWHRdKymlLU2x8ozQmhIIAGGMe8rlGDhaYweSeV5Jt4hY9Hf6j129/ZB3Qbdzbi4bdO/u7ESA3ews9t2kU5sOFonAiVgkMmEHnE3hy6TRLuA5Xk8LF3kCUOkwigzghAjoIaG45zoKIccamZ4083wx2yICsNO6vkEXD0fddmdb9JqnVw/Zjn+4q2lrFpewplObEgAxSNoLbtcEShCGhCzVxrdFOMgLHM6wq6y9aP8Z7kCHEY6V8TwEtaEWjVJ41JnT4YuFRZzZvtrilwTvn/X2C0/N7LGfv8rvnQOtZ3F1RTq16SAOc5AYfsSCxW81tSlyma5FXYCTvBii4E3C2GBXusbFyoozizloKNdEeiI4hOF66P+cvffz1/8HcD1BVEf1AAA=" + } + }, + { + "ID": "5ba1e040186a509d", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "72" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJkYXRhc2V0UmVmZXJlbmNlIjp7ImRhdGFzZXRJZCI6InRva3lvIn0sImxvY2F0aW9uIjoiYXNpYS1ub3J0aGVhc3QxIn0K" + ] + }, + "Response": { + "StatusCode": 409, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:02 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/62OsQrCQBBE+3zFcbUBCxvTBZJCsDIWioisuSUG77KS3YAh5N+9nFf4AVbLzCxvZkqU0tj31OtMTV54WZNBrzbr7eprOGSGZvF0bnsEM6ry3bJwpgoQYBTFD7J2dNClBh2lgiyZ0HMkHRmhgz3iErSKZf/iB44hB223YBpLd7C/mccyhcwML9vWIKhjOod7jUNZQAYOW/aHMi/Ot/K0q47V8j0nc/IBXE/GKzIBAAA=" + } + }, + { + "ID": "3f51c74fed4229c4", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/tokyo?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:03 GMT" + ], + "Etag": [ + "jQy5ZIFyGuC20r9/b3P8NA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/32Q0WrCMBSG3yW7tY12KrMgzG1OCptuRRA2dhHTY42mOV2SOor47qbSyi7U23P+7z9fsidboRISkqVIfwvQ5V3CLDNgSYuAZanbbD7L3lf0Wk6K56CtB3R5//EwHQ2HLiEq0qxRyjJjyksgQ8+CsaHFbYkuYECu3oTautja2tyElDaH/BQxlcByYXyO2XlOdwHNNW6AW0MvdNNa0NDmSD2IYQUaFAcS7ptZVAk2ubo1uiJNDi3COAdjSPi9JxqlayKLOJqP4+opOXDB5ERjkbt5XbbQwoI2jj0Ts8X0BjD7U1fyhQH9VI4zJmQl7Yw8jUu0jxdcfcEyP3XATnBw0lgoW/3i/954PHq5IRIDS04mPy3CNTArUM1FVpGdXtBt9/uDzqAb9F2BZMa+YyJWApJrEeSnBrdiRjBPobZrcFyHHI565pKMZAIAAA==" + } + }, + { + "ID": "631f39fb888f780a", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/tokyo/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "242" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJ0b2t5byIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QiLCJ0YWJsZUlkIjoidGFibGVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAyMCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:03 GMT" + ], + "Etag": [ + "+bJ8klHWphVhtHWFgb1OYg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SW0/CQBCF/8v6qNBtCb0lPEiCgEFMsJEYY8i2Hdq17W7trpeG8N+dFpBENPq0mTMz3znTdEMyLmLik5AnL69Q1WeahTmQCwKaJaifh9dulk+WZXqf6snyKgnN24dkMMAJ3uypVOZ5XTDRiaGQHQ1K+1pmtey2oJVFTc+klruybY/afY9Sr4fPilKLIkNBvp5xkSEp1bpUvmEcknQTKZMcWMlVN5LFl268WUZZyWeItDJ+sDdippkCbLY5jDaHMv4Vpx1awBoqEBEQf0P2TtNfbsWdvV070ToeODvlb9stfoYohYI1fmsOeayI/7ghghUYYfcgsi6b6i5YTOdj3Dn2Xwt17E/nwWg8WpDtE2KxNawxJurNdVjOpEgCqL7LC/l+qKIKmOZSBLylm33HslzHtXq25zW/xUfJq9MBt0cdSpv9nCl9I2OOh8QnDKdvHqMGl8PZqNmQUQtEiSnOOkJWOgXEmGT7CVEHXgygAgAA" + } + }, + { + "ID": "48e52d277c16733d", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/upload/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false\u0026uploadType=multipart", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "multipart/related", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7ImxvYWQiOnsiZGVzdGluYXRpb25UYWJsZSI6eyJkYXRhc2V0SWQiOiJ0b2t5byIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QiLCJ0YWJsZUlkIjoidGFibGVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAyMCJ9fX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IkU2VXEzQ0tFSUF2eWd3a1ZhSmtKeUdGM0tTYiIsImxvY2F0aW9uIjoiYXNpYS1ub3J0aGVhc3QxIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=", + "YSwwCmIsMQpjLDIK" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "no-cache, no-store, max-age=0, must-revalidate" + ], + "Content-Length": [ + "851" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:06 GMT" + ], + "Etag": [ + "\"CRkpyt4RXWzE4lvoHDbioIbWdUA/xmHnQLYqH_Wlyye14GtMpmSxHzU\"" + ], + "Expires": [ + "Mon, 01 Jan 1990 00:00:00 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "UploadServer" + ], + "Vary": [ + "Origin", + "X-Origin" + ], + "X-Guploader-Uploadid": [ + "AEnB2UrzKSoGj78wjQVTKbY4hO-qYtcaD40Eki4F3p4LJ4N61G8LmDShmPvDmIL4XTVICJlF5i5PlUabE4elpixSO0ncEQGhVOkuR0wFbGSzr4EXZ2dY3jU" + ] + }, + "Body": "eyJraW5kIjoiYmlncXVlcnkjam9iIiwiZXRhZyI6IlwiQ1JrcHl0NFJYV3pFNGx2b0hEYmlvSWJXZFVBL3htSG5RTFlxSF9XbHl5ZTE0R3RNcG1TeEh6VVwiIiwiaWQiOiJzaG9sbHltYW4tZGVtby10ZXN0OmFzaWEtbm9ydGhlYXN0MS5FNlVxM0NLRUlBdnlnd2tWYUprSnlHRjNLU2IiLCJzZWxmTGluayI6Imh0dHBzOi8vYmlncXVlcnkuZ29vZ2xlYXBpcy5jb20vYmlncXVlcnkvdjIvcHJvamVjdHMvc2hvbGx5bWFuLWRlbW8tdGVzdC9qb2JzL0U2VXEzQ0tFSUF2eWd3a1ZhSmtKeUdGM0tTYj9sb2NhdGlvbj1hc2lhLW5vcnRoZWFzdDEiLCJqb2JSZWZlcmVuY2UiOnsicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCIsImpvYklkIjoiRTZVcTNDS0VJQXZ5Z3drVmFKa0p5R0YzS1NiIiwibG9jYXRpb24iOiJhc2lhLW5vcnRoZWFzdDEifSwiY29uZmlndXJhdGlvbiI6eyJqb2JUeXBlIjoiTE9BRCIsImxvYWQiOnsic2NoZW1hIjp7ImZpZWxkcyI6W3sibmFtZSI6Im5hbWUiLCJ0eXBlIjoiU1RSSU5HIn0seyJuYW1lIjoibnVtcyIsInR5cGUiOiJJTlRFR0VSIn1dfSwiZGVzdGluYXRpb25UYWJsZSI6eyJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwiZGF0YXNldElkIjoidG9reW8iLCJ0YWJsZUlkIjoidGFibGVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAyMCJ9fX0sInN0YXR1cyI6eyJzdGF0ZSI6IlJVTk5JTkcifSwic3RhdGlzdGljcyI6eyJjcmVhdGlvblRpbWUiOiIxNTcyMjg3ODI1Nzg1Iiwic3RhcnRUaW1lIjoiMTU3MjI4NzgyNjM4MiJ9LCJ1c2VyX2VtYWlsIjoidGVzdC1yb2JvdEBzaG9sbHltYW4tZGVtby10ZXN0LmlhbS5nc2VydmljZWFjY291bnQuY29tIn0=" + } + }, + { + "ID": "3c720ce75409fd7b", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/E6Uq3CKEIAvygwkVaJkJyGF3KSb?alt=json\u0026fields=configuration%2CjobReference%2Cstatus%2Cstatistics\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 404, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:06 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/7WOsQrCMBiE9z5FyGxBsDh0E23FFtpB6yIiqYlVmubHJFVK6bubxAy+gNPP3f3cd2OAEGZSgsQxGo0w8gqUGRXNo9nX6JhSpLEeLkCjG/SCxiiDGqk7cD50RISUdRBqpnScLKvnYp0nu9VraN7tkWRtNmzTRb6vsS90QGX6Tk4jT/4LzJVS6MhD2M6GQ034byYZUeAyATq1OOzDyd2zH6000b1yu8rDJS2rYmMfp2AKPmIs+VVGAQAA" + } + }, + { + "ID": "97a660ea20cdc134", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/E6Uq3CKEIAvygwkVaJkJyGF3KSb?alt=json\u0026fields=configuration%2CjobReference%2Cstatus%2Cstatistics\u0026location=US\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 404, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:06 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/7WOQQuCQBSE7/6KZc8ZgdLBW1RGCnowu0TEmpuFq498ayHif29320N/oNNjZh7zzegQQnnXQUcDMiqh5BVKrpS/8Gdfo+GIrNIeTUCSG/RtGZAICoJ3EGJoWOuWvAFXcpRBns23y/zprePtfvUaqnd9ZFEdDbvQi7OC2k7DRFV5MppY+L94preEhj1aXVsJKJj4zTrOEEzWggw1kdpwMvdsd6NkskczLT1cwjRPNvpxcibnAzE69qpMAQAA" + } + }, + { + "ID": "7cdcc164620922ff", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/E6Uq3CKEIAvygwkVaJkJyGF3KSb?alt=json\u0026fields=configuration%2CjobReference%2Cstatus%2Cstatistics\u0026location=asia-northeast1\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:07 GMT" + ], + "Etag": [ + "lyWpxws/2QMsU18iWvctrg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41STU/jMBD9Lz63kpMoadIbLKEqsEVKy15WqHKTaWvq2Fl7Aoqq/Hc8CQsse+E04/fefPjZZ1YavZeH1gqURrP5mSkjKoquPEItKNtLUJVj899npkUNbD6GCcOuodN6UyxXC9ZPPvi2dh/8crXJF3nB+sd+wipwKPUwbSN2CmhAY80TlLj0c5k7GqW6WuhpBbWZopf7TpVA4WBUoDl1hrpT+YhQtg15kAU8TLdJkvEkzjjPIh+2nIec9X70k9ltxo3u7i+u2IgUsAcLuvzmIr5iYPPk4U/04zZfXjx3h5fTL3FzuukW19HteudVypRvfjLhpJhqY/EIwmFAUx160rtQOppZWhjdkIN1QTwLw3SWhvEsjdkgtviVS6I09Bzo6iszC+JkWGB8RKmbFq+lAkciT7wDlx2OIDUyLXq4MC+ERO/AX01E0E5UBZTG0k9gnO6BBoVaK4M/CcpIZMGBfR7u8+DEAT5/mgr2olU4bWQDSmr6QO5Tcf/4T/ng8n8lb+61g3OUUeOr+1XuH/gVzSBnc8wCAAA=" + } + }, + { + "ID": "ba6c7c6be72a9d8a", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/E6Uq3CKEIAvygwkVaJkJyGF3KSb?alt=json\u0026fields=status%2Cstatistics\u0026location=asia-northeast1\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:08 GMT" + ], + "Etag": [ + "lyWpxws/2QMsU18iWvctrg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/22QTQvCMAyG/0vOCroxNz2KCh5U8OMkHuoapVDb0WaKjP53m4mi4q193g+SNOBJkPKkSg+jBkqH8WvNVl0QRtDP8iQp8iLJ8iKDDpsd/WqDtEiihkb+Knk/G0RFWyG5XJmqppnS6NkUhTcY3+kJucjWFPHa3pikb/DypIyOQq6xtE4y6UHoAFkSeqMtLRgN2eTQo7u2++y8OMfR9g0Y0c4o8SRqTd1KVaiVQV7uIxwOX/G5/BcJ7UGobi/HLy6erJZTCOEBT5K5PVkBAAA=" + } + }, + { + "ID": "86bf3e07b40bf422", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/E6Uq3CKEIAvygwkVaJkJyGF3KSb/cancel?alt=json\u0026fields=\u0026location=asia-northeast1\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "0" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:08 GMT" + ], + "Etag": [ + "lyWpxws/2QMsU18iWvctrg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41S227iMBD9F+8rkJsIAQmtui1F9EK1AdqHVYVMMgQXx05jBzZC+ff1JKUXtlvtk+0zZ2bOHM+BbJmIyYCsWPJcQF5+e5Krcyoi4CGoTAoFpEUMRgaHz6gmCJomBuXlQ/Z7ryz3561aOAF72EU6T4ZDw2CYpTaS8zKloh1DKtsalB5QxWhbyFxvgCrtdEb+4tk7vx5NznZlst/e06vtVTm+9K5n2EgBX98wsTXFNlpnamBZRymdRMqEA82Y6kQyfcWtnWtluXyCSCvrEwWWGUFZX7T9zmVENZNieKLV6ImkWLOkyOs4+sMljfFU0QZSirc1Ax4rMvh1IIKmYJTXR4voMsPXbB5OpmNStd7iRare4pPpfDQehaR6rFokNoKZqLvN6YoDNngZbvIPh02lmGqqoGFouS0lVsf0BsHb0rWdvmO7wdL3+7bf7dt23zPH0rZdm1RVvQDzRtHN3dkFaZAQ1pCDWZX/E2Iy6ujXn3z02xBPHTddlTZB40KksGeUQ+MGq61zuj3XDXqB2+0FXVKTc30a873AxaUV8Wmk53T9WkDziUxkhb5kHBSScIuPwI9SNyAWkoU2cCj3iHivwJHjIbSicQiRzHETiI1zaKkpn3GpbxHqIykHBfmunmehaALvlyaGNS24bmcsA84ELpB6l1w9fkivXf4r5cW9onYOb1j44m46Mh9c/QE0RaazBwQAAA==" + } + }, + { + "ID": "24f68961550a6945", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "234" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUICogRlJPTSB0b2t5by50YWJsZV8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDIwIiwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJSNW5CZ1ZueFBGZWZIVVdBWURNcWFUOXg2UWwiLCJsb2NhdGlvbiI6ImFzaWEtbm9ydGhlYXN0MSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:10 GMT" + ], + "Etag": [ + "OrgyU/g97aXX5QqqN+vvFw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41SXU/bQBD8K+j61jbxV2znIqGWJk4bCUwxDh9P1tlemyv2XeK7BCLEf++eA6iiFPXJ1u7szNzsPpBbLkoyITmv1xvodh9+yZx8JqBZjdXTrt4trZqG7OrKP1uv40/b7fzu8BAR3EypG9k0u5aJQQmtHGhQesIUZwMhO30DTGlnmPjiW30h7n/OofqxvDy6np2sWUrvg7MGaRQ01TEXt0h2o/VKTSzr2cqwlrJugK24GhayfalbW9dadfIXFFpZbziw8AnKekf2SyMLprkUh6+8op+Ngi6DlvEGHRm2QSdzqb++oTPkrB3WiN/yAlhRyI3QxiiyFFJUvN50vQqZPJDe+B8/5Dw6jqbpwceDeXJ6cqDl7U4ONcsbyFzboY7tjrMgoHbgU9umHn4y23ZtpC5RmYueODV4Q/qUxuIfKzFTTDMFe0RmQ1mVLoRebo8czwlsGozysV061IOq8kdeTisXezjXW+qnmJACKIAbOv44oIHjjCFnENijkhaVO/KqEMLQD5zCrcgjRtAB0zDjaiUV38dApkl0lEbZYp7FUTSLZihw1/HXqMtkgaA0WcZTRCNm1XGJMBPbIk6j5GiaLi6i/bKOoWbF7nyN66pYowCVcf3pboXBkLNllFyTfSmBCjoQxX8GhhN99/3rfT4kk8+rU0JVpbGJ2yqU0ewDMVvjrfHm+KHrjsOxS/2ROTwEd/qvHg097L1cj2GEFoR+euD+isjjk9hGvYCM9WUcL+Lv2P0N2CWYbuYDAAA=" + } + }, + { + "ID": "da5a1aff2d195bc0", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/R5nBgVnxPFefHUWAYDMqaT9x6Ql?alt=json\u0026location=asia-northeast1\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:10 GMT" + ], + "Etag": [ + "esJ5K4XKAwibt61hOFrYow==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/22QzW7CMBCE32V7DQdEQWokDtDyVyiFFNqiqgeTbBJT2xvsjSBCvDsOrcSlp/Vo59PM+gQ/0iQQwlZm+xJtdZchL+tHhK5U7PwoyDiEAJBF5p3ontvT+89p7yC33Gnmr0O7oUO36x0uzlELCE+QSlSJg/DrBEZo9Nh1BMBVUau3VTSZj7zWlNR6vp7Nev3ZAM7BjSi1uxGT+WowGkT/Id/nAHa0jTBFiybGukBhaYcxT+rbXE5KVVqYRoKaGoyO4Upct1Hb9LN3c1wMMR2vP3qbp5e9WD0cO0vlXYpiwZKMNwonRcOQ5RyF46avCkwsVEQHfym04E/3K5+wsBSjc1gntFq/cY+kC4Xs+7EtMYBY+P8aS4YwFcrh+QKvQZsSjQEAAA==" + } + }, + { + "ID": "831ec5d31c4b6ea7", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_0edfd2e73b0413160964b80d193eff543b9f2b04/tables/anone9ee27158696118ebae604d9cf243f7e77561c2f/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:11 GMT" + ], + "Etag": [ + "/o/kZYpxDmoS1f6gNLc8Mw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8rr5+tnR0UWVLjk5gcbppml+/kkW/iW29oCVZTklyTmBOWXFwOVGQP5RWBmdLVSGpgsAwonKtXqQFgGSrWxIDZCLgkuZ4ghlwyXMwLJxdYCAMuw+s+wAAAA" + } + }, + { + "ID": "09074aeb9313113a", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "389" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7ImNvcHkiOnsiZGVzdGluYXRpb25UYWJsZSI6eyJkYXRhc2V0SWQiOiJ0b2t5byIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QiLCJ0YWJsZUlkIjoidGFibGVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAyMSJ9LCJzb3VyY2VUYWJsZXMiOlt7ImRhdGFzZXRJZCI6InRva3lvIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCIsInRhYmxlSWQiOiJ0YWJsZV8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDIwIn1dfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IllOSGZ0bHhZc2xPdG1SR0lUMXRtbTRrN09uRSIsImxvY2F0aW9uIjoiYXNpYS1ub3J0aGVhc3QxIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:12 GMT" + ], + "Etag": [ + "6SBcDB56SppJ5NMfqb0l+g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/7VSy27bMBD8F+bYWKKUWLYFGC3yQOqilQvHORhFYVA0JTPmQyFXQQXD/96l3OSQpEEvPZGYHc7M7nJPdtJsSE5KWT+0wnUn97Ykp0QAqxHNbi/41cUwu22aL8PiW/VQUvWhnk6RIcMrv7VKdZqZwUZoOwDhIWdesoGxDraCeUiiVfG5AvVr5dUc9OJmtkxA6/PdaG6uUcYLVX2VZodiW4DG53H8FCWqra2VYI30Ebf6GY8f07hx9l5w8PEbCWJswcfv2H5UljOQ1kxfZMU8rRduLTSTChMFtYGzpYVPb/hEkumoRv6j5IJxblsDISiqcGsqWbeudyH5HoGmC6e3reNiyUolPMl/7MmfRmZ/mSZqbRgwL44MsLvOIgZB4IiE2zqlySSh6XidZROaDSeUTs7wWFOaUnL4iSKoJU0fpzcPWf67dUIOh1OC21h2DTqSy/n3FTkiC1EJJwz/xyD4oq++/5ee1orEl4tFVw9YxClw3y/EieM0pA7RkuEoTcej8Vl6TinpyQ5e18bPSm2vEm6Bsrgrillxg/3+Bvn3Q1ZRAwAA" + } + }, + { + "ID": "967c41c59669a7cf", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "387" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7ImV4dHJhY3QiOnsiZGVzdGluYXRpb25Gb3JtYXQiOiJDU1YiLCJkZXN0aW5hdGlvblVyaXMiOlsiZ3M6Ly9zaG9sbHltYW4tZGVtby10ZXN0L2JxLXRlc3QtdGFibGVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAyMC5jc3YiXSwic291cmNlVGFibGUiOnsiZGF0YXNldElkIjoidG9reW8iLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMjAifX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJFTlcyQmE2RVZBbEd3RlgycjdkSUF4SnU3V0YiLCJsb2NhdGlvbiI6ImFzaWEtbm9ydGhlYXN0MSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:13 GMT" + ], + "Etag": [ + "WIC1y6tbfvxlfMjMGAeaiA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/62Sb2/aMBDGv4v3dvnfBoiEuhQBYlp5wdJSqZqQYy7BkMTUdihRxXffOS2TRmm3F31l5/zc75673DPZ8GpJIpLy/LEG2XxZi5R8JaBpjtH5ZOA1oU6z3b7IbtY34xgoj/t9VHCTpVaiKJqSVtYSSmFpUDqiilOrElKvgCrt2cPp3L+m4fAuLsZPo3tfdpaTeP+97sxHiFFQZD94tUHYSuutihznaMXOhcgLoFuubCbKP3Fn5ztbKdbAtHLOOHCwBeV8UPaqEIxqLqr+iVf0UyuQCygpL9CRoVlSpEJ/O1PH5rS0c9TvOAPKmKgrbYwihYkq43kt2yokeiaw15Iyba5K1JJBQtMCzOdrJ5N3xomwJdVUwYtCi00jMKZN+kvE3Ba+6/U81+8uwrDnhpc91+0FeCxc13fJARmI4lVr51ZyTMvNpM8NL31sT+vfXJupHTlFKxI9fBr811/0kZAlxRGSwc870xP+5qTZ4hDJ8D6ZxYPkNTiDDCRU7D/Hixnt68d7elwZFJ4uDVZVGh/RKFOmJpPQahNeGnfeZcf3u51uEPiBWTEUS/3m7eIiOJLqlmJuRjK7nU4n0zE5HH4DIw4ffK0DAAA=" + } + }, + { + "ID": "9c60fb43e6feb7cb", + "Request": { + "Method": "DELETE", + "URL": "https://www.googleapis.com/storage/v1/b/shollyman-demo-test/o/bq-test-table_20191028_66906590093659_0020.csv?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 404, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "no-cache, no-store, max-age=0, must-revalidate" + ], + "Content-Length": [ + "263" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:13 GMT" + ], + "Expires": [ + "Mon, 01 Jan 1990 00:00:00 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "UploadServer" + ], + "Vary": [ + "Origin", + "X-Origin" + ], + "X-Guploader-Uploadid": [ + "AEnB2Uo178pkItYH0gtI_l6a_PIVICS-ooYmWEWX15rkmmT5aKj0nROMYOzIzWiAES5yuABuYVomOS1NHZcWho0Z8YRvtdzU9HfsG9nsBpgj21g1zrnPslw" + ] + }, + "Body": "eyJlcnJvciI6eyJjb2RlIjo0MDQsIm1lc3NhZ2UiOiJObyBzdWNoIG9iamVjdDogc2hvbGx5bWFuLWRlbW8tdGVzdC9icS10ZXN0LXRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMjAuY3N2IiwiZXJyb3JzIjpbeyJtZXNzYWdlIjoiTm8gc3VjaCBvYmplY3Q6IHNob2xseW1hbi1kZW1vLXRlc3QvYnEtdGVzdC10YWJsZV8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDIwLmNzdiIsImRvbWFpbiI6Imdsb2JhbCIsInJlYXNvbiI6Im5vdEZvdW5kIn1dfX0=" + } + }, + { + "ID": "f0df3e818409c079", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/tokyo/tables/table_20191028_66906590093659_0020?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:14 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "4eb2caa9980de20d", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "72" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJkYXRhc2V0UmVmZXJlbmNlIjp7ImRhdGFzZXRJZCI6InRva3lvIn0sImxvY2F0aW9uIjoiYXNpYS1ub3J0aGVhc3QxIn0K" + ] + }, + "Response": { + "StatusCode": 409, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:14 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/62OsQrCQBBE+3zFcbUBCxvTBZJCsDIWioisuSUG77KS3YAh5N+9nFf4AVbLzCxvZkqU0tj31OtMTV54WZNBrzbr7eprOGSGZvF0bnsEM6ry3bJwpgoQYBTFD7J2dNClBh2lgiyZ0HMkHRmhgz3iErSKZf/iB44hB223YBpLd7C/mccyhcwML9vWIKhjOod7jUNZQAYOW/aHMi/Ot/K0q47V8j0nc/IBXE/GKzIBAAA=" + } + }, + { + "ID": "6b94036560ff0def", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/tokyo?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:15 GMT" + ], + "Etag": [ + "jQy5ZIFyGuC20r9/b3P8NA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/32Q0WrCMBSG3yW7tY12KrMgzG1OCptuRRA2dhHTY42mOV2SOor47qbSyi7U23P+7z9fsidboRISkqVIfwvQ5V3CLDNgSYuAZanbbD7L3lf0Wk6K56CtB3R5//EwHQ2HLiEq0qxRyjJjyksgQ8+CsaHFbYkuYECu3oTautja2tyElDaH/BQxlcByYXyO2XlOdwHNNW6AW0MvdNNa0NDmSD2IYQUaFAcS7ptZVAk2ubo1uiJNDi3COAdjSPi9JxqlayKLOJqP4+opOXDB5ERjkbt5XbbQwoI2jj0Ts8X0BjD7U1fyhQH9VI4zJmQl7Yw8jUu0jxdcfcEyP3XATnBw0lgoW/3i/954PHq5IRIDS04mPy3CNTArUM1FVpGdXtBt9/uDzqAb9F2BZMa+YyJWApJrEeSnBrdiRjBPobZrcFyHHI565pKMZAIAAA==" + } + }, + { + "ID": "db7aaa7371ad5160", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/tokyo/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "242" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibmFtZSIsInR5cGUiOiJTVFJJTkcifSx7Im5hbWUiOiJudW1zIiwidHlwZSI6IklOVEVHRVIifV19LCJ0YWJsZVJlZmVyZW5jZSI6eyJkYXRhc2V0SWQiOiJ0b2t5byIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QiLCJ0YWJsZUlkIjoidGFibGVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAyMiJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:16 GMT" + ], + "Etag": [ + "D8VQY/7H2OBqWwpgapMqNg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SX0/CMBTFv0t9FVo6/owlPEgkSAIYcdEYY0jZLltlW8da1IXw3b0rIIlo9Km55977O6dNt2Qls5B4ZCGj9QaK8sKIRQLkkoAREerX7sPdE+3c8Nv++vE9j0Q+WU+jXg8nZLWnY5UkZSqyWgipqhnQxjNqVaq6Bc05a3QbjLvzdrvL2q0uY10HjzljnCNDQ7Icy2yFpNiYXHuUHpPUI6WiBEQudT1Q6ZdO3zjNC/UKgdH0B3saCiM0YNPmoDaHpv+KY4dmsIQCsgCItyUHp9Evd8Wdg52dsI5Hzl7523aHzxDEkIrKbykhCTXxnrckEylG2B+ILPOquvdno+kQd079TapP/dHUHwwHM7J7QSy2+iXGRJ0RW45VFvlQfJdn6v1YBQUII1XmS0tvtDqcux3XaTvcrb7FRy6L8wHXYR3Gqv1EaDNRocSLhGeMZqt5iupf9ceDakMFFoiS0FLUMlWYGBDTILtPYepYRKACAAA=" + } + }, + { + "ID": "63ab22d1d098a54c", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/upload/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false\u0026uploadType=multipart", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "multipart/related", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7ImxvYWQiOnsiZGVzdGluYXRpb25UYWJsZSI6eyJkYXRhc2V0SWQiOiJ0b2t5byIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QiLCJ0YWJsZUlkIjoidGFibGVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAyMiJ9fX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6ImE3QXZzbjRoOFM5aUpTRHlsOU1YZGRDazV0OSIsImxvY2F0aW9uIjoiYXNpYS1ub3J0aGVhc3QxIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=", + "YSwwCmIsMQpjLDIK" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "no-cache, no-store, max-age=0, must-revalidate" + ], + "Content-Length": [ + "851" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:19 GMT" + ], + "Etag": [ + "\"CRkpyt4RXWzE4lvoHDbioIbWdUA/YskItLki7RmhlqMqcQW0-cwgQX0\"" + ], + "Expires": [ + "Mon, 01 Jan 1990 00:00:00 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "UploadServer" + ], + "Vary": [ + "Origin", + "X-Origin" + ], + "X-Guploader-Uploadid": [ + "AEnB2UpoBPFra7uyxcm-jPvR-nJL1pjekw763k23sVHosbcuT02x24hn9UUKYz8IBWUniyEMnE98yXWxluVR_hRnbQZlXIwECw" + ] + }, + "Body": "eyJraW5kIjoiYmlncXVlcnkjam9iIiwiZXRhZyI6IlwiQ1JrcHl0NFJYV3pFNGx2b0hEYmlvSWJXZFVBL1lza0l0TGtpN1JtaGxxTXFjUVcwLWN3Z1FYMFwiIiwiaWQiOiJzaG9sbHltYW4tZGVtby10ZXN0OmFzaWEtbm9ydGhlYXN0MS5hN0F2c240aDhTOWlKU0R5bDlNWGRkQ2s1dDkiLCJzZWxmTGluayI6Imh0dHBzOi8vYmlncXVlcnkuZ29vZ2xlYXBpcy5jb20vYmlncXVlcnkvdjIvcHJvamVjdHMvc2hvbGx5bWFuLWRlbW8tdGVzdC9qb2JzL2E3QXZzbjRoOFM5aUpTRHlsOU1YZGRDazV0OT9sb2NhdGlvbj1hc2lhLW5vcnRoZWFzdDEiLCJqb2JSZWZlcmVuY2UiOnsicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCIsImpvYklkIjoiYTdBdnNuNGg4UzlpSlNEeWw5TVhkZENrNXQ5IiwibG9jYXRpb24iOiJhc2lhLW5vcnRoZWFzdDEifSwiY29uZmlndXJhdGlvbiI6eyJqb2JUeXBlIjoiTE9BRCIsImxvYWQiOnsic2NoZW1hIjp7ImZpZWxkcyI6W3sibmFtZSI6Im5hbWUiLCJ0eXBlIjoiU1RSSU5HIn0seyJuYW1lIjoibnVtcyIsInR5cGUiOiJJTlRFR0VSIn1dfSwiZGVzdGluYXRpb25UYWJsZSI6eyJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwiZGF0YXNldElkIjoidG9reW8iLCJ0YWJsZUlkIjoidGFibGVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAyMiJ9fX0sInN0YXR1cyI6eyJzdGF0ZSI6IlJVTk5JTkcifSwic3RhdGlzdGljcyI6eyJjcmVhdGlvblRpbWUiOiIxNTcyMjg3ODM4MzQxIiwic3RhcnRUaW1lIjoiMTU3MjI4NzgzODg3OCJ9LCJ1c2VyX2VtYWlsIjoidGVzdC1yb2JvdEBzaG9sbHltYW4tZGVtby10ZXN0LmlhbS5nc2VydmljZWFjY291bnQuY29tIn0=" + } + }, + { + "ID": "ad1b952ae18f592c", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/a7Avsn4h8S9iJSDyl9MXddCk5t9?alt=json\u0026fields=configuration%2CjobReference%2Cstatus%2Cstatistics\u0026location=asia-northeast1\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:19 GMT" + ], + "Etag": [ + "mDmiAoRARmgRZd3i12V0Qw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41R0WrCMBT9l/tcIa1aG99kiji2DmoHgzEkJrdrNE2kiYMi/fcl7YYPe9lL7k3OuedcTm7Aja7k57VlThoNyxsow0SoltfYsNBVEpWwsHy/gWYNwnIsEbjuEm77stjlW+ijO35t7B3f5eVmuymg/+gjEGid1INbyY4Kg8GlNSfkbud9wdZGqa5heiKwMRPn6V5JMMcsjgxnzp0J6mF8fAndISExjUmSHdKUknROCaFTXw6EJAn03vpkjuW40dPLag3jS4EVtqj5PxfxEwPKFqsvq2d1tqfycb/uFH1+E+LhPHfUs5ThP3kCs5JNtGldjcy6OLha50GfArfBk7c4piGH6OL5IkmyRTbNprMYBnLr/mD++FW6DiqhC5TiNc+Hz+i/AW/HFlTbAQAA" + } + }, + { + "ID": "a721756572a9b7b1", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/a7Avsn4h8S9iJSDyl9MXddCk5t9?alt=json\u0026fields=configuration%2CjobReference%2Cstatus%2Cstatistics\u0026location=US\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 404, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:19 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/7WOQQuCQBSE7/6KZc8ZHYzSWyQehPRgQhARa7uptLsP9q2BiP893Tz0Bzo9ZuYx3wweIVQYA4ZGZJjEJB/AxaSCTbD6Gkogsnr2aAaWPKHTPCIpVAQbkLJXTPtcKPCtQBuVxZrtDm/UQbMvwjYt4l6Gpwvnx9fWhnTpdEycKq9OkwX+L57r5aBYq+faWkLF5G9mBENwmQabzES6hKO7t2U3WmY7dNPy8z3JyyyeH0dv9D6Jj6QuTAEAAA==" + } + }, + { + "ID": "c7e6d1aaeb25de4e", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/a7Avsn4h8S9iJSDyl9MXddCk5t9?alt=json\u0026fields=configuration%2CjobReference%2Cstatus%2Cstatistics\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 404, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:19 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/7WOQQuCQBSE7/6KZc8JHYzSWyQehPRgQRARa7uptLsP9q2BiP89d/PQH+j0mJnHfDMGhFBhDBiakHEWs3wAF7OK1tHqayiByBrn0QIseUKveUJyqAm2IOWgmA65UBBagTZh2/0bddTuqrjLq3SQ8fHC+eG1sTFdCj0Q576r12Qh/wXmSzko1mnX2UiomfzNjGAIPtNgM4ejSzj5e1tGo2W2R7+rPN2z8lyk7nEKpuADCKibOEYBAAA=" + } + }, + { + "ID": "e4089fd3705d633d", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/a7Avsn4h8S9iJSDyl9MXddCk5t9?alt=json\u0026fields=status%2Cstatistics\u0026location=asia-northeast1\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:20 GMT" + ], + "Etag": [ + "cXKNPdBt6srWqAlr8KNNSg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/22QQYvCMBCF/8ucK9hGadejqOBBBXVPyx5iM0ogJiWZKlLy3zdTUVZ3L2HyvTePmekgkCQdSNcBJh3UHtPX2b0+I0wgH5dFUZWVqMQoh4zNnv5o6UkaWvWufIxFmRTjpOJwbZuWFtpgYFMSnmB6ozssEnUtJbx1VybiCR4ewegg1RZr5xWTIcQMyJE0O+NoxajkII8B/aXf5zPIUxrtqwMr+xkVHmVraNDoBo22yMv9ao7fL+1L9V9L7A9CbX85rjh4tlnPIcYf/DDKBFkBAAA=" + } + }, + { + "ID": "0cc49f47eb6e9d1f", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/a7Avsn4h8S9iJSDyl9MXddCk5t9/cancel?alt=json\u0026fields=\u0026location=asia-northeast1\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "0" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:21 GMT" + ], + "Etag": [ + "cXKNPdBt6srWqAlr8KNNSg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41Sa2/aMBT9L95XICEpjyChiRZWsbbpFJhWaaqQiS/BxbHT2KGKUP77fJPSdrSr9iV2zrmPc4/vgey4ZGRE1jx5LCAvvzyo9QWVMYgIdKakBtIiFiOjw0ehlgRDE4vGd1fhD3Zu+jr/9TgR+fAqDBfJeGwjOGbprRKiTKlsM0hV24A2I6o5bUuVmy1QbbodOpjstTzbDhcB/76YliK4uWPsYtczgS2jQWyuudzZYltjMj1ynKOUTqJUIoBmXHdilb7gzt5zslw9QGy084ECx46gnU/afhUqpoYrOT7RavXESm54UuQ1j/4IRRmeOt5CSvG24SCYJqPfByJpClZ5fbSIKTP8WyyjeXhJqtYrX6T6lZ+Hy9nlLCLVfdUizArmsu62pGsB2OB5uPk/HLaVGDVUQxNh1K5UWB3TGwRvK8/tBl3XG676/cDt9wLXDXx7rFzX80hV1QuwbBRd306mpEEi2EAOdlX+T4jNqNnPH/noNwaeOG67amNJ60KssWecQ+MGr63r9gaeNxwM/aF/hu9jg3PzjrMfXFrJTpmg5w9qAc0jcpkV5hsXoDEIt/gInJemAT2LqsJYOFJPiPgvwDHGR2hNWQSxynETiItzGGWoWAhlbhAaYKEcNOT7ep6fmibwdmkYbGghTDvjGQgucYH0m+Tq/q/02uV3Kc/uFbVzeMPC09twZh+4+gMsEqMdBwQAAA==" + } + }, + { + "ID": "54ebe33ec6730813", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "234" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiU0VMRUNUICogRlJPTSB0b2t5by50YWJsZV8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDIyIiwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJMSklsN2g4cnYxU2RpUE9PZGJpdmdvOVduQzAiLCJsb2NhdGlvbiI6ImFzaWEtbm9ydGhlYXN0MSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:22 GMT" + ], + "Etag": [ + "JJHM0DwAkWUUvLIFppsJCw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/61VbW/iOBD+Kyi3n04tOAnkBam669JUSwWlB/Sq06lCTjKAt8HOxoYuqvjvN3YSCi1b7UqnfqCZeWbmmVe/WE+Mp1bXitni2xqK7W9fRWydWaDoAqU3N1+G5Or58unh/n4z6F/nubzpPV9cIIJpK7kUWbZdUX6ewkqcK5CqSyWj51wUaglUKrs5uOln/jIoNvYkZXejURqzzUKED7xH0I2EbD5g/AmdLZXKZbfVqqk0F0IsMqA5k81ErPby1sZp5YX4ComSrRMMWpiCbH0Q9o9MJFQxwS/ecEU+awnFDFaUZchIezsvRCzUnyfiNBldNReI37AEaJKINVeaKHpJBJ+zxbowUazui2WIH/xjTaJB1Js2fm9cj0fDhhJPW9FUNM5g5hA7tIkTzDwvJF4nJCR08WdGiOOg6xQjM24cTzVeO62q0f9BS7QVVVRCiZgRSOepA74bk7bt2h4JvXYckNQOXZjPO203DucO6tDOUDJWlAvu2HECPkk8z++EaUwTCEjsprTtuonjJ0AISdNOSq0dlqAAquCKyVxIVpbB6o2jy2k061/PbqPoKrrCAM8Fe4t6GPcRNB3f3/YQjZi8YAJhumz922k0vuxN+39HZbMGsKDJdvIN2zWnmQSMjO2fbnMsjPXXfTT+xypFY5hDATz5yYKhhdF+PL31IOn6vBkljCoVKrFbidQxTUF019hKc7M7vuMEftC2Pc+1DLhQ73S+p3sOPH2rcdqBp/sjFM0+b5H0XSESkBI0aVc7PB65u4wiy39fLE6Nowkh3cZorfK1qpeZ1CyG8ohD4Polh2O549qhbiBlaqwTu9zgxSClYCjNl3G5Bwzp9wOA+TIArEv66sEuBbWHtt85hBirPaT0UUJw8TAXOKDSJMRzkW4Qtn3XQ8L2HlV7d98YlhQ/NCxjuvXoHsdzbNJxDm0rVB3PPjLbR/uxWRlNm8nlej7PoGyZ6bhO3TmpmeQsyyDd1zcRRSrHWLKKeSV5wBgKeCXMaUHRKutzdCOrqDrtDBSkd6e0esDX+qM3Gt4NIrOsUkEuzaRVLwvuvF50uY5rlfXJ7uoxPGt8crp8vZKo/rUz+Lg72/s35+JdAO0bhdNRYzZDmgu8TTNRjvvjDv9woHEzV3ii0tPrg0rIGAeTCmQ0R51ZgI6/X7xJJsplcQJd6Bx3hPHFPWemQuSwfrVQl40mim3gFaaTOYzg287/HeGx8odtVObOHiVMPr4kr6rP9VzZpB1gIbRhjDLkNGVQmNU8xTuhyRK+MFUdaT2B1TVOzSNWDsyvPWNmWI6eqJ8YHF0IPbWwAq6qV6J8ivXBfk999zrkL6UhKq5Gt5G12/0Hm+5KQzwJAAA=" + } + }, + { + "ID": "e106eb4528cc39db", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/LJIl7h8rv1SdiPOOdbivgo9WnC0?alt=json\u0026location=asia-northeast1\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:23 GMT" + ], + "Etag": [ + "gMUxIUPc4JEHu8sRsQ9Bww==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/22QzWvCQBDF/5fpNULFQjXgoUrQSOpHVHooPazJmKzdj3Rnog3i/95NWvDS0+xj3o/3Zq/wKU0OIRxk8VWjax4K5E37SJFqxeRHZQ0hBIAsCu8sXvff8X6dPS2ieT2klDajyeUyHnsHZSVqAeEVjhJVThC+X8EIjR7rRgDcVK3a7tJ4OfNa27zVy32SvEySCG7Bnag13Yl4uYtmUfof8nEL4GQPKR7RocmwLVA5e8KM4/Y2Kq1SjRaml6O2PUZi6Ihumyxi9VwO3bm/zeV6tcoP8lzY0ZuZPnqXsplgaY03CpKiZ6zjEgVx31cFtixUai/+UhjAn540PmHtbIZE2CYMBr9xU6srhez7sasxgEz4/5pLhvAoFOHtB1qW6/+NAQAA" + } + }, + { + "ID": "38b4da3f076c225f", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_0edfd2e73b0413160964b80d193eff543b9f2b04/tables/anon21bce70c66759dbace80b3da433c27ce000dd5da/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:24 GMT" + ], + "Etag": [ + "XDOQq9TANTgTh6JbIYVV3Q==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pHuPgHFlqGOPqFpIdkmHkleUaGhRkH2toCVZTklyTmBOWXFwOVGQP5RWBmdLVSGpgsAwonKtXqQFgGSrWxIDZCLgkuZ4ghlwyXMwLJxdYCAMT08miwAAAA" + } + }, + { + "ID": "0b243cf889d26577", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "389" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7ImNvcHkiOnsiZGVzdGluYXRpb25UYWJsZSI6eyJkYXRhc2V0SWQiOiJ0b2t5byIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QiLCJ0YWJsZUlkIjoidGFibGVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAyMyJ9LCJzb3VyY2VUYWJsZXMiOlt7ImRhdGFzZXRJZCI6InRva3lvIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCIsInRhYmxlSWQiOiJ0YWJsZV8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDIyIn1dfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6InhnZHRMM2dYU0NOQkZzZTVmV3lJUTVxTEV5MiIsImxvY2F0aW9uIjoiYXNpYS1ub3J0aGVhc3QxIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:24 GMT" + ], + "Etag": [ + "s/3U35Jk4x2N5CqcJTzCYg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/7VSXW/aMBT9L95ryYdDgERCq4a2iQpla0e1VlOFjLkYl8QOtlM1Q/z3Xoeyh7ar9rInW+cen3Puvd6TrVQrkpOlFLsGTPvhXi/JGQHHBKI2TK6T9GLbf6RFOtnxi/nvya0Yj5Eh/Su70WXZVkz1VlDpngPrcmYl6ylt3AaYdXHwKFZuloibH5Pi0xcL6fpnO71Md7PPLUUZC+V6JtUWxTbO1TYPw1OUQGgtSmC1tAHX1R88fKBhbfQ9cGfDNxKE2IIN37H9WGrOnNRq/CIr5mksmAVUTJaYyKv1jF5qd/6GTyBZFQjkP0gOjHPdKOeDogrXai1FYzoXku8RqFt/Wt0YDnO2LMGS/NeePDcy/cs0UWvFHLNwZDi9bTVizgscEX9b0CjO4oiOFoNBFg3SLIqyBI9FFFFKDncoglpSdXE6c5/lv1sn5HA4I7iNeVujI5l8+35LjsgVrMGA4v8YBF901ff/0mmtSHy5WHS1Dos4BW67hRg4TkNWPlqcDikdDUf9/iAeko5s3OtaFp2Umk7F3zzl6roopsVX7PcJ36lGllEDAAA=" + } + }, + { + "ID": "25e2498acc5a3272", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "387" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7ImV4dHJhY3QiOnsiZGVzdGluYXRpb25Gb3JtYXQiOiJDU1YiLCJkZXN0aW5hdGlvblVyaXMiOlsiZ3M6Ly9zaG9sbHltYW4tZGVtby10ZXN0L2JxLXRlc3QtdGFibGVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAyMi5jc3YiXSwic291cmNlVGFibGUiOnsiZGF0YXNldElkIjoidG9reW8iLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0IiwidGFibGVJZCI6InRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMjIifX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJmRWNMS09qaXNtbXlyWmdja3lNcU0zb3MxY3IiLCJsb2NhdGlvbiI6ImFzaWEtbm9ydGhlYXN0MSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:25 GMT" + ], + "Etag": [ + "Oc6ii0yVq3kOXLEK0C/f1Q==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/62Sb2/aMBDGv4v3dkmcUP5FQtuE2FSVgsbSqto0IcdcgiHJge2gRhXffee0TBpj3V7slS/n5373+HJPbKuqFYtZqvJ9Dbp5s8GUvWVgRU7ZuewpxZv7fWc7f5hObvg4yMLPoxEplKsyayyKphSVt4ISPQvGxsIo4VWo7RqEsaGfTeT0Zr5Rpiwb/TWX2+Z2f9tBE0pNGANFNlXVlmBra3cmDoKTFT9HzAsQO2V8ieXPfHCIgp3GDUhrggsOAnqCCV5p+65AKazCanTmlfzUBvQSSqEKcuRonsYU7fsLfXwlSj8n/UFJEFJiXVlnlCgSq0zltW67sPiJwaPVQloXGqy1hESkBbjPl5dc/2GcBFsJKww8KyxuG6ScdeXPGRctIx4OQx4Nlr3ekPe6Q86HHTqWnEcROxKDUKpq7dxpRWW5m/Sl4aX79vT+zvWlObBztGHxt/8G//4L/SPqUtAI2fjLvXsT/eak2dEQ2eQhWXwYJy/JBWSgoZL/OF6qaG9f39PTypDwfGmoq7F0SUalcT2lhlabqNK5C7v9KBr0B1fdqM9ZK9b2t7urQedEqluKi5xkcTebXc8+sePxBwHDfButAwAA" + } + }, + { + "ID": "00795b336d1cb6db", + "Request": { + "Method": "DELETE", + "URL": "https://www.googleapis.com/storage/v1/b/shollyman-demo-test/o/bq-test-table_20191028_66906590093659_0022.csv?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 404, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "no-cache, no-store, max-age=0, must-revalidate" + ], + "Content-Length": [ + "263" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:25 GMT" + ], + "Expires": [ + "Mon, 01 Jan 1990 00:00:00 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "UploadServer" + ], + "Vary": [ + "Origin", + "X-Origin" + ], + "X-Guploader-Uploadid": [ + "AEnB2Uoiqp6WJaYWzofk2bQElccI6vK-cpV5Imql7uPEcOwRp0cqg31IF4qngoWai6LCTXvp41gQ-_fRo_BMOvPyN7d9DHgRUBYc_-pwqTIPpt3YZtirupI" + ] + }, + "Body": "eyJlcnJvciI6eyJjb2RlIjo0MDQsIm1lc3NhZ2UiOiJObyBzdWNoIG9iamVjdDogc2hvbGx5bWFuLWRlbW8tdGVzdC9icS10ZXN0LXRhYmxlXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMjIuY3N2IiwiZXJyb3JzIjpbeyJtZXNzYWdlIjoiTm8gc3VjaCBvYmplY3Q6IHNob2xseW1hbi1kZW1vLXRlc3QvYnEtdGVzdC10YWJsZV8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDIyLmNzdiIsImRvbWFpbiI6Imdsb2JhbCIsInJlYXNvbiI6Im5vdEZvdW5kIn1dfX0=" + } + }, + { + "ID": "ab39375fa85f00de", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/tokyo/tables/table_20191028_66906590093659_0022?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:26 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "b2ddd272cf682063", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "238" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJleHBpcmF0aW9uVGltZSI6IjE1NzIyODgzMDcwMDAiLCJzY2hlbWEiOnsiZmllbGRzIjpbeyJuYW1lIjoibiIsInR5cGUiOiJOVU1FUklDIn1dfSwidGFibGVSZWZlcmVuY2UiOnsiZGF0YXNldElkIjoiZGF0YXNldF8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDAxIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCIsInRhYmxlSWQiOiJ0YWJsZV8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDI0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:26 GMT" + ], + "Etag": [ + "VCJ3jzIwFvLeC1eviigbWg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SX0/CMBTFv0t9FdptsH8JD0IwwQwfEPTBGFK2yyhs7VwLOAnfna4BTUTNntp7cs69v970gDaMJyhEC5a+b6GsbhRdZIBuESiaav158OCsP0f7+10EAwt2jKWLl7TX0w5W5+RKZFmVU95KIBctBVKFCVVUgprbxAosYvtz1w2I2w0ICRx9zAkhVtvM+cdid/QICdkyYnyjB62UKmSI8QW0nQqRZkALJtuxyL90vLNxUYo1xEriX+jwmU7iJpjYYErciNaYJrCEEngMKDygM8joj03pzBnCOJoAXcaYQAOqo15ivIKc1jhLBlkiUfh6QJzmmhDxul9V1NfH2Xg4GQ3Q8U1n+DbvVxpR6wSZMhI8nUL5U56I/aWKS6CKCT5lprXV9Wzb9/yO67he/aE+ClZeG3yHePph2pBRqcYiYZoyuerRIe436vSuHw3rhIhNQy3NntDxBKgcG+jNAgAA" + } + }, + { + "ID": "c25c2e90ac29b7ab", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0024/insertAll?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "121" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJyb3dzIjpbeyJpbnNlcnRJZCI6InNoUUFxZm9lMDNRQ1ByZloxc0w4eEtLRGNkciIsImpzb24iOnsibiI6IjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLjAwMDAwMDAwMCJ9fV19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:26 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42MuwoCMRBFf2UZ20XWNp3oFim0WLASi4kZQzBONA9RFv/dYQVtvdPMOXDvCGfPFhQY726V0nNW0ARaY0HNmVJZhjBQvkYBaMFPrk8ppgxqP4qw9ADVtUA/mQhzZBn1fMfgrRRDPGLxk2RBS6Y6zacoLHihnNGRgP40mu1u0w961QhVUs2i+zPz7wevg9wb8ASitOAAAAA=" + } + }, + { + "ID": "e1cb068c3ff76b8e", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/tables/table_20191028_66906590093659_0024?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:26 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "5dc84b71847cf7d7", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "167" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiYmxhaCBibGFoIGJyb2tlbiIsInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoienQ0QkZLa256NmhGa1ZKVEVQU3h2WURFSGVqIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:26 GMT" + ], + "Etag": [ + "HZMdEQeqbQppZ01jSgJgEw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/72SW2/aMBiG/0rk3ZZkoLagSGinpipd1w0SKvWkyXG+GBPHDrbDSCv++2xDp01jvdxNFH+H933yOs+oYqJAMcoZXbWgujdLmaMjBAZTW724+1IkU1jl06a5e9tfpvSSJj/GYzvB3JZeSM67GoteAbXsGdAmnqfhkzn+eP65Ek+ni/Pq5jJLvqWb9e1ZcgFLu6mBl1dMVHZ/YUyj4yh6cQ+plJQDbpgOiax/1aP1IGqUXAIxOjpgGllqHb1i+45Lgg2TYjxPLUKrQX2HGjNuIZxAT8lcmvcHpEOG65Da+TUjgAmRrTCOzaoQKUpGW+WFUfyMPOtvLyjneBHsHkpWIOxSo5hUzLju5DpLZh8+ZZObZMd0BRSTLl1ZqhJzDdsjZD8s6xqw09N5MrtFu9IMSlAgCDizfTCTf1wI8hu++/q9vERkB21I1kgbe9aGEe1siALfzljtcPonw8FgNBwdnw6HA+SHlfm7Nzpxf5MoDnb2Hq3XB6WkmoFuuXFH66Y9CxNrzFkx9ZH+Qbnal2rQGlMnn3bC4E3gpeJgLmDT2GSgCFgBwrCSgQoe/K08oACb4L4f9x8dht+wGPf/1/hxF4BTOPt6naDt9ie0p50qkQMAAA==" + } + }, + { + "ID": "08a3931fd8e63d0d", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/zt4BFKknz6hFkVJTEPSxvYDEHej?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 400, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:26 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/61PvQrCMBDe+xRHZgcFp24FRQoqqK2LFjmbUwNpUpNULKXvbhs7dHB0Or7fu2sCAEbGaMNCaDrQwVxz6tB8Op18iYKsxXvPsUOtHL7BJ0JIFb1Lyh1xEJyUEzdBBs7sKvFxZoAOTrNwlrGhx6dsV3PyGIaF/9zhu7guUKi+6i71FeVYM4RWe02oF0rBdxWZeuyQOkcnvp7nLyGpS39niQYLcmTY4Gn9zIZvrUNX9d+yeHuM1vHiEu1X6Wa5TXp/G7TBB3+aYz19AQAA" + } + }, + { + "ID": "037ba80101748cf9", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "507" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiXG5cdFx0Q1JFQVRFIE1PREVMIGBzaG9sbHltYW4tZGVtby10ZXN0LmRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMS5tb2RlbF8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDAxYFxuXHRcdE9QVElPTlMgKFxuXHRcdFx0bW9kZWxfdHlwZT0nbGluZWFyX3JlZycsXG5cdFx0XHRtYXhfaXRlcmF0aW9uPTEsXG5cdFx0XHRsZWFybl9yYXRlPTAuNCxcblx0XHRcdGxlYXJuX3JhdGVfc3RyYXRlZ3k9J2NvbnN0YW50J1xuXHRcdCkgQVMgKFxuXHRcdFx0U0VMRUNUICdhJyBBUyBmMSwgMi4wIEFTIGxhYmVsXG5cdFx0XHRVTklPTiBBTExcblx0XHRcdFNFTEVDVCAnYicgQVMgZjEsIDMuOCBBUyBsYWJlbFxuXHRcdCkiLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IjJKQ1kwbjFMUWVOTUgzNzVuOXM5NlRydjBFayIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:27 GMT" + ], + "Etag": [ + "Sbv6TksWcTHiS+tCdkhiVA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41TbU/bMBD+K1H2oUMreQPaplK0VV20dQphNCkTUqXgpNdgmtjFdqtViP++cwIVYh3jk+2757l7fC8P5oqyhTk0c1reb0DsPtzx3OyaoEiJ1iTf9tKV/FWk32nySY0Xq1t6NQoCRFDNkre8qnY1YccLqPmxAqmGs8TyfoyvHeZGlxCffz/pnzFf+r1UbJ1whUwJ1TKibIX8W6XWcmjbz9mtkvOyArKm0ip4vbfbW89eC34HhZL2gaQ2qpb2G2k/V7wginIWzBKUsJEgMqgJrVCEDnAseM7VlwOhLUpqq0T8lhZAioJvmNLaMErB2ZKWG9EENocPZqP1xcWcs7maq/E0HKWhcX7xNYyMm0M5FkQRCSrzHNd3HW+Q9Xq+0zvzHcc/wSNzHMe1ar6A6k3ITZvv4mc6uYgT42P7nKuWqXZrCDoVZUBEJqDsdPd+8jujCtqPBO7ejp0QLEMzBI51esCcSaWPchd0sBhSEaY6LerIGL0QkIRROE6NDulo89LtGp7l6GtFcqieUbMYZRujKHpNy/e0E2vwinaEjVhgDSlr1Kckr0C34GlcJv8YU81qi94g3tMApCgdvSH8vxnmYxdFUC6o0qMwidNwOhqnk6uwHcAISlLsknscwSWpJCAcpzjFJiH6chZOr83WNIUlCGDFO7+FjMb79hI+7wMCcSMwETZPUSxjIXWaQkBbTlprOe5Z3/MG/cFpv60DgoX62+f30LdfAh0RamDq6U/tGmTNGpiPTyk3cg9FyHQWx5P4G3r/AN85IDuZBAAA" + } + }, + { + "ID": "4768ba8622cb9b2e", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/2JCY0n1LQeNMH375n9s96Trv0Ek?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:37 GMT" + ], + "Etag": [ + "pcxo4Hkib3GG9z+RBIypTw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/yWNyw6CMBRE/6Uu1QTFRyBxozGgURMQFy5LuWKh9FZaH0j8dyuuZpI5J9OSksuM+CTl+e0OddPLwUS/EoO+C6NtKJQayICAobklFXvhJCx56gaB9+7Hy02jkudiYYkC0xguUINkQPyWqBoLYGbzO9BXFKKpqBxmUOHQgDZ/o1vH29XZkaNdBId96M6n0tPeLKkfzrq0lEBGDUdpwdORfDpthZUSYOzPhQoNny+eToOdygAAAA==" + } + }, + { + "ID": "4757002d0fa2bba1", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/2JCY0n1LQeNMH375n9s96Trv0Ek?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:38 GMT" + ], + "Etag": [ + "niNAoZehTSAO9vVoA98g0A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/yWOXU/CQBBF/8v4WpKqEW0THgoxQaIoXybytiyXdmG7U3enJA3hv7uVp7nJnDl3LnQybk857Uz528J3dyVk0YclQmslxNGwC6CEIKqMpDPzgreo1qviMzt/c5G9lGkxGkXiyLslDvBwGpRfqPF8hJa3viBUbG1XKzfYo+aBIMjt4n/7MJv8pO7+fYH5x/Tx+cllIRuu/Tl9PUXKslZi2EVws6JrQsKi7LiLki/PGiGgl6Q34YTrxkLiB+JbJKSVrjA1QvlB2YDrHxR4hKL0AAAA" + } + }, + { + "ID": "95e1257270239ff5", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/2JCY0n1LQeNMH375n9s96Trv0Ek?alt=json\u0026fields=status%2Cstatistics\u0026location=US\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:38 GMT" + ], + "Etag": [ + "HRm7ADrqvWPGSVogti5ulw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/7VVy27bMBD8F54TgKRelG9NIqAF4lpo1VMRGIy0jllQj1JUAMPwv3cpRnESOe2h8UnkzuzMcgmu9qS30qreqrIniz0pDeC2bQpVA1kQFiWci0SECaWMXDiysXMsjRGDpnqDRCIQAhHbWqmvdhb63LQl9D1UyKKI/B7A7JzvuMi1bMji5540ctTJDXQ+AalqyhlrWPavKuAs9RW8ikeMx7HPsIMDrlfL/DYrMnK4eDYpjFTNpM9O6k86M/0oTei/9LNHqQdpYbLgpy2epGYWIohCl7EdNhsNq8F2gx1beezGW+87lMELrdG0Otl1xECrBsZeg5YdQt41pNN1fdetr9BFOixLNQ8/GmWnUNnWnQZ0eBmUpVWPcIy4NrzUD0RyVn0eRdEHGrCZQciSj+wQnxlEIhRnNUjCJDirQRoH5z0Bw9fIZw6cCh7+j8vdk2KOT1O5ETh/Nu+OsSNypbR+Dt/jBmspFBiyYO9VXMpyC5+VJYuN1D34Jw01NLbYdW6CXH/LPhXZerm6yW6RX1V61YEZx3QOZtOaenT0NE8opHkAW8h7DW664hT9BaX94mj9ttV6V8vmsoK6vcSarcuRVvbgGU/rNacsZZSLdRynNI5SStMAP2vq/wXWqY8JdVuB/jv9cDh9/MNxgu39wRG6WX3FMXb4AwaWhuucBgAA" + } + }, + { + "ID": "b87f4e2da67db5fe", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/models/model_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:38 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/31SbW+bQAz+L/c5mQ5IeInUDzRlKVpCOqDatGlC1+AwpoPL7o62aZT/Ph+hVVpF48sZ+7Ef+7EPBDSryIxYO7hr1Pc4TZ6dl9todf1tlSyqqysyIo0ogaewBQntBsjsQHZS/IGNjktMVL8F5/uGteMSGjHWoDTmlEwzBSfEYBc2tQKL2n7hugF1pwGlgYNPQSm1Xmn6hN76P/w4IhsJTNeizesGzABTz7Z9z596AXWwHGdKr0RZb2soP0J8x7VfGfP9zsSWcRKFaZFGizTKsnidYFxLVrd1W6Vdq8js5+HNsd4ZYmWkaNhzrEGywUHMJFwoNZRdRWFSZF/vwzS6KZbrLDNhYLJNmcY4/TTBfyuFquNM1i99GXSj077gbOo2BY7/j3AnRSVBKVODWiPyxGSTaSY1mW0ZVzAiyML3mRY7MtOygzPeDOfQUO2xv/k6yfIwybEtgUM1A9sZ4jrM57fFIg1v4ijJi5som+NrFoD0HdcnZeq2hOe+x7I7ibEyajhOv4tX3Zbi1LBr+/Tss6yPohx/Yf+PjHenUqBlvenlltBP/d7ZAGvDByV4pyGSUkhTY/qOglJv1OOyvx2TUL7BLrRyBluK6g1JnanjB5Y38T3PRYNODLSsL3DTyXtux0W1hpImbtsTN7AcbLE3aHBEOZXZ3nCp5vbHFh3bfm75M8eb2R5u2f5BjDBbvPtOwhw5m+EwW9anbc316f7yDv37BfeC/ixP42RBjiabswfgF3J32Fu90VAWPeJyoc/LdZi7k6GS2AynSe4zcvwHomKWvksEAAA=" + } + }, + { + "ID": "69125c36d9b9f7f9", + "Request": { + "Method": "PATCH", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/models/model_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "81" + ], + "If-Match": [ + "1pePmsXIRNx3zHEMBWMNGg==" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJkZXNjcmlwdGlvbiI6Im5ldyIsImV4cGlyYXRpb25UaW1lIjoiMTU3MjM3NDI1ODgxOSIsImZyaWVuZGx5TmFtZSI6ImZyaWVuZGx5In0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:39 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/31TXW+bMBT9L35OJvMNkfrAUtZFS8kK9GGbJuSGC3NlPmpMmyzKf981oVVaRePF9r3n3nN8fDkQUKwiC8J/2Lt0U943ztPjwx29/+5Ylbq7uiIzUrcFiARKkNBsgSwOpJPtI2zVqsDC/k8rxL5mzbyAup0r6BXWFEyxHk6IaZ+b1AgMavq56wbUdQJKAwuXnFJqvNKMBePu//DjjGwlMMXbJuM1iiKG45mm7/mOF1AL2wnWq9u24CWH4iPED1z7lTHbdzq3XsVRmORJdJNEabraxJhXkvGGN1UyND1Z/Dq8BTadJu61FTXbrRRINgWIvolo+35qexuFcZ7e3YdJdJ2vN2mq08BkkzCFefrJxrORQDUIJvnfsQ2GMWheCNa8SUDg+Rm+y7aS0Pe6BzVm5IXJOlVMKrIomehhRpBF7FPVdmSh5ABnvCneQ0G1R33LTZxmYZyhrBYvVU9sZ4jPYbb8mt8k4fUqirP8OkqXuOoHQPpBqJMzvClgN2oshpMZt9oNyxrf4tW3dXsS7Jo+PfsM46Mpx9+o/5mJ4dQKlOTb0W4J463fB2tgTfjQt2JQEEnZSt3DeUdBqTcbcenTwCQUb7ALUs5g67Z6Q1LLsfzA8Gzf81zcUFtDC36Bm9rvuS0X3Zpa6rxp2m5gWChx3NDgiHb2+vWmSdWzPzfo3PQzw19Y3sL08JXNn0QbU+LcDxKWyFlPg9mwsazU06fGyTuM6zd8F4ynWbKKb8hRVwv2AOJCbYfa+FZBkY+Iy42+rDdhhv/O2KmAfit5d5pO0sAL1pSSQ1OIfTwJmo6YgV3H5ccf1vJs0/F9IyDHf/Z8lJ2KBAAA" + } + }, + { + "ID": "8e506a3363d098fe", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/models?alt=json\u0026pageToken=\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:39 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/32OwQqCQBCG32XOCqOm7nrrICGUgXqLkMUdyVBX3L2I+O6Z1qVDp/lgvn/+maFTkloN0W3eMaOaRuorgmiGYVRPqkwiIQL9UG07daK3JXXKNqQNWCCFEZp248Oliw530GVlEHAMfI7IvXWUiOiska1mC2z0X18sqEYSplF90XTrU+D4oeuykPkhR2891wptLko2dUPyV2E8OHwbi2l4785JGh+zMotPWZznyTWF5b68AAuE2UUHAQAA" + } + }, + { + "ID": "e9a81ef08854dd2e", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/models/model_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:39 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "1671095c16c0bfd8", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/models/model_20191028_66906590093659_0001?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 404, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:39 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/82PMQ+CMBCFd35F01nMgUiE2bAJi07GkGormrRcwpXBEP67bWVwcna6vHvvct+bIsa4GgYceMkmJ5y8oVROZZCtPgujiETnd7xGy+449rJkBxfTjB6o9cuIPpbKYGwV2VIKK0jZNoWkSCDdtXleQL4tAIqNGy0AJGvjz39G+PI+4JH7fg6aLZx/gBYQJBrx7D1Bp/Eq9Lc3KEEYvB5t5eH4Ys5hXpaKZIUdKbRojm3VnOq9D87RHL0B/Mu5Z6IBAAA=" + } + }, + { + "ID": "34d694d29ddf7f9b", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/routines?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "292" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJhcmd1bWVudHMiOlt7ImRhdGFUeXBlIjp7InR5cGVLaW5kIjoiSU5UNjQifSwibmFtZSI6IngifV0sImRlZmluaXRpb25Cb2R5IjoieCAqIDMiLCJsYW5ndWFnZSI6IlNRTCIsInJvdXRpbmVSZWZlcmVuY2UiOnsiZGF0YXNldElkIjoiZGF0YXNldF8yMDE5MTAyOF82NjkwNjU5MDA5MzY1OV8wMDAxIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCIsInJvdXRpbmVJZCI6InJvdXRpbmVfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMSJ9LCJyb3V0aW5lVHlwZSI6IlNDQUxBUl9GVU5DVElPTiJ9Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:39 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/32PT2uDQBDFv0qYY2lg1fgXcoiBFok1JLGHthRZdLTb6m7QFRTxu3c10p7a0zxm3m/mzQAoaQEexC+GIP6X3T0Sn7525BIejuK03cI91KKVjOMZc6yRpwjeANdafGIqg0yhzYcoy76ifJ1hJdYSG6mojEra4M2x6EQnmqsR3UksyyWW6RLiGqokhBDt99CMLPp/ZPxh4v6qcsFlvwt35+ThOdrHwTFSO9MaqWSCx6yaDJpp67pjO6a7sQ01Lmkjn0TGcobZnxZetLSY159C1aB10VbIZQPe2wCczlS3vHwLMoBU9cD49EoQxdYGxvFdOTBnnE15fJH1E7a6WxkwfgPK8JBKhwEAAA==" + } + }, + { + "ID": "52d137124d3ddadd", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "447" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiXG5cdFx0Q1JFQVRFIEZVTkNUSU9OIGBzaG9sbHltYW4tZGVtby10ZXN0LmRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMS5yb3V0aW5lXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDJgKFxuXHRcdFx0YXJyIEFSUkFZXHUwMDNjU1RSVUNUXHUwMDNjbmFtZSBTVFJJTkcsIHZhbCBJTlQ2NFx1MDAzZVx1MDAzZVxuXHRcdCAgKSBBUyAoXG5cdFx0XHQgIChTRUxFQ1QgU1VNKElGKGVsZW0ubmFtZSA9IFwiZm9vXCIsZWxlbS52YWwsbnVsbCkpIEZST00gVU5ORVNUKGFycikgQVMgZWxlbSlcblx0XHQgICkiLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6InJ6Tks1S0thcE8zbmVsbDU3WWVwbUZhWVg0QiIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:39 GMT" + ], + "Etag": [ + "Mty5paeXKV0PUAfAa0c6sA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/31Sa2+bQBD8K6frF1tyAJNAbEtWSy1cWXZIyyOKJSTnQtbkEuDI3RHJjfLfu+CHKjXNFzh2Z2eG23mjz7x6oBN6z/OXBuTuy5O4pwMKmuVYvdI7p2Zwu7yxfibe1mNW5ipvOkUEb6fUoyiKXcmqswcoxZkGpSdJZMjfwdJZLll9fV5BUTiXa6jLOVvfXnzHSQXFdsWrZ5x/1LpWE9M8qhu5EHkBrObKyER5qpuvtllL8QSZVuYHoia6VuYnsl8LkTHNRTVNIrTQKJAbKBkv0ERLcCbFvdDfPqA2OCuNHPGvPAOWZaKpdOsNWTJRbXneyI6YTt5o5/WvA02rVKd6Fvpe7JN5EszixXVA7j6SeWCaKdAb2xqOh5Y92rju2HKdsWWNz/G1sSxraEjRaF7BZyD7rrdXTTWTknhh6K3TxrLOsygOk1m8P1esBIKFRfBjQF5ZQRZB7F50PTg8OxJC+sSLyImSkF7kr/xZTKLkqreY96CA0ujYpiSlWyFSOuhqSDqomqLo98k8vL4iSRD4UdxDTx1ji+mfNPAya8mF5Lq9NfTihx7e1Y2/39UKcpbtohfc1pYVCt4HFBce72pA9K/ED9d0XwphCxKqDNolHAKz+E9QaTfRdT/P6zE6CMTwoJDS+K00z1Qrk0no2jEvWztD59K2R5cjZ+y4Lu3AUv/Tc+0L7J3y0jJCCZU+/NM+MZtjYuj7QbVRJzSiQrxTXCB2/wDqwd9hxwMAAA==" + } + }, + { + "ID": "1afeedbce09a7bd1", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/rzNK5KKapO3nell57YepmFaYX4B?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:39 GMT" + ], + "Etag": [ + "KK1s4mbAhpJgHow1z/lxmg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/yWOXUsDMRBF/8v4ukWLLcJCH2xBqgE/KoJ9zKa32a1JJiaz6Lb0v5u1T3Nhzpw7J/rqwo5qajr73SMNVxbyNoYNcu8klxE5ZFBFEG0LqdQ0z3xz38Ynu+af6fHa/Xq7WBTiwM0GeyQEA6pPFBMfYORxLMgtOzd4HSY7eJ4Islwu/rfp+KzmSun4chvg3Pxui+gf9PZztiyUY6Ol41DAj3c6VyQs2i2HInlNbJAzRsnNRbhiHx2kfCCpR0VGmxbrTqjea5dx/gM00fSa9AAAAA==" + } + }, + { + "ID": "620b59aae4367517", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/rzNK5KKapO3nell57YepmFaYX4B?alt=json\u0026fields=status%2Cstatistics\u0026location=US\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:39 GMT" + ], + "Etag": [ + "kkYL1Hr2AMbmSHaxi93JyQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/32RQVODMBCF/0vOdiagUOBmax17EJiKZybCto0TSE2WA9Ppf3cTGD0wekqy73u7ecmVWRQoLcrGsuzKGgN01H0lO2AZC6J1GCbrJEqjOGZ3Dja40OLwgTTo26WSJqSgRqE2I4ItjW7AWmiJ4qR8DWBGN9cjJTWXbvqC+7vDr7KRSv2UP+gg+1MlwbAsmLE3pfHVzkQjmjO8SGTZUSgLPhtCBz1W48Wl2B52j9Wufn7Pt9W+yMnStqq4gPEPVII5atP5gRM5AZUwJ8CDHlD24JJdjP6EBvcOtGet1NiJftVCp1d0aXQugcLCRMz7OuRBGvAwqeM45XGUcp7e01JzzgOymKm/t8z7/ywhu92Wb3CbMg/+4316Kj8V+Y7ob/G5Zy0YAgAA" + } + }, + { + "ID": "6039e321d7b9f17d", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/routines/routine_20191028_66906590093659_0002?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:40 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/32Qb0/CMBCHv8rSV5AMU4ZMRsKLSYBMYejWkRg1pLJjzozWdB26kH13b5NgjH/25pr2ee5+twMBzRMyJDdR74le7XurcjXjKyjfFzfsLRmNiEmULHQqIIAtKBAbIMMDeVXyBTbai1HNn2WWlTsuOjHsZEdDrtGKueY5fBLH89qiXadLrcHath1q9x1KnR6WNaW0+zWoUY7n/xSLVCeHla+Yi4Rjd+4G62nkj5m39LHnRgHXqRQs3dVAt39hWYOLQd+xBw4+ZzzXCxmn2xTiPxGRFDxp2t/O8YKrpNiB0DkZ3h+I4I3FlTou/RnlQDTW61TUy7hB4N41puLlJIPa/gULWRCNGXK5VsXmRGC2LP42rClmo/5s4fkzUlXmCd7z7HfW85l9juhjhd8jhodtKtL6Z13KuESgFU7mkzEzwmjR8qYtwOBndVNjZDyQrZQPxGzucIIpiixrt41psFwYke9PQtbCbduGGxo10ybVB42Tk9drAgAA" + } + }, + { + "ID": "97366e446d40d857", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/routines/routine_20191028_66906590093659_0002?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:40 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "477418610767222e", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "289" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5IjoiXG5cdFx0Q1JFQVRFIEZVTkNUSU9OIGBzaG9sbHltYW4tZGVtby10ZXN0LmRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMS5yb3V0aW5lXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDNgKHggSU5UNjQpIEFTICh4ICogMyk7IiwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJ6OEpnZ0IwZzZCZXFhOFpJQmhnVTBSbWljMUQiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:40 GMT" + ], + "Etag": [ + "Amn3GQrlbksaVntI4dJwLQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/31Sa2/aMBT9K5H3ZZ1KEkIbHhPaoGNVKpSJQCptQqLGXIxLYoPtdGNV//tuwkOTxviU+J5z7zm+x69kLeSCdMhc8G0BevfuWc3JNQFLOVZ7uWzcj3Q2Xxv6KG10s3j4ORx1u8gQZZdZqSzb5VTWFpCrmgVjO+nY/d164Lzv87APW9r6EfVXPPWTXLD6F+w0kC2HQq6xf2XtxnQ876jucqV4BnQjjMtUfqp7L4G30eoZmDXeGVEPXRvvguynTDFqhZLddIwWCgN6BjkVGZooB9S0miv7+cxoV9Dc5ch/EQwoY6qQtvSGU5iSS8ELXQ0mnVdSef3rh0zl1E7tXTLoTQbO1zS+m0TfYufpnMyCWmrAzgK/3q77QWsWhm0/vG37fruBn5nv+3VXq8IKCZdIjaf3v5wonoQ3V05v7ODhg9O4+oh2N1ooLWzpC/FB0kM3j4P9NobAKduNt7iPJc0MvF0TXOlktwFkj9JB8p3sSwksQYNkUF7zEEn0n6dAqo4KvfwijuEgEeNBIWPxbKxgppRhGip4IvLSTv22GQStZiv0gzAgFVnbf7BGs43YKZFyIuQg7eFO+0xmx0zI20G1MCc2spI0jqP4HtE/LwEbLCkDAAA=" + } + }, + { + "ID": "5cba0e3ee24aecfe", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/z8JggB0g6Beqa8ZIBhgU0Rmic1D?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:40 GMT" + ], + "Etag": [ + "Cuem33Jpkuy0ZJR1C7QpJg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/yWOy27CMBBF/2W6DVIQUosisUm6KFmVIDbsjLk4Br+wx4uA+Pc6ZTVXmjPnzpNu2p2poZNW94w4fSjwbg4DUjacygjeJVBFYKEK2WXY1aoPtzzVx35Ydl+70KvNphBXfxpwQYSToOZJIforJG/ngjR6YyYr3OIM6xeMxO+L/+1j3SvV1uqzxV2sj9t2VId6sFouvwtlvBSsvSvgYU+vitizMO1UJL/RS6SEWVK/hZ23wYDLBxwzKpJCjvjRTM1FmITXH2A4nq/0AAAA" + } + }, + { + "ID": "5ce510f3f0fbff4b", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs/z8JggB0g6Beqa8ZIBhgU0Rmic1D?alt=json\u0026fields=status%2Cstatistics\u0026location=US\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:40 GMT" + ], + "Etag": [ + "k4V0noqkLssnU4MtvzQxYQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/32RzW7CMBCE38XnIjlJyd+t0FTlUEA0PUdusoArJ07t5RAh3r1rJ2oPUTnZ3vlm12NfmUWB0qKsLcuvrDZAR92VsgWWs2CZhGGapDEP45A9ONjgTIuSjDTompnymEakoEahVgOC3Rtdg7XQEMVJ+b6AGdxcj+ypuXTTZ9z/Hf6UlVTqt/xJB9mdSgmG5cGEvSuNb3YialGf4VUiy49CWfDZEFrosBx6l2J9KJ7Konr52K7LzW5LlqZRux6Mf6A9mKM2rR84kiNQCnMCPOgLyg5cst7oL6hx40B71koNregWDbR6QZdG5xIoLIzEtK9CHmQBD9MqjjMeLzPOs4iWinMekMWM/b1l2t+zROx2m7/Bbcx88R/v01P5ebctiP4BP1RJ7xgCAAA=" + } + }, + { + "ID": "235c0d2d211f8b25", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/routines/routine_20191028_66906590093659_0003?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:40 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/32PT2uDQBDFv0qYY2lg1cR/kEMMtEisIYk9tKXI4o52W90NuoIi+e5djbSn9jTDzPvNvDcAKlqAD8mLJUnw5XSPJKCvHTlH+4M8bjZwD7VsFRd4whxrFBmCP8Cllp+YqZBptPmQZdlXVCwZVnKpsFGaYlTRBm+KuU9NYngGMd3Utj1irz1CPEuXlBBi/D6akLn/D7Hg+sMk/UX7gvNuG21P6cNzvEvCQ6xvZjVSxaVIeDUKjLVjmq7j2mRle3pd0kY9ScZzjuxPiShaWkznj5Ee0LpoKxSqAf9tAEEnqpsj34wMoHTdczFGCePEXsH1+q4VmHPBRz+BZP2ILe4WOsc3XIfztIcBAAA=" + } + }, + { + "ID": "9075067d8edb4779", + "Request": { + "Method": "PUT", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/routines/routine_20191028_66906590093659_0003?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "275" + ], + "If-Match": [ + "TY3o0Bk7xG0BaZx0SLKOoQ==" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJhcmd1bWVudHMiOlt7ImRhdGFUeXBlIjp7InR5cGVLaW5kIjoiSU5UNjQifSwibmFtZSI6IngifV0sImRlZmluaXRpb25Cb2R5IjoieCAqIDQiLCJyb3V0aW5lUmVmZXJlbmNlIjp7ImRhdGFzZXRJZCI6ImRhdGFzZXRfMjAxOTEwMjhfNjY5MDY1OTAwOTM2NTlfMDAwMSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QiLCJyb3V0aW5lSWQiOiJyb3V0aW5lXzIwMTkxMDI4XzY2OTA2NTkwMDkzNjU5XzAwMDMifSwicm91dGluZVR5cGUiOiJTQ0FMQVJfRlVOQ1RJT04ifQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:41 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/32PUU+DMBDHv8pyj8bFAhsDkj2wJSbEiTpxmhhDGnpgDbQLLehC+O4WRjTxwae79H6/6/86QE0LCKCUbdKqUG0OV/fWc3t4YTpmn+s1XEItG80F7jHHGkWGEHRwrOUHZjpiRlXvsixPFRVzhpWca1TaWIxqqvBMTH1qE8u3iO2lrusTd+kT4jumpIQQ6/ejUZn6/xQH+h8nOR1NLnjchrtwn14/xdskuovNzqxGqrkUCa8GwFqubNtbeS5ZuL4Zl1TpW8l4zpH9RSziOSMiioYW4/qHnXmgddFUKLSC4LUDQUfrazr5HKQDbeoNF8MpUZy4C+j7N0NgzgUf8mwkOw3a7GJmZt8wXF9mhwEAAA==" + } + }, + { + "ID": "8a2e2fac0c38b971", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/routines?alt=json\u0026pageToken=\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:41 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/82QTU/CQBCG/8ueJc62dNttwqEl0RBrEaj4FdNsukuttl3SXSqk4b+zIuJFuXjxNJPM+8xMng41cqWLWijkP3VIaJYjHyUPtoTwzV1fQsge1zCLrsZyMhigs6/4VCxEI+pMIL9Dy0a+ikyPuEHViyzLTcXqHheV7GmhtKE400yJz8ShTy3AFIPlpYRQIA4FoLYpKQDg70N75NCfRrZHJtkszV9oNgyiYJpe3MbDZDSOzc6sEUwXsk6K6iOAHdeyPNdzaN+1zbhkSl9LXiwKwX+N1PmK5fv1k8jcPDorZZu0KlDh/PwG37Xze65j/v6vndl/cEagT+hpZwSD95Oz5+0OlUhz+3YCAAA=" + } + }, + { + "ID": "e13d401715a561c8", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/routines/routine_20191028_66906590093659_0003?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:41 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + }, + { + "ID": "e4dd1a46f1234a7a", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001/routines/routine_20191028_66906590093659_0003?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 404, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:41 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/82PPQvCMBCG9/6KkFnlarXYztKxgugkUqKJtdDmIHcdpPS/m8YOTs5Ox/vB8bxDJIQ0zqGTuRi88PKO2ni1gc3iY3SGSNWTJ0tk8cDe6lwcsefGGkFPbNtXp+xSmw6XbIhzrViR4WoNcRbDelelaQbpNgPIEn8qAIhX7vPgVymRM0JAJE9wCVrMrH+CFzA0dqqxE0Xd4k2135kzijBkFrmYAOUcjuFe55nEinsKSw6nqjicy/1UHKMxegNhQiAVqgEAAA==" + } + }, + { + "ID": "8adbdf84843bcc6f", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "159" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ICoiLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IkRwWEtGWFhtWlVhbzhQV3I1SllGRUttc3RLSCIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:41 GMT" + ], + "Etag": [ + "TJFyguOqY4toGVdiTWQ25A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/7WSUW/aMBSF/0rkvVUlEQgoioS2qg0bhZURQgurqsk4l+A2joPtIEUV/33Xhk6bRvvWt/jec893fJ0X8syLlIRkxbNtBar+9CRX5JyAoRlWk5tBnVWT7bJt5Ne7lCf301bnst9HBbdTeiPzvBa0aKQgZMOANuF85l+Xi9FgsRA/51T2ftyrzs1yEI2ENqNvOKkhX4958YzzG2NKHQbBK93PpMxyoCXXPpPiTz3YtYJSySdgRgcnoAGm1sE72M+5ZNRwWfTnM4xQaVC/QFCeYwhr0FByJc2XE9Y+p8LPUL/jDChjsiqMzYYuTBZrnlXKGZPwhbisf33Yq2Jk7wzFpeJScWOrw9skii+vkuFddMgyhoyyerbFNGuaa9ifE7xQUpeA6uk8ipfkUIphDQoKBhZyXMjwjYcgbsJ133+P19WgEJeDIG3wrA1n2mKYAtdOuLBxmp2LVqt30es2O+0ucWJl/ut1m237FxXpyc6RUTl/UEqqGHSVG3tEmnZZeLGjOU+nbpX/pNweSwK0ppm1n0Xj6CrxzjxRaeNt6A486g3iyXeP5RQX7FHjPTTD3qNFOyCiHz4e9ni4qJ26ntxGZL//DTH3B41xAwAA" + } + }, + { + "ID": "316717e4273bab60", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "245" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsidHlwZSI6IklOVDY0In0sInBhcmFtZXRlclZhbHVlIjp7InZhbHVlIjoiMCJ9fV0sInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiejlwVER3ZzRnTlROek0zYWRKeGlHbVRORzVNIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:41 GMT" + ], + "Etag": [ + "OgdnoOlMODr6yiw7pBWiOQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Sa0/bMBSG/8rkfYWmuTeVEGNtVnWi6WhT0DRNleOcBkMSB9sFCuK/7zih1bQxtE++nOc992dyy+ucDEnGi7styN3HG5GRIwKaFvg7L/JazMvZfCyDHX8Im89XfH5xcoIENyp1LcpyV9H6OIdKHGtQerha9p6iJh0/FF6RpMnTzKX510c+qdJk4s9QqaDcnPP6FvXXWjdqaFn76L1CiKIE2nDVY6I6/Fv3jtVIcQNMK+uNoBZmrax3wp6WglHNRX2yWmIKWwVyDRXlJSZhHBxLkQn96Q3XPU6rXoH8PWdAGRPbWpvc0AsT9YYXW9k6JsNn0ub628WUiil/OEU4R1+8btGUZiUY7LWk6T9aaVRUUwUdsc4AnDDI8si3bc/eBIHvD6gdepEbsSj3PYe54PRdijptQrQqWovaZzmLMrvvAwDzHWABi6Kw77lZnrkbN0Bx5nhORl6wKAlUw5irRijeFUZGi/gsjdfTL+skjsfxGAM8SP4ndbWYIpQuVskIaWQayQViphHTJI0XZ6N0ehl37T+HgrLd8g4HsKGlgqOuZ9+opBVokIoMf2CD9s9017Qd0+1p3AWeyfYAXNJy2xL33YX0ycvLTyRwMzoxuVjFi++k+1rABiTU7D/HgIrW+v5i73cMQdwyDKQ0vnHsTJkwbWfN+Hll0rH90HEG4SCww7BPWljqv2yD1nZYLOMRKqj1a03L+DwepVhqF2yrDhAacRLJNJmg9RddCWOH5wMAAA==" + } + }, + { + "ID": "c99e94535ba41e17", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/z9pTDwg4gNTNzM3adJxiGmTNG5M?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:42 GMT" + ], + "Etag": [ + "LbyKDm5FvmsnkgRrw6rGjw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3U6DQBCF32W8bZMarYkkvbAWsUqJIr0yxiwwUOj+4O4g0oZ379B6NXtmvzlz5gj7SufgQVqVPy3a/qpEeh8fMbpWkuPSGO0QJoAkSibDtH9dqfnTr3J6X8a2u7NB3S0WTLhsh0qAd4SiQpk78D6PoIVCHitm30xQ34xiHSV+4MfcUCYfG9E2DB+WoQ/D1zCB2qQxFmhRZzi6NdbUmNF6DOp2RspeCT3NUZkpoSM4T5x/D/dNsurK2zJKosPmRuQvf1WgkiiYb5iSJhNUGc3g9gN4ERkSMjYdJ4Vr+NfLnk3frMnQORxNZ5cFj0Y1EokTkW1xApngc58ruujhBKhp5XtLAQAA" + } + }, + { + "ID": "ac670c5662853bfb", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon5cdc9b105eeec52ec6c997043bdb3f369d5b242b/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:42 GMT" + ], + "Etag": [ + "dfs/+fs8YpkRHn6kxjDxbQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qnpBXra6cVW0QWZAd55JllV2S5VCQF2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwobKNXGAiEAMtIS024AAAA=" + } + }, + { + "ID": "28d87f66ae8946ca", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "250" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsidHlwZSI6IkZMT0FUNjQifSwicGFyYW1ldGVyVmFsdWUiOnsidmFsdWUiOiIzLjE0In19XSwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJEdjRxU042VmdiTjJpWHg5enFqQzRxbzQ3dGciLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:42 GMT" + ], + "Etag": [ + "xhvKtM68dwQxbEg/K3lyAg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Sb2/aMBDGv8rkvQVC/pAQJNQhSCdUlq0Q2KZpQo5zBLdJDLFDYVW/+85JYdPWVXsVx/e7e5473yO550VCBiTm6b6C8vT2TsSkRUDRFG+P28ON+uD2k4fbYxykxo2dnUbpcIgE11lyK7LslNOinUAu2gqkGiwXncnB2S9Cd5XGocW/HP0f+7uxsxeOp1LMlJBtZry4x/ytUjs5MIyzeicVIs2A7rjsMJFf7o2DZexKcQdMSeMFUQNdS+MV2atMMKq4KIbLBVqoJJRryCnP0IQu0C5FLNS7F0p3OM07KfIHzoAyJqpCaW9YhYliw9OqrAuTwSOpvf520K2i5TdXCCdYixc1GtE4A409tzT9xyh1FlVUQkOsYwDLc+PE75mmY25ct9frU9NzfNtnftJzLGaD1bUp5iktUWfRQhRgU9p3fc8F17UpbGLqgO13uwzsmNmmYyVml8V+jzxhUyVQBRMud0LypjEyngejKFhPr9dhEEyCCQo8lPxP6vN8ilA0X4ZjpJHZlVwgpgcxDaNgPhpH01XQjH8GKWWnxR4fYEMzCa1mZp9oSXNQUEoy+IYDOv9Gp109MVV/yfXs4yhyHe33gqxoVtXMoTkQu2Mi8fQdIVyPpgK5XQbzr6S5msMGSijYf74FZtTR17f7vGgI4qqhkFT4j2/PpJapx6t3gOfajtnzLKvv9V3Lth1Sw6X6K+Z4XdL6tV26IuRQqOeeFsEsGEfYaiNWyQuEQXyOcBq+x+hPw7MSI+wDAAA=" + } + }, + { + "ID": "df394cccb2e83e93", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/Dv4qSN6VgbN2iXx9zqjC4qo47tg?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:42 GMT" + ], + "Etag": [ + "fdDFGh+OcfnKA9RsMLJCOA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PXU+DMBSG/8vxUpZMQzRbsgvGnF+4KXPGxBhTyoExSw/Qg4qE/267edU+6XPe87aHz0KnMIWkyOsWm+4kR35ylxhNq9jYoyJtEDxAFrk1s3SxvN6drmWm74NJbB6iu3AdzGbWMHKHpYBpD1mBKjUwfetBixLd2PjDGtxVDpbROni2WFLqcLWNomAeXcHwPniwpyTGDBvUEl1W1dAeJd+6mmZHSnWl0KMUSxoxGobDxOF18eXXm9XFS56szovXn8lvvQ/9mvxLzq2lSAouSFtxuwG7iImFiunb9oQz+Od5Z0MfG5JoDLrQ8XFBSGWlkG0jblr0QAr72ZuCjzz8AZTDEwNJAQAA" + } + }, + { + "ID": "42e1e9d0078e82e8", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anone3aa86976e663aefba4e3900ce3bc3142d10cb95/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:42 GMT" + ], + "Etag": [ + "6G3ETqhMUXE4N6CJHyQNKA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qbuRu7hhRm+IZGuJr4mTl7eVQG+nk72toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwob6xmaKNXGAiEAAG+0AXEAAAA=" + } + }, + { + "ID": "ceb84ea26565e6d5", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "257" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsidHlwZSI6IkZMT0FUNjQifSwicGFyYW1ldGVyVmFsdWUiOnsidmFsdWUiOiIzLjE0MTU5ZS04NyJ9fV0sInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoicHpzUFNWTU8zanJLMXR4U3c0TGNCcHJrSGJJIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:43 GMT" + ], + "Etag": [ + "52Ky6KiDmyL87vuYGnJB6A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Sb0/bMBDGv8rkvaUN+dukEmKlDSyjFNamTGiaKse9BkMSB9sp6xDffecE2IQY2qs459/dc/f4Hsgtr9ZkSDKe3zUgdx9vREb2CGiaY9R3TnfBKZ+Uu2k42DZXJ9WXo2B0cIAEN1nqWhTFrqRVbw2l6GlQerhc9Otf6mJxeXbu3shTW/9c3HtTdlTL289ZgpkKis2UV7eYf611rYaW9azez4XIC6A1V30mype4tXWsWoobYFpZb4ha2LWy3pE9LASjmovqYLnAFhoFcgUl5QU2YQr0pMiE/vRG6T6nZT9HfssZUMZEU2nTG1ZhotrwvJFtYTJ8IG2vfx3MqNjyh0OE11iLVy2a0qwAgz2NlPzDSpNFNVXQEasMwBkE2TrybduzN0Hg+yG1B17kRixa+57DXHD2XYp52ki0WbQSVRgxNwgz2wPqekHmOJSFzLcx6G8gg4CBbwfMj8gjDiWBaphwVQvFu8HIeB6P0niVHK9mcTyJJyhwL/lr6ts8QSidL2djpJGpJReIGSOSWRrPR+M0uYw7+6eQU7Zb3OEDbGihYK/z7IJKWoIGqcjwOxr0/Jvu6tYx3X7J8fR8lAae6fcFuaRF0zLb7kDcPrrkR9ALB+Tx8QeyuCVdIfJ1Gc+vSBeawwYkVOw/nwQz2tv3l/x53xDEjUMhpfEfV4ApI9O6bFaBl6Yd2x84TjgIAydyHdLCUr++c/f9gOz9WTJTEUqo9NNMi3gaj1MctRNr1AuEl/gqs2R2gre/AVTdEZnzAwAA" + } + }, + { + "ID": "f0dc5676d261c77a", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/pzsPSVMO3jrK1txSw4LcBprkHbI?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:43 GMT" + ], + "Etag": [ + "vSxCivvoLKuE1+Z6LRgyRQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PwU7CQBCG32U8CglE46EJB0owEFaBVjxojFm2Q2nZduruFKik7+4UPO1+2W/++fcCh6xMIIBtlv7U6Jq7FHndXSL0tWUvR0WlR+gBsk7FPMbnSXY8klrU0+H9x5OK0iZaj0ZieLPHQkNwgV2GNvEQfF6g1AXK2G7wLQY3VQfPajl+Eywo6fB1o9Q4VFNov9oe5LSNcIcOS4NdVuUoR8Pzrqbfk7VNoct+ggX1GT3DdeL6Wv36Vfz+snzI3WLI5/j0qExYucNsOxfLktGcUSniJgZZxMTaRnSSnjCEfw4bCV05Mug9dqGD24IJFZVFlkbsauyB0fLZWcY3bv8AJFZus0kBAAA=" + } + }, + { + "ID": "3b0d4ef089d65577", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon89c368b14ea346b22ac8c51c365febe6ce516c59/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:43 GMT" + ], + "Etag": [ + "7PubGjvdf7J1AirLErbhDQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qbB5QmuWeVpaSZexk6Zhb5uBYlZbgE2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwob6xmaGJpapupamCvVxgIhAG+nuKt4AAAA" + } + }, + { + "ID": "e9dcf6d0f52720d2", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "247" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsidHlwZSI6IkJPT0wifSwicGFyYW1ldGVyVmFsdWUiOnsidmFsdWUiOiJ0cnVlIn19XSwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJJaXc0bzhWUnpjVmtVS2lIOTdPMkNkSHN3T1MiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:43 GMT" + ], + "Etag": [ + "rnSK0CGdpG15Ticas/Lj6g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41Sa0/bMBT9K5P3FRqS1klTqWKsZBBRtVuadpqmqXKc22BI4mC7RQXx33edQDdtDO2TH/ece859PJJbUedkRDJR3G1B7d/fyIwcETCswF9VL65OJhd5c+HSVHCmnemNX4zHiBCWpa9lWe4rVh/nUMljA9qMloteLO4HcrhKHvjqdnklLsNg7k3yS30/XyBTQ7mZivoW+dfGNHrkOC/qvULKogTWCN3jsjr8OzvPaZS8AW6084qog66184bsaSk5M0LW46W1sNWg1lAxUaIJm+BYyUyaD6+k7glW9QrE7wQHxrnc1sZ6wyxc1htRbFWbmIweSev1t4stFS2/O0VwjrlE3UJTlpVgYc8lxf9opWUxwzR0iHUG4AV+lofUdQfuxvcpHTI3GIT9kIc5HXi8D95JnyHPWImWxWpZQ+hzP/f67maYh5xSn+Z+PwupN8zzk8DlfoYJvAElT1iUAmbgXOhGatEVRiZJdJZG6/jTehZF59E5Ctwr8SfqaxIjKE2WswmiEdMoIRFmGxHP0ig5m6TxKuraP4WC8f3iDgewYaWGo65nn5liFRhQmoy+Y4Nenum+aTtm2pN8nM+n1uwhvmLltgXsugsxCo+npx8Iwt3o6OTLMkq+ke4rgQ0oqPl/DgIZbfTt1X7ZMgTinqGQNvjGwXNtZdre2gUQlbXj0sDzhsHQ71MakBaszF8x3w/J0a/Vshmhgto817SIptEkxVI7sa0+gDCIs5jFswuM/gSDiuoR6QMAAA==" + } + }, + { + "ID": "033dfb8e09d9b11c", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/Iiw4o8VRzcVkUKiH97O2CdHswOS?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:43 GMT" + ], + "Etag": [ + "d9r3ZI4WMa4H6ZNUIvwyUw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PYU/CQAyG/0v9CgkqUVnCB0ZItjiZjgwTjDHHrcDBbZ274jKX/Xc78FPv7T19+7aFkyky8GBr9t9nrJqbPfJb/0jQnS07KSUVDmEAyGovZDap7jfh+P1FjYOHzTINf+omradTIZw+YK7Aa2Fn0GYOvI8WCpWjjO1GX0JwU/bCj+NoMVtKI6esbyzTKJr50QK6z24AR9omuMMKC429W1nRETWHfVB3IGubXBXDDHMaMjqGy8TlNzT1mJ7Wya9en9JnE0we47t5Frg6XgllSSs2VAiYrkAWMbGyCdWSFG7hX/uNmL5WpNE57E1H1wVzykuLLIm4OuMAtJJzA8NX3f0B1Pbe/UsBAAA=" + } + }, + { + "ID": "1eb7964ae18d8062", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anone96c6d231f8d9c5565d63b9528dd071c6b9c9245/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:44 GMT" + ], + "Etag": [ + "IGDPWgAC0eakMCDJ9TeWBA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8p7ursEhKc7OhukJmb7Ort4WYakhjs52toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwqXFJWmKtXGAiEAmSRo0HEAAAA=" + } + }, + { + "ID": "bd2f1741f905b30e", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "251" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsidHlwZSI6IlNUUklORyJ9LCJwYXJhbWV0ZXJWYWx1ZSI6eyJ2YWx1ZSI6InN0cmluZyJ9fV0sInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiQThGZUJuYW5TNFQ5Z094em8yc1MxUmN2MVljIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:44 GMT" + ], + "Etag": [ + "XX2vI7bt2p1Sh4qp5WhlcQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SbW+bMBDHv8rkvW1CTHgIkaouS+mEVKUrkD5omiJjLsQt2BQ72bIq330HtN20ddVeYezf3f3vf/dI7oXMyZRkonjYQrN/f6cyckTAsAJvb27sXeRnxq5psnEeavd6U/LL42MkRBulN6os9xWTgxwqNTCgzXSZDGeTM/gomUycNCguvv9Qtk5ozHf0lmOkhnJ9LuQ9xm+MqfXUsp6rDwulihJYLfSQq+rl3trZVt2oO+BGW68UtVC1tt4oe1IqzoxQ8niZoISthmYFFRMlimgTDBqVKfPhldRDwaphgfxOcGCcq600rTbMwpVci2LbdInJ9JF0Wn87tK2i5HcnCOeYS8gOTVlWQos9tRT9w8o2ihmmoSdWGYDte1keuJQ6dO15rjth1HeCccCD3HVsPgZ7NGYYZ9oSXRSTSrq+59o5jGCUscBdB6N8ZPsuBUpdCDwY5d6EjaljkwM21QAzcCp0rbToGyPzOJyl4So6Wy3C8DQ8xQLfGvEndR1HCKXxcjFHGpm6EQqx1ohokYbxbJ5GV2Fv/zkUjO+TBxzAmpUajnrPPrOGVWCg0WT6BQ16/k33deeY6b4kSeNo8amV+0JcsXLbIbv+QLRphCzI4fAVMdyPPgW5XIbxLemvYlhDA5L/5zAwont9e72fNw1B3DUspA3+4/C5bst0/rZLIKpWDnV92574E88ZU0o6uDF/vbmuR45+rVebESqQ5qmnJDwP5ym22hfb6hcIH3Eei86sw0/+fhLM7QMAAA==" + } + }, + { + "ID": "eb6784278199d22d", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/A8FeBnanS4T9gOxzo2sS1Rcv1Yc?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:44 GMT" + ], + "Etag": [ + "XKZtdaHFWojxxzTBRxDSYg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P0U7CQBBF/2V8LQk1PmgTHqiKEAlqW4JojFm201Lc7tTuVFsI/+4UfNo92TN37h7gq7ApBLAp8u8G6+4iR37pLxG6xrCToyLrEDxAVrmYr49vnKrpZEW7tt0nYdTexet8NBLD6S2WCoIDZAWa1EHwfgCrSpSxbPgpBndVD3ESzRYPwiWlPS+W8/k4nN/D8ePowY42EWZYo9XYh1U17VDzrO/ptmRMVyo7SLGkAaNjOE2cXsfXEwytsvFVcpM/tXu6dLEf6R9/rcUypBUXZEVcxiCLmFiZiH6lKPjwz2Enoc81aXQO+9DhecEtlZVBlkZcN+iBVvLbacFnPv4BibpFQkoBAAA=" + } + }, + { + "ID": "3a80594727294c0a", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon57652de0e0ba95f90d02751e115e96e0d68a3142/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:44 GMT" + ], + "Etag": [ + "2ITuz9xbiw1Fxkdn/YEewQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8obeYaUVllWJGWWG7pVZKfk6Ue6ppYH2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwoXlxRl5qUr1cYCIQAdNVoGcwAAAA==" + } + }, + { + "ID": "1d6a5a8722c61bd1", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "256" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsidHlwZSI6IlNUUklORyJ9LCJwYXJhbWV0ZXJWYWx1ZSI6eyJ2YWx1ZSI6IuaXpeacrOiqnlxuIn19XSwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJ3U1k5MUZ2azA5VjhNZzJ6dDY2RmkxMmRYZW8iLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:45 GMT" + ], + "Etag": [ + "XUNQSSAeNuOd8/3KmyMVmQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42S227TQBCGXwUtt218SHyKVJUqdVFEa4jthFaAovV67G5re1PvOlWo8hzcIO64QTxXxWMwttuCoFRceT37zcw//84NueRVSsYk4flVA/Xm+YVIyA4BRXOMns6DWRQdQNC8Tl1t+KrcnCzK2d4eErzNkueiKDYlrXZTKMWuAqnG82hwHZ15xtH6UvcW7kluflS2fcQNMz0FgZkSiuyYV5eYf67USo417b77IBciL4CuuBwwUT7EtbWprWpxAUxJ7ZGmGqqW2hNt9wvBqOKi2ptHKKGRUC+hpLxAEW2B3VokQr14pPSA03KQI7/mDChjoqlUqw2rMFFlPG/qrjAZ35BO62+HdlSU/Gwf4RRr8apDY5oU0GJ3I03/YWWbRRWV0BPLBMB07CT1LMMYGZltW5ZLDWfkDT3mpdbIZEMw9SHFPNW26LJohSotliVe5uqWrtvMdbMRODQzPdehaeZ6pucMKUaAbHGoGqiCQy5XQvJ+MDIJ/YPYX06PloHvH/qH2OC65n9Sb8MpQnE4DyZII7OquUCsNWIaxH54MImnC7+3/xhyyjbRFT5ARgsJO71nb2hNS1BQSzJ+hwbd/8abVeeY6r4kisNp8LKV+0AsaNF0yLo/kNtPX28/f//x7cv7imy3H5DFJenrkNncD89IHwohgxoq9p8vghnd7dM7fr9uCOLCYSOp8B83gMm2TWdyuwm8bOUYlmOaruPalm7qpINr9dedOTLIzq8daytCCZW6mynyj/1JjKP2zRr5AOElPkrQObb9CaibHybyAwAA" + } + }, + { + "ID": "9fd8cba5ecbe7aff", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/wSY91Fvk09V8Mg2zt66Fi12dXeo?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:45 GMT" + ], + "Etag": [ + "S75HcD2KUVNUrpSxG2lEcA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3U6DQBBG32W8bRMgsVqSXrTav4hEQRqNMWa7DJR2YZCdWrHpuzu0Xu2e7Jlvvj3CrqhS8GFd5F97bNqrHPm5u0Ro94atHDVVFqEHyCoXM765Xuh77yFZhUlTxz9zz0z1eDQSw+oNlgr8I2QFmtSC/36ESpUoY5nzKQa3dQfxS7QM58IlpR2HSRCMJ8EUTh+nHmxpHWGGDVYau7C6oS1qXnY97YaMaUtV9VMsqc9oGc4T59dD/DZ0Z987Z7i6fcy9Xx4MZoXrpa9IYhnSiguqRExikEVMrExEBykKLvzzpJXQp4Y0WotdqHNZcEdlbZClETd77IFW8ttFwRc+/QHM2ESSSgEAAA==" + } + }, + { + "ID": "1dfe86fb412e5d45", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonf5cfb9f805006c88f4e7af2987adf892973ae7ae/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:45 GMT" + ], + "Etag": [ + "nFyPFSjFz36pttjcTH4rTw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8rnuVUGuAVnuVUZmxWUlGQlh3iYFIWU29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwo/m7702Zw1L1bNi8lTqo0FQgCiIFuaeAAAAA==" + } + }, + { + "ID": "3aca071600273f7f", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "249" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsidHlwZSI6IkZMT0FUNjQifSwicGFyYW1ldGVyVmFsdWUiOnsidmFsdWUiOiJOYU4ifX1dLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IkhiVnZ0UlVwbWFoOXB6YzFaZnEyS1pvU2pUNiIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:45 GMT" + ], + "Etag": [ + "/5DrsJqNS426puyR5Em9vQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41TXW+bMBT9K5P3moZAAoRIVVcldMsWsZWQTus0RcZcqFvAxDaZsir/fdfQdtPWVXvC9j3nnnM/uCd3vM7IjKS82LUgD69vRUoGBDQt8NVyF1K930XrieM17SF2wyrYX56eIoIblroRZXmoaH2SQSVONCg926yH79KrvY43TUVvguYHs6/znfPhWqxvEw+ZCsp8xes75N9o3aiZZT2qDwshihJow9WQierp3do7ViPFLTCtrGdELXStrBdkz0rBqOaiPt2s0UKrQG6horxEEybBiRSp0G+eST3ktBoWiN9zBpQx0dbaeMMsTNQ5L1rZJSaze9J5/e1gSkXLr84QnGEuXnfQhKYlGNhDSct/tNKwqKYKesQ2BXB8L80C17Yndu55rjultj8JxgELMnfisDE4ozFFnjYSHYvWoma5m/ojL0+RyKapn+dZPvVGNB8FjutNshGMc9f1UnLEoiRQDQuuGqF4XxiZx+F5Em6XF9soDBfhAgW+S/4n6nO8RFASb6I5ohHTSC4QZhqxjJIwPp8ny6uwb/8KCsoO6x0OIKelgkHfs09U0go0SEVmX7FBj9fk0HQd092XXKw+nifexPh9glzRsu0w+/5AIhqR4/EbYnA7+gTkchPGX0j/FEMOEmr2n6NARhd9ebkf9wyBuGkopDTecfRMGZmuu2YFeGXs2K7vOFN/6rme0/0amkr9V8y3p2Twa7lMRqig1g81rcNVOE+w1F6sVU8gDOI0omX0FqM/AVxSNkDrAwAA" + } + }, + { + "ID": "141fd4e0949a0ea6", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/HbVvtRUpmah9pzc1Zfq2KZoSjT6?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:45 GMT" + ], + "Etag": [ + "7Z0eX2rb688XdOtAWdpbHw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P0U7CQBBF/2V8LUnhAZGEBzAajI1ooUJqjNlup1Dc7SzdqaQS/t0p+LR7smfu3D3Bd1nlMIas3B4arNubLfJbd4nRN4a9HI4qjxAAstqKeZuGuBnU2XA02uQLnq5zl82Pk4kYXu/QKhifoCjR5B7GHyeolEUZK8IvMbh1HTxGi+lK0FLe4UsSRdNZ9ADnz3MAe8piLLDGSmOX5Wrao+anrqbfkTGtVVUvR0s9Rs9wmbi8zrP3H44TZ9Xuzv3qflocBs8pLferoViGtOKSKhGTJcgiJlYmpqP0hD7886yV0NeaNHqPXWh4XXBP1hlkacR1gwFoJZ+dl3zl8x+6ZdKNSQEAAA==" + } + }, + { + "ID": "b62e30b52589d2a0", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anoncf5b706fb511c8b7ffdf860af092564d0e3f556b/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:46 GMT" + ], + "Etag": [ + "EH4aInn5/mHkqkXkJkWJvQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8q7epgkeublmernemQXZkdke2WHe5UF2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwr7Jfop1cYCIQDnvX3ScAAAAA==" + } + }, + { + "ID": "0d50ddff4a24f40d", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "248" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsidHlwZSI6IkJZVEVTIn0sInBhcmFtZXRlclZhbHVlIjp7InZhbHVlIjoiWm05diJ9fV0sInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiRllKdk5HNWdnczFKSEVWcE5YWTJKWW5KdXJVIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:46 GMT" + ], + "Etag": [ + "q/ngh69U5Eo6PfzhwVWn/Q==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Sb0/bMBDGv8rkvYXmT5uEVEKMlcBaoQjapKybpspxLqkhsdPYKSqI775LAmzaGNqrOL7fc/fc+R7JHRcpGZOE59sG6v3HW5mQAwKa5ni7NUS+cf3YCaR7lT1s7pc3wrg+PkaCtyq1kUWxL6k4TKGUhxqUHseLwflqtgsvnDxX1uxLsKzCryt7thKzpo5RqaDILrm4Q/1G60qNDeOl+iCXMi+AVlwNmCxf742dbVS1vAWmlfFGUQNdK+OdsieFZFRzKY7jBVpoFNRrKCkv0ESb4LCWidSf3kg94LQc5MjvOAPKmGyEbr1hFiZFxvOm7hKT8SPpvP52aFtFyx9OEE4xFxcdGtGkgBZ7bmn6j1G2Kqqpgp5YJwC25yap71jWyMpc13GOqOWN/KHP/NQZ2WwItjmkqNNtiU5FhRTWcJiYFFxmU2tkMt/2zNT3Td+z08xzHM9mqWWlpkOesKkaqIYzriqpeN8YmcyD0yhYT8/XYRCcBWdY4L7mf1I38ylC0TwOJ0gjU9VcItYOYhpGwfx0Ek2XQT/+S8gp2y+2+AAZLRQc9DO7ojUtQUOtyPg7DujlN9pX3cR09yWfV1GwaN2+AktaNB2x6w/kW+nvyNPTD4RwOXo9uY6D+Yr0V3PIoAbB/vMlUNFF39/tlzVDMO4MKo3/+PJMtWW64bYbwMvWjoWjt4+8I9cdWUPSwbX+K+Y4Jjn4tVttRihB6OeeFsFlMImw1b5Yo14hDOJjhNPwAqM/AYBVyprqAwAA" + } + }, + { + "ID": "777ca49850c24317", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/FYJvNG5ggs1JHEVpNXY2JYnJurU?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:46 GMT" + ], + "Etag": [ + "yBCmfQSFidfY3dma46B+Ag==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PXU+DQBBF/8v4KE1avx5I+lAaaiWEWLBGYozZwkCp+4HsoCGE/+5s69PuyZ65c3eEr0aX4MOhqb977IarGmnnLinaXpLlozXaIniAJGo2h2Ctql22acoqvy2VuHsIrlf1csmGLY6oBPgjVA3K0oL/PoIWCnmsmn+yQUPrIMhfwoxRmdJhso/jVRCHMH1MHpzMIcUKO9QFuqy2Mycs6MnVtEcj5aCEnpWozIzQEpwnzq+bPPpJHu/r2i6ibfjaJm/5TZTrqO/2bElTCGqMZnGfAS8iQ0Km5pd7wgL+ORg49LkzBVqLLnR+WbA2qpVI3Ii6Hj0oBH9229CFpz+eZ4fVSQEAAA==" + } + }, + { + "ID": "68c52d68561ba0df", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon133b0ae6c2a140c9270d990972df75572cd11d05/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:46 GMT" + ], + "Etag": [ + "CaV/GP4jm7dGZFPz0rvytA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8o7J4bpuweYZOWap7hHuQVUGRSVVZY42toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwpH5VqWKdXGAiEAMmXWL3EAAAA=" + } + }, + { + "ID": "9c783876e1a632de", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "280" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsidHlwZSI6IlRJTUVTVEFNUCJ9LCJwYXJhbWV0ZXJWYWx1ZSI6eyJ2YWx1ZSI6IjIwMTYtMDMtMjAgMDQ6MjI6MDkuMDAwMDA1LTAxOjAyIn19XSwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJlcmhuV0FqS01zeGZ4amx1blNLTWxuVGtGSVUiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:47 GMT" + ], + "Etag": [ + "OdFGoJY4HjINitFTUhajNw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SbVObQBDHv4pzfWsCXHgIzDg2E4mlGrQJ0XE6ncwBC7kIXOQONeP43buA2k5rnfKGe/jtf/+7t0/kllcp8UjM87sG6v2nrYjJIQHFcjy9SGen4uuN+WUbhFzNotWGbcOHoyMkeBslN6Io9iWrBimUYqBAKm+1HEK9qa4n27O5fMwet0VTLc/mRRXdzoIVRkoosnNe3WL8Rqmd9DTtNfswFyIvgO24HCaifDvX7qm2q8UWEiW1d5Jq6FpqH6Q9LkTCFBfV0WqJFhoJ9RpKxgs00QoMahEL9fkd6SFn5TBH/p4nwJJENJVqvaFKIqqM503dCRPviXRef1u0paLlg2OEU9TiVYdGLC6gxV5KCv7RyjaKKSahJ9YxAHXsOHUtwzCNzLYta8wMx3RHbuKmlkmTEVB9xDBOtSm6KFaJSnecmDrUNFydwdhN0pRSG3Rqmm6GPDjUTnUrzcgzFlUDU3DC5U5I3hdGpgt/EvnrYLYOff/EP8EEDzX/k7peBAhFi1U4RRqZXc0FYm0jgjDyF5NpFFz5ffvPIWfJfnmHD5CxQsJh37NLVrMSFNSSeN+xQa/baL/rOqa6P4mCub+MJvPL1vEbdMWKpqPu+wWhumEP9NGA6ge66VHq6e5Qbz9roBueTsnz8w8UwOHp9cm3lb+4If3RAjKooUr+86Uworv9ePZfxxBBHERMJBXucTIS2abpmt9OCC9bO4blUDp2xraj2yPSwbX6685wXXL4a/ZaRSihUi81Lf1zfxphqX2yRr5BeImPFQbhKd7+BC/EJx0KBAAA" + } + }, + { + "ID": "4b76180ec26dc5a6", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/erhnWAjKMsxfxjlunSKMlnTkFIU?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:47 GMT" + ], + "Etag": [ + "op0qqgtP2KZZ0jRaC84isg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PQWuDQBCF/8v0asCWHkogBxNSKonFqqGQUspGR6NZd9QdaUT87x2Tnmbf7Ddv3oxwKU0GSziVRdtjNzwUyB/zI0Lba7ZSGjIWwQFkVQhJjdu2BYdPu+PRrSK1eXkubbFaCWHTM9YKliPkJerMwvJrBKNqlLHc/RGCh2YWiR9s48QLQmnVlM2t98N+7633W5i+JwcqOkWYY4cmxdmv6ajClP05qj2T1kOtzCLDmhaMluE2cfvF7mw+vWoX2Gt+rXRv4l2gTXJ59Q9CaUoVl2QEPMQgi5hY6Yh+JSs8wr9eD2IadpSitTibuvcFG6objSyJuOvRgVTJwW8l3/X0B6W+6J9NAQAA" + } + }, + { + "ID": "9204e64f1a600549", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon077b2724190ae89cdd226e02449f03ae726d05df/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:47 GMT" + ], + "Etag": [ + "2vTjAisyRxOoiCPpaObdbw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8oblYVkOWYWVwZV+OdnOgcUJPonpSSV29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwmbmFqYmBqamFjqGYCAqVJtLBACAL6otWd+AAAA" + } + }, + { + "ID": "de999681674d1380", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "253" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsidHlwZSI6IkRBVEUifSwicGFyYW1ldGVyVmFsdWUiOnsidmFsdWUiOiIyMDE2LTAzLTIwIn19XSwidXNlTGVnYWN5U3FsIjpmYWxzZX19LCJqb2JSZWZlcmVuY2UiOnsiam9iSWQiOiJCTGVNTmc3TGNRdXJ0cGptTzJEajdsSWdvckEiLCJwcm9qZWN0SWQiOiJzaG9sbHltYW4tZGVtby10ZXN0In19Cg==" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:47 GMT" + ], + "Etag": [ + "wZHkEwfVm6XkpSye0G5Lvg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SbW/aMBDHv8rkvS3kAfIAEuo6yLpIjK0QuidNyDiX1JDEqe1QoYrvvnPSdtPWVXsVx/e7///ufPdkz6uUjMmW57cNyOPrndiSMwKa5nh79+39PrrLrkv/y75eHcG+9OaHfDJBgpssdSOK4ljSqpdCKXoalB6vV/23c/iwyIM5u2qkrnflR3e2C4o4F/ICMxUU2ZxXe8y/0bpWY8t6dO/nQuQF0JqrPhPl0711cK1aih0wraxnTC2sWlkv2J4XglHNRTVZr7CERoHcQEl5gUUYgZ4UW6HfPCPd57Ts58gfOAPKmGgqbWpDFSaqjOeNbIXJ+J60tf52MK1iya/OEU5Ri1ctmtBtAQZ7aCn+xyhNFtVUQUdstgBu4G/Tkec4Qyfzfc8LqRMMR4MRG6Xe0GUDcO0BxTxtLNosWomKOmHK/MwNUsoy8NLQGw5TSu1sZA9t1/do6qOO7ZMTNiWBaphxVQvFu8bIdBldJNEmfrdZRNEsmqHBneR/Up+XMULJcr2YIo1MLblAzAwiXiTR8mKaxNdRN/455JQdV7f4ABktFJx1M/tEJS1Bg1Rk/B0H9PibHOt2Yrr9kpkxwGKf4te0aFrg0B2Iazt+zx70XJucTj8QxQ3pRMjVOlp+Jd3VEjKQULH/fA7MaKMvL/jjriGI24ZGSuM/Pj9TxqadsFkDXppyHC9w3TAI/cAPR6SFpf4rFroBOfu1YEYRSqj0Q0+raB5NE2y1M2vUE4RBfJFFvLjE6E9jHObz7wMAAA==" + } + }, + { + "ID": "ae3a3c935168c5fd", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/BLeMNg7LcQurtpjmO2Dj7lIgorA?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:48 GMT" + ], + "Etag": [ + "a1d8PYRwV5s642MU6v2DNw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PYWvCMBCG/8vtq4KWTYfghzqFCdVpN4UxxojpWdslvS65Tkrxv++i+5Q85Ln33nTwXVQZTOBQ5D8NuvYuR96GS4q+MezlqKnyCD1AVrmYapg9bt7T8/7Bj+6j1W70G83X5+lUDK9PaBVMOjgWaDIPk48OKmVRxo6DLzG4rQPM47eFkKUs0HqXJPEsWcDl89KDkg4pHtFhpTFE1Y5K1LwMLf2JjGmtqvoZWuozeobrxPV1luBqnY8TvW0c16V9iebl2CxzcrFYhrTigioRd68gi5hYmZTOUhOG8M+zVkI3jjR6jyF0cFvwRLY2yNKIXYM90Er++lzwjS9/IU5vs0gBAAA=" + } + }, + { + "ID": "2db372002cf69148", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anona18dc6f27dacfe5d8544daa0f9040265ad6a1706/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:48 GMT" + ], + "Etag": [ + "SI1WtCiNYH0KjoxWRPHj3A==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8oHexqGlzhn+kV6GHhn5VeEBwV4ZBk72toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwobGRia6RoY6xoZKNXGAiEA1ogQMncAAAA=" + } + }, + { + "ID": "f7b59c3c368b47f7", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "258" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsidHlwZSI6IlRJTUUifSwicGFyYW1ldGVyVmFsdWUiOnsidmFsdWUiOiIwNDowNTowNi43ODkwMDAifX1dLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IkZMZjNNV3JVdFR6eHhxYjZxbUNQaGVKVFQ0ZSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:48 GMT" + ], + "Etag": [ + "/eamq+Z1P+lH7koIPFEUow==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42S207bQBCGX6XaXgLx+RBLEUXBtK5ClCYOqK2qaGyPzYLtTbwbIKC8e8c20KqlqFde73wz/z+z88hueJ2xgCW82Gyx2b2/Fgk7ZKigoFsNodocfDNmB+Un70ZEs7NwKe5GIyJ4myWvRFnuKqiPMqzEkUKpguVicDbJrfPLZqnih/v7TeJuqvHsCj/HsY2UKbHMJ7y+ofwrpdYy0LRn9UEhRFEirLkcpKJ6udduTW3diGtMldReEdXItdTekD0uRQqKi3q0XJCFrcRmhRXwkky0BY4akQj14ZXSAw7VoCD+lqcIaSq2tWq9UZVU1Dkvtk1XmAWPrPP626FtlSy/OyY4o1q87tAYkhJb7Kml6B+jbLNAgcSeWCWIpucm2dAxDNvIXddxfDA8e2gN02Hm2GZqoalbQHmqleiyoCaXPvieDWjbjm+5rpXlOWSQ2WDmVp74FsDQQje12J6aahAUnnK5FpL3jbHxPDyJw1V0tpqG4Wl4SgJ3Df+TupxHBMXz5XRMNDHrhgvC2kFE0zicn4zj6CLsxz/BAtLdYkMPkEMp8bCf2QwaqFBhI1nwnQb0/Bvv1t3EVPdlcXQetmZf4hdQbjvgtj8w3Q50J9DdgecPdV1n+/0P4mlN+krsyzKcf2X91RxzbLBO//NNKKOLvr3lzwtHIK0cCUlF/7QDqWxlujG3u8Cr1o7heKbpe77rm47NOrhRf8Us22CHv7asrYgV1uqpp0U4CccxtdqLbeULREF6lmk0/UjRnwVKSIb0AwAA" + } + }, + { + "ID": "ccd6a624de32dec8", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/FLf3MWrUtTzxxqb6qmCPheJTT4e?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:48 GMT" + ], + "Etag": [ + "4tS78Ms3S5OdtBN/1xms/Q==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PW2+CQBCF/8v0FaNGewmJD8XY1AasckkfmqZZYLjYXRbYIYUS/ru72qeZL3PmzJkRfsoqBRviMm86bIe7HOlkGh9Vx0npUstKIViAxHKtXFPw+OSpVXD/npJzmC97oeanzUYrVFKgYGCPkJXIUwX25wgVE6jXssW3VtBQGwj33k6TkKmhQ+S6z467g+lrsuAsYx8zbLFK0FjVrTxjQnuTUhWS80GwapaikDNCRXDduE5f3GzlfbQRhX9938QPjdgeC3wLw7WJz2XCqJSVFkYB6EMkiXFf/uqYsIR/dgZtemxlgkqhMV3cDmylqDmSTkRthxYkTP/6WtKNpwvctdvMSAEAAA==" + } + }, + { + "ID": "14880fbb90b88854", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonf8a874ae44583663dffadad4a2f3fb83aa93e6c3/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:48 GMT" + ], + "Etag": [ + "iv2flgpb4yyWt1UzFZv8bg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pnlhml5aQXJJlUVoaXGIZWuUWVWSSl29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwobmFgZmFoZmOmZW1gaGBgo1cYCIQB0TlNMfAAAAA==" + } + }, + { + "ID": "ba95cad8a9ef6029", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "273" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsidHlwZSI6IkRBVEVUSU1FIn0sInBhcmFtZXRlclZhbHVlIjp7InZhbHVlIjoiMjAxNi0wMy0yMCAwNDowNTowNi43ODkwMDAifX1dLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IktFZjRlZ1JNdjFqS2VSRDJQd1p0czVEZHZiOSIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:49 GMT" + ], + "Etag": [ + "E2psafbc3yLBxCGDUBEq8Q==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42S207bQBCGXwVtb0l8jg8SohC7yCJE4DhUbVVF6/XYLNhe492ERoh379gGWrUU9cLyHr5//pnZeSR3vMlJQDJe3m+h23+4FRk5JKBoiaeR2UpaZMzaL05/zM/C9Wl0710dHSHBe5W8EVW1r2kzyaEWEwVSBevV9DwqbCiTi51xew5JaF4+fFXSCfNd5qNSQlUseHOH+hulWhlo2ov7tBSirIC2XE6ZqF/PtZ2ptZ24Baak9oaphllL7R3b40owqrhojtYrTGErodtATXmFSfQBJp3IhPr4Rugpp/W0RH7HGVDGxLZRfW4YhYmm4OW2GwKT4JEMuf626EvFlA+OEc4xFm8GNKVZBT32XFL8j1b2KqqohJHYZACmO8ty3zEM2yhmM8fxqOHavuUzP3dsk1lg6hZFneotBhVtRJPnvm64BfWYwZhreYbnQuG6jm35tm2YnlMUJvUNhzxhUR1QBSGXrZB8LIzMk+gkjTbxp80yisIoRIOHjv9JfU5ihNJkvZwjjUzbcYFY34h4mUbJyTyNr6Ox/QsoKduv7vEBClpJOBx7dkk7WoOCTpLgGzboZZvu26FjaviTEA3S+CLqE35lrmm1HaDduCCmbswmujUx9QPdDnQn0GdT1/N1XSdPT99RilMzBiZX6yj5QsajBArooGH/+USoGG7fH/qX+UMQJxCNpMI9jgSTvc3Q9X40eN2nYziuaXquN8PPIQPcqb/ufMckh7+Gro8INTTquaZVtIjmKZY6mm3lK4SX+ErLeHmGtz8Bwx8PmQMEAAA=" + } + }, + { + "ID": "290b7dec67c34355", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/KEf4egRMv1jKeRD2PwZts5Ddvb9?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:49 GMT" + ], + "Etag": [ + "BO8WwweiRez7+ICfwrsOoA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PUU+DUAyF/0t9lCWb0agke4BBIhlzE7eYaIy5QGHghSK3jOCy/27ZfOo9vV9PT4/wXdQp2BAX+U+H7XCVI7+MjwhNp9lIaag2CBYgq1xId/3w1vdYRPh7fx0ssr41a3LmcyFMssdKgX2ErECdGrA/jlCrCmUsm34JwUMzCs/Z+ttg5UunonTsPO/C0HFDH06fJwtKiiPMsMU6wdGuaanEhIMxqdmT1kOl6kmKFU0YDcN54vy79LNbzKPVYVYuMfJuNv07mzsvPcSPQmlKFBdUC7h7BVnExEpH1EtUmMG/dgcx3bSUoDE4mk4vCxZUNRpZEnHboQWJknufCr7o0x8pMNKQTAEAAA==" + } + }, + { + "ID": "482384a3bee9aff6", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anondd9017fa8c1cc738187ef775439441285ff2a915/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:49 GMT" + ], + "Etag": [ + "8xIW1L1AcIicBvQK0SAnVg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pbVHiGG/oYOiZ7ZiY7lQV6GwQ75oWl29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwobGRia6RoY6xoZhBiYWBmYWhmY6ZlbWBoYGCjVxgIhAAAd5DOHAAAA" + } + }, + { + "ID": "613164480ed4514d", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "258" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsidHlwZSI6Ik5VTUVSSUMifSwicGFyYW1ldGVyVmFsdWUiOnsidmFsdWUiOiIxMi4zNDUwMDAwMDAifX1dLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IlVtT2xReVBHZDVLUHBHRzJjZDZxYUhzOU56MyIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:49 GMT" + ], + "Etag": [ + "x3FaYZpmTw/m8gzaNTK3aw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42SbU/bMBDHv8rkvYWGPDeVEEMldBEsgzRlYtNUXZ1LMCRxGruwgvjuuyTApo2h5U1s3+/uf08P7EbUGZuwlSjWG2y376/liu0w1FDQ6w/7GC6/NlV6Z1Tj4h7i9MSGu/19IkTnpa5kWW4rqHczrOSuRqUni/loUX0uz7dns8w9OWtmM4tn3ho+qiC+t8lTYZmfivqG/K+0btTEMJ7VR4WURYnQCDXisnp5N24to2nlNXKtjFdEDcpaGW/IHpSSgxay3l/MKYWNwnaJFYiSkugC7LZyJfWHV0KPBFSjgvhbwRE4l5tad7lRFC7rXBSbtg/MJg+sz/W3Q1cqpfzugOCMYom6R1NYldhhTyVF/2hl5wUaFA7EcoVo+d4qC1zTdMzc81x3DKbvBHbAg8x1LG6jtWcD+elOoveCWtZ7jgdOboFr25Zng8XRCxzft2wzB9fJue8HvhkgZ49UVIug8UioRioxFMamSXiYhsvoeBmH4VF4RAJ3rfiT+pJEBKXJIp4STUzTCklY14goTsPkcJpGF+HQ/lMsgG/naxpADqXCnaFnZ9BChRpbxSbfqEHP13Tb9B3T/Z/Fi09hEk27fF+QCyg3PXM7HJhpjWzH3es/9vj4nWBakyESO1+EySUbnhLMscWa/+dMyKO3vr3lzwvXgfNOSGm60w5w1cn0be52QVR9rq5vWWN/7AX22Gc93Oq/bDRptvNry7qIWGGtn2qah6fhNKVSB7GNeoHISGOJo3hG1p+hKNMS9AMAAA==" + } + }, + { + "ID": "fcf5248f146a8be2", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/UmOlQyPGd5KPpGG2cd6qaHs9Nz3?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:49 GMT" + ], + "Etag": [ + "gIcnw4kr4r7TtuRvuNehjQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PW0+DQBCF/8v4SpOqVSNJH2zTUCIiYPtkjNkuw617obuDDRL+u0vr0+yZ/ebMmQGOtcrBh0Ndnjo0/U2JlE6PDG0nyLrSamURPEBipSPLkKvz4mgW5mlHXfbTxVg16XLpCMsrlAz8AYoaRW7B/xxAMYlurJh/O4L6dhLx/m2ThWvXkDq/NqLoZRVtYPwaPWj0IcMCDSqOk1trdIOcwimorbQQvWRqlqPUM0JLcJm4/O7lu0j7JMgfXpM2CO54/nhiW/sc/947SmjOqNZqAj/ALSJNTGT67JLCLfzrVe9ME6M5WouT6fy6YK1lK5BcIjIdesCZO3db01WPf9pKNMVLAQAA" + } + }, + { + "ID": "dbb048b78aa9573a", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon046a4f2a533263a2ce69477231fa54fc779719ec/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:49 GMT" + ], + "Etag": [ + "0SCxdxaANP3IcQ1I9V2PxQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8obBDtXpFQkOvoFGHsmBxp6WoYZBVQE2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsAwkb6RmbmCrVxgIhAJV6c2tzAAAA" + } + }, + { + "ID": "9ed7cafc86ec95bc", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "263" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsiYXJyYXlUeXBlIjp7InR5cGUiOiJJTlQ2NCJ9LCJ0eXBlIjoiQVJSQVkifSwicGFyYW1ldGVyVmFsdWUiOnt9fV0sInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiSk90RnRKV0c4NktnY2d0YXZnbzVuOHNUNHA3IiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:50 GMT" + ], + "Etag": [ + "odipY6sJFwYRkyt6qicd0w==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41S70/bMBD9VybvKzS/naYSYlUJqAyVLU2HqmmqHOcSDEkcbLeoQv3fd0mATYihfUp89+7eu3f3RO5Fk5MJyUT5sAW1/3wnM3JEwLASozIX7Zrqy/PHdXK/N/RB8Nx+PDlBhOiq9K2sqn3NmuMcanlsQJvJajm6vDbn5vLmYky/lrw0bFfKoBnr1G9DrNRQFVeiucf6W2NaPbGsF/ZRKWVZAWuFHnFZv8atnWu1St4BN9p6h9RC1dr6gPa0kpwZIZuT1RIlbDWoDdRMVCiia3CsZCbNl3dajwSrRyXid4ID41xuG9Npwy5cNoUot6pvTCZPpNf61083Kkr+dIrgHHuJpoemLKuggz2PNP+HlV0VM0zDgNhkAG5IszwKHMd3CkqDYMyc0I+8iEd54LvcA9f2GNaZjqKvYo1s/CKICg+cKAsDyhwvcBm1C9/OPNf3qRvlBRvbNqXkgEMpYAbOhG6lFsNgZJbE0zTezM83izg+i8+Q4FGJt6ibZI6gNFktZohGTKuERFhnxHyRxsl0ls5/xIP9V1Ayvl8+4AIKVmk4Gjz7xhSrwYDSZPITDXp5pvu2d8z0XzJNkukaGzGl2P5NDqmoTw6Hwy+cBu9iSJPvqzhZkyGUQAEKGv6fS8CKPvvxWb9cGALxxpBIG3zj0rnuaHpfu+WLupPjBKHrjsMxjSKPkh6szJtcaNt+RI7+nFXXEWpozPNMy/gqnqU460C21a8gTOIeFvPFBWZ/AwFvqFflAwAA" + } + }, + { + "ID": "8dd499b60c26fdfd", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/JOtFtJWG86Kgcgtavgo5n8sT4p7?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:50 GMT" + ], + "Etag": [ + "kBb2q/TXQouTqfW3v5aFiw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3U7CQBCF32W8hYg/KGnChWhBMFGoNZgYY5btdClsd0p3Cmka3p0peDV7Zr85c6aBbeYSCGCVmV2FZX1lkBftI0JfWfZSCnIeoQPIygi5Ha1ud9fx94KqeJcu7/Z9Nc4Ow6EQXq8xVxA0kGZoEw/BTwNO5Shjae9PCK6LVkzf43ASRtLIKWkbUTgPn+LwBY6/xw5saBVhiiU6ja1bUdIGNU/boH5N1ta5ct0Ec+oyeobzxPl39sFjni0ng4c3ow2rvaG+G/j4vngUypJWnJET8OsTZBETKxvRQZLCDfzrUS2m85I0eo+tae+y4JnywiJLIi4r7IBWcu5rxhd9PAEztHpkSwEAAA==" + } + }, + { + "ID": "f09f28a519a32404", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon4f59f3e19b756a1352a60f40b3244629dfa80066/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:50 GMT" + ], + "Etag": [ + "XMGvErQA4Dp2KEqRxois0Q==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pH+LqXuRYFOpq4FBh5uxYGVeRnFhsE2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsA5KxtSAIABJyG7JtAAAA" + } + }, + { + "ID": "b62f7db097175712", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "263" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsiYXJyYXlUeXBlIjp7InR5cGUiOiJJTlQ2NCJ9LCJ0eXBlIjoiQVJSQVkifSwicGFyYW1ldGVyVmFsdWUiOnt9fV0sInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiOWF3YWYxOG9tdlFVc0VmNzg2cktQOFRDUmhiIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:50 GMT" + ], + "Etag": [ + "TYR97vVaSU1rY96U1YKOTg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41S207bQBD9lWr7CvElvkZCNErcKgIFcGyqqKqisTN2Fmxv2N0ERSj/3rENtKIU9cnemTPnzJmZJ3bPmzUbsYyXDzuUh893ImMnDDWUFE2Wcejvb2GRWnIZeqm1vLhKyrMzQvC2Sm1EVR1qaE7XWItTjUqP0sUghEcorEDU+5tURYUfePLiOkgm8ablVlgVl7y5p/qN1ls1MowX9UEpRFkhbLka5KJ+jRt729hKcYe5VsY7ogZ1rYwPZM8rkYPmojlLF9TCTqFcYQ28oiZaglMpMqG/vEM94FAPSsLveY6Q52LX6LY3YslFU/ByJztiNnpiXa9//LRWqeVP5wReExdvOmgCWYUt7NnS7B+jbKtAg8IescoQbd/L1qFrWY5VeJ7rBmD5TjgM83DtOnY+RNscAtXpVqKrgkY0TuGGxRCtMPNdD6yha4NnFo6ZDW3H8exwXUBgmp7HjmRKImiccrUVivfG2CSOxkm0mn1dzaNoGk1J4FHyt6jv8YxASZzOJ4QmzFZyQbB2ELN5EsXjSTK7jfrxX2IJ+WHxQAsooFJ40s/sGiTUqFEqNvpBA3p5JodtNzHdfdk4jsdLIgIp4fAmR1Kew47H409yQ3fRp9lNGsVL1odiLFBik//nEqiiy3581i8XRkC6MRJSmt609Fy1Mt1c2+Xzum3Hcn3bDvzAN73AZB1Y6r9yPjk5+X1WLSPW2OhnT4voMpok5LUX26lXECVpD/PZ/BtlfwE5ViJK5QMAAA==" + } + }, + { + "ID": "2771beb89e47e29d", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/9awaf18omvQUsEf786rKP8TCRhb?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:51 GMT" + ], + "Etag": [ + "FbDhsCoKhszX5g/h5bhc0w==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2PQU/DMAyF/4u5bqI7DEqlHaArME1CXdkkJIRQmrpNR1KXxqMq0/477sbJec7n5+cjfNVNARHkdfV9wG64qpA34yNDf7DspbTUeIQJIKtKyMd8aXxMa+N/3+bVtZnnRgf9YiGE1wadgugIZY228BC9H6FRDmWsDD6F4KEdxeplmzwlmTQcFWMjS9Lkfpss4fRxmsCe8gxL7LDROLq1He1R82oM6g1ZOzjVTAt0NGX0DOeJ8++d6lU5C8n9bHY+KW/Dm26dhts4M7lQlrTimhoBd68gi5hY2Yx6SQoz+NcPg5imHWn0HkfT4LIgJtdaZEnE3QEnoJWc+1zzRZ/+ABdSCCJLAQAA" + } + }, + { + "ID": "e1eacc9e1eae0fd9", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon4f59f3e19b756a1352a60f40b3244629dfa80066/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:51 GMT" + ], + "Etag": [ + "XMGvErQA4Dp2KEqRxois0Q==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pH+LqXuRYFOpq4FBh5uxYGVeRnFhsE2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsA5KxtSAIABJyG7JtAAAA" + } + }, + { + "ID": "52443880e5aa7f66", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "306" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsiYXJyYXlUeXBlIjp7InR5cGUiOiJJTlQ2NCJ9LCJ0eXBlIjoiQVJSQVkifSwicGFyYW1ldGVyVmFsdWUiOnsiYXJyYXlWYWx1ZXMiOlt7InZhbHVlIjoiMSJ9LHsidmFsdWUiOiIyIn1dfX1dLCJ1c2VMZWdhY3lTcWwiOmZhbHNlfX0sImpvYlJlZmVyZW5jZSI6eyJqb2JJZCI6IlZVNUpFZlF1djZtbTExRG5yQ0NUZG1wSW9oMCIsInByb2plY3RJZCI6InNob2xseW1hbi1kZW1vLXRlc3QifX0K" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:51 GMT" + ], + "Etag": [ + "DFxiWD3VE5yL5v2SaXc84g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41TbW+bMBD+K5P3NQ3lxSREqroooRNTFK2EpKumKTLGELeAqW2yRVX++w7TplPXVZOQ4HzPy935eET3vM7QBKW8eGiZPHy8EykaIKZJAafzq1/8Zu5uQnxY4L2zIt/o2CsuLgDBO5baibI8VKQ+y1glzjRTerJeDTdr/CXMr9u9X1W2Pa/lbJZkVROJ3TkwFSvzBa/vgb/TulETy3p2HxZCFCUjDVdDKqrTubV3rEaKO0a1st4wtaBqZb1je1kKSjQX9cV6BSW0isktqwgvoYhO4EyKVOhPb0gPOamGBeD3nDJCqWhr3dUGKlTUOS9aaYTR5BGZWv/46FqFkj9cAjgDLV4baELSknWwp5aif4yyYxFNFOsR25QxZ+SnWYBt27Nz38d4TOyRF7gBDTLsOdRlzrlLgKc7C8MitahJ5nlOnnk48M49lrvYxzRPM2o7eEzHbmpj28U0wOgITUlGNJtz1QjF+8bQLA6nSbiNrrbLMJyHczD4Kflr1E0cASiJ18sZoAHTSC4A1g0iWiZhPJ0l0Sbsx79gBaGH1QNcQE5KxQb9zL4SSSqmmVRo8h0G9Bwmh8ZMTJs3msbx9BaEiJTk8CoHVr6HjtDKib0hZWsgBm+iXn/fJ5ANnb9EDjr+OMIzQLBWvTq6XofxLeqPYpYzyWr6n3cIDJN9/694XlAAwoqCkdIQw85Q1dmYa+l2h1emYDxynPFoPLLtwEcGLPVfOSfw0OBlKztFVrFaP/W0ChfhLDGj6lKtOoEgCde4jJafIfsbTHDNciQEAAA=" + } + }, + { + "ID": "3a3480f8d2c037db", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/VU5JEfQuv6mm11DnrCCTdmpIoh0?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:51 GMT" + ], + "Etag": [ + "P7gJM2ZXkJanhvgVvKeKLA==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2P3U7CQBCF32W8haQ1UZMmXCA02qKmVCBGY8zSTn9gd6d2p5iG8O5MwavZM/vNmTNH2Nc2hwC2dfnbYdvflMjL4ZGi6zQ7KQ1ZhzACZFUKmTyU8evt58c+VrY6lJvDAhcv08lECJdVaBQERyhq1LmD4OsIVhmUscL7EYL7ZhDR2yp8ClNpGMqHRhom4XQVzuH0fRrBjrYpFtiizXBwa1raYcbRENRVpHVvlB3naGjM6BguE5ffzfouDotld7g3xvfntp3NVrlpIqo8oTRlimuyAq7fQRYxsdIp/UlS8OFfP/ZimrSUoXM4mHrXBTMyjUaWRNx2OIJMybnPNV/16Qzg0yrpSwEAAA==" + } + }, + { + "ID": "030c304dc9962fb7", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anonad442fd459404ef3565cfbdc1258c83b15135c95/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:51 GMT" + ], + "Etag": [ + "keCPj8S1SB83nf2ROL+02Q==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8pnpzoHZFkEGwY7WRjnpRkF+ftoGxgF2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsg5FAyVodCMtIqTYWDAEND7H5gAAAAA==" + } + }, + { + "ID": "5c4e2ebd964638e4", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "320" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsiYXJyYXlUeXBlIjp7InR5cGUiOiJJTlQ2NCJ9LCJ0eXBlIjoiQVJSQVkifSwicGFyYW1ldGVyVmFsdWUiOnsiYXJyYXlWYWx1ZXMiOlt7InZhbHVlIjoiMSJ9LHsidmFsdWUiOiIyIn0seyJ2YWx1ZSI6IjMifV19fV0sInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiMTZNM245N2s1RGZFRk5mNHpJVkRBZnZZYzJBIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:51 GMT" + ], + "Etag": [ + "X7KE3isjmU5IxoYG2YFYfw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41TbU/bMBD+K5P3Fdomad4qIVa1AUVj1ZambNU0VY57DoYkLrZb1iH++y4OdBtjaFKk5HzPy935ck9uRLMmI1KI8nYLav/2WhbkiIChJZ5+Cd8nntDX9cJPv8vlubs8W/K7kxNEiJalr2RV7WvaHK+hlscGtBkt5j0n+OA1cXjjT3lyNuPDH+nldMx3S+aOkamh4heiuUH+lTEbPer3n9x7pZRlBXQjdI/J+nDe37n9jZLXwIzuv2Dax6p1/xXb00oyaoRsThZzLGGrQa2gpqLCIlqBYyULad69IN0TtO6ViN8JBpQxuW1MWxuqMNlwUW6VFSaje2Jr/e2jbRVLfnOK4DVqicZCc1pU0MIeW0r/McqWRQ3V0CFWBYAbBsU69h1n6PAg8P2IOuEw9mIWr/2hyzxwBx5FnmktLIs2soliHkaRx8OQh5RGPvdh4HHqUAhicHxWDAbOgBUeecCmFFADU6E3UouuMTLJknGerNKz1SxJpskUDe6UeI76nKUIyrPFbIJoxGyUkAhrB5HO8iQbT/L0MunGfwElZfv5LV4Ap5WGo25mH6miNRhQmoy+4oCewny/sRMz9k3GWTZeohBViu6f5dAqGJIHbOXAvqTV1kIs3kad/q5LEAc7/xW5f0Q4lW8P+BwRXLLOi3xaJNmSdEcZcFDQsP+8UWTY7Ov/yNO6IhAXFo20wRg3iOnWxl5Su0mituX7oetGYRQ6QTwkFqzMX7nIbXOHHW0VoYbGPPY0Ty6SSW4H16a2+gDCJF7qLJ2dY/Yn2kbchDIEAAA=" + } + }, + { + "ID": "5a47e386a7eae691", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/16M3n97k5DfEFNf4zIVDAfvYc2A?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:52 GMT" + ], + "Etag": [ + "xGEDkgBfSBl/3L2yU+MS8g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/y2Pb0/CMBDGv8v50hER/EvCi+EqLhGCG5gYY0zprmPQtXO9iXPhu9uCr3rP3e957trBrtAZjGBd5F8N1u1ZjvTiiwRto8i6pzLaIgSAxHNH/kxZtMsnMp2oi+HzoF2dz9K7fDx2hBUbLDmMOpAFqszC6L0DzUt0Ntn/dAS1lRfxfMmmLHGN0mS+kbAFC5csgsPHIYCtWScosUYt0KdVtdmioNgfajdGqbbkupdhaXqEluDoOE4vb2ZDfX+7u44ke5zLq9/4NQrl95sYhI5SRnAqjHbgKgW3iAxxlZi99Vb415PWhS5qI9Ba9KH904IHU1YKyV1EdYMBCO6++1TQSR/+AAfbSLNLAQAA" + } + }, + { + "ID": "986beca3fe39d9fd", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon89f7883f77f7aa85f5e03fa1ae69e15cb0010cb3/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:52 GMT" + ], + "Etag": [ + "LHZFxu922mSUaKCBjDxSrw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8r7eES5VZRaGhnlBocmejs7ZblUBBeV29oCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsg5FAyVodCMsIzjJWqo0FQwAcBa/eigAAAA==" + } + }, + { + "ID": "bb7f4edc4eb2d02d", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "479" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsic3RydWN0VHlwZXMiOlt7Im5hbWUiOiJBIiwidHlwZSI6eyJ0eXBlIjoiSU5UNjQifX0seyJuYW1lIjoiQiIsInR5cGUiOnsic3RydWN0VHlwZXMiOlt7Im5hbWUiOiJEIiwidHlwZSI6eyJ0eXBlIjoiU1RSSU5HIn19XSwidHlwZSI6IlNUUlVDVCJ9fSx7Im5hbWUiOiJDIiwidHlwZSI6eyJ0eXBlIjoiQk9PTCJ9fV0sInR5cGUiOiJTVFJVQ1QifSwicGFyYW1ldGVyVmFsdWUiOnsic3RydWN0VmFsdWVzIjp7IkEiOnsidmFsdWUiOiIwIn0sIkIiOnt9LCJDIjp7InZhbHVlIjoiZmFsc2UifX19fV0sInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiRXR4eWtHaVdRNjc3Wm8xOUdZMHk5TnpvYkxkIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:52 GMT" + ], + "Etag": [ + "Zl+mHqWn77oDgku5vunTDg==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/41TbW/aMBD+K5P3cZS8E4JUdRSyDgnRFUKrdpqQk1xSlySmscPGKv77zk7ftnbdvhDse57n7h7f3ZE1q1IyIDHLbxuod+9veEw6BCTN8faq+FB+vr2ofJ+P83XjbZsqGueHh4hgiiWueVHsSlodpFDyAwlCDpaLbih/7NYn7OKs5/tX3ApOLs1dMPvJ42mKTAFFNmXVGvnXUm7EwDAesndzzvMC6IaJbsLLx3tjaxubmt9AIoXxSlIDqxbGG2mPCp5QyXh1uFxgCY2AegUlZQUWoQQOah5z+fEV6S6jZTdH/JYlQJOEN5VUtaFKwquM5U2thcngjuhan/1RrWLJ744QnKIWqzQ0onEBCnbf0uQvVioWlVRAi1jFALbfi9PAsyzXyno9z+tTy3cDJ0iC1HPtxAHbdCjypEqhWbTilR+Dmbl9sFw3Nk3LzijYlgWpk/V8x+uDGYCdBrFP9thUDVTCmIkNF6xtjIzm4TAKV5NPq1kYjsMxJvhesz9RF/MJgqL5cjZCNGI2NeMIU0ZMZlE4H46iyXnY2j+FnCa7xS0+QEYLAZ3Wsy+0piVIqAUZfEWDHo7RbqMdk/pLFphlFKlZknWTSBVtCRXCMT5UFvxOwQp6LtnvO4+g45egf+mOX6VMZico/O259ugl8Pj0dKphnae2zmnRaEybTx+FOg/Vz7aNElO9y+j5jbYMxVo5HP7WH3K2DOeXpL2aQwY1VMl/ThoydPTt3X1YIwTiIu2VUXjGyU502Xp41IQz7YLl+bbd9/u+7TmudpXW8kWs5zik87Q7ShFKqOR9T4twGuKb7O+TNeIRhEEctllr/y+vvPbYygQAAA==" + } + }, + { + "ID": "4f13da0ba6e72fdb", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/EtxykGiWQ677Zo19GY0y9NzobLd?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:52 GMT" + ], + "Etag": [ + "2tMOGKxq63ABYb80uEfdKw==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/52R3W6CQBCF32V6qwm2iVYTL0AJNVKoq6axTdPwMygKLLJDFI3v3kGb2qRe9Wr3zJ5vzu7sETZxFkIP/Hi5LbGo7pZIk3ojUJUJKV5ymSmEBiB5S3be07Nrjffb9oNuLPxHrTSjcLzr99mhghWmHvSOEMWYhAp670fIvBQZi7RPdlCV10KYA1cMWacyrLUzt23dsE2u/CX1KzdyZqZlihvgqfHjN/6ZM7xy05kYOdatmI9fQYMrYLiuberObYIZWEtfYIQFZgHWA8oLucaARvXs1UomSZV6WTPEVDYJFcGZOJ+atK82Vvw6aXc6b7LVtRZa1XUO0rdDdiUy8CiWGRvnU54CkCQvEXLHT4MWfGuj4qYvhQxQKaybapeAgUzzBIlvREWJDQg8/sGnmC769AUxgzMlHgIAAA==" + } + }, + { + "ID": "d43a86b182fa0a5a", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon7be0f48e144b0012fae211ed3f67358e09e2d9b7/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:53 GMT" + ], + "Etag": [ + "V7Aakxx6AhoQyiqKGgo/ZQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qHmTsmZldUmDlm5AdWZhZ6u6fn60cF2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsU7JCYioZKNXqgFl5pTk5UKZSWmJOcapSbWwtEMXWAgCp0n0BlQAAAA==" + } + }, + { + "ID": "da88ba321321ed32", + "Request": { + "Method": "POST", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/jobs?alt=json\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "Content-Length": [ + "512" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "application/json", + "BodyParts": [ + "eyJjb25maWd1cmF0aW9uIjp7InF1ZXJ5Ijp7InF1ZXJ5Ijoic2VsZWN0ID8iLCJxdWVyeVBhcmFtZXRlcnMiOlt7InBhcmFtZXRlclR5cGUiOnsic3RydWN0VHlwZXMiOlt7Im5hbWUiOiJBIiwidHlwZSI6eyJ0eXBlIjoiSU5UNjQifX0seyJuYW1lIjoiQiIsInR5cGUiOnsic3RydWN0VHlwZXMiOlt7Im5hbWUiOiJEIiwidHlwZSI6eyJ0eXBlIjoiU1RSSU5HIn19XSwidHlwZSI6IlNUUlVDVCJ9fSx7Im5hbWUiOiJDIiwidHlwZSI6eyJ0eXBlIjoiQk9PTCJ9fV0sInR5cGUiOiJTVFJVQ1QifSwicGFyYW1ldGVyVmFsdWUiOnsic3RydWN0VmFsdWVzIjp7IkEiOnsidmFsdWUiOiIxIn0sIkIiOnsic3RydWN0VmFsdWVzIjp7IkQiOnsidmFsdWUiOiJzIn19fSwiQyI6eyJ2YWx1ZSI6InRydWUifX19fV0sInVzZUxlZ2FjeVNxbCI6ZmFsc2V9fSwiam9iUmVmZXJlbmNlIjp7ImpvYklkIjoiNDlXczlTWnZFblJxUHFueDVaV2ViWm93emJkIiwicHJvamVjdElkIjoic2hvbGx5bWFuLWRlbW8tdGVzdCJ9fQo=" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:53 GMT" + ], + "Etag": [ + "hbSgf88BeEZ4A822HbEonQ==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/42Ta2/aMBSG/8rkfaWQhIQkSFXHJduQEG25tBrThJxwkroNNsQOLav47zt2emEr6/aF4HOec3vt80juGF+SNolZtimh2H28FTGpEVA0Q+tNPMnSIOhCNHc7geN8jSPBL09PkWA6St6IPN+tKD9ZwkqcKJCqPZvU3fBahpP5NuLjzcWGP3jza4jn4v5nvMRICXk6ZPxO51dqLduNxnP1eiZElgNdM1lPxOrF3tg6jXUhbiFRsnGkaAO7lo13yp7lIqGKCX46m2ALpYRiASvKcmxCJzgpRCzUpyOp64yu6hnyW5YATRJRcqV7wyyJ4CnLysIkJu1HYno9+KNHxZY/nCG8xFyMG3RK4xw09jTS4C9S6iiqqISKWMQAjt+Kl6Fn266dtlqeF1Dbd8NmmIRLz3WSJjhWk2Kc0iVMFOWCW02rBS0rjK2mTy2PNm3fomFge5AmduoGfsv2IYQl2eNQBVAFfSbXQrJqMNIbR51ptBh8XoyiqB/1scB9wf6krscDhKbj2aiHNDLrggnEtBCD0TQad3rTwVVUyT+EjCa7yQYvIKW5hFql2QUt6AoUFJK0v6NAz8fpbm0UU+ZLJlilN9VvSRVlorS3CuCIo7+jJfg9BDtouWS/r71A3bfQv/L2j4YMRl8w8Y/D3L23YPf8fGiw2utYVzQvDVPVM0epzx39s628xNb30j2G9Q8xidkR7B3akAdtNmVxSSodyeUsGn8jlWkMKRTAk/98kRhhvO/v+PO6IYgLt9eC4hk3IDF9m0emN4EZtWzPd5zAD/ym5btGfVqoNz7bC0ntdcd0RlgBV08zTaJhhHe3fypWyhcInfgoR9U1/QIw/X/t8gQAAA==" + } + }, + { + "ID": "408a63203fe397cd", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/queries/49Ws9SZvEnRqPqnx5ZWebZowzbd?alt=json\u0026location=US\u0026maxResults=0\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:53 GMT" + ], + "Etag": [ + "JJEbugGSziw3aFKmS0o17g==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/52RUU/CMBSF/8v1FRKIGgMJDwwqgsvADkKCMabbLmPYtWPtxEH479yBERN58qk9t+e7p73dw0eiImhDkMSbAvPyJkb7Um04mkJaQ0umlUGoAVoRk3M0YkERD/xdsr0Vj8+p39DNh7jTIYcJV5gKaO9hmaCMDLRf96BEioQtG+/ksGVWCc56Y94nneqo0t7MdbuOy6jyl+xeuKE3ZQPGr4CH2o/f+WdO/8L5Uz70Btdi3n4F9S6AMx67rOtdJ4iBtQ44LjFHFWI1oCzXawztsJq9WWkpy1SoeoSprls0Fk7E6fSuNTctf/HJFN9MNurrfjHHYKG3uyAil9ShsIlWZJz5NAWw2grJ9ZaeBk341k5JTSe5DtEYrJo2zgE9nWYSLd3I5gXWIBT0g0+JPevDEaR8u+weAgAA" + } + }, + { + "ID": "d92e7008dce6c785", + "Request": { + "Method": "GET", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/_bee276bd951141f66558a174939c9d542c3e203a/tables/anon0306e609b037a05a3170a9815efc1f487617e9ed/data?alt=json\u0026prettyPrint=false\u0026startIndex=0", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:53 GMT" + ], + "Etag": [ + "VTPvXen4e+jVq/SXL1Lb7Q==" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6tWys7MS1GyUkrKTC8sTS2qVC5JTMpJdUksSfTJLC5R0lFKLUlMB8qHhQSURaTmmaRqZ4UV6gdH+Bj6JJkH2toCVZTklyTmBOWXFwOVGQL5RWBmdLVSGpgsU7JCYgJV1OpgCBYr1cbWQsWVSopKU8H8WCAEAFj4RHChAAAA" + } + }, + { + "ID": "9a3be072efb53ccb", + "Request": { + "Method": "DELETE", + "URL": "https://bigquery.googleapis.com/bigquery/v2/projects/shollyman-demo-test/datasets/dataset_20191028_66906590093659_0001?alt=json\u0026deleteContents=true\u0026prettyPrint=false", + "Header": { + "Accept-Encoding": [ + "gzip" + ], + "User-Agent": [ + "google-api-go-client/0.5" + ] + }, + "MediaType": "", + "BodyParts": [ + "" + ] + }, + "Response": { + "StatusCode": 200, + "Proto": "HTTP/1.1", + "ProtoMajor": 1, + "ProtoMinor": 1, + "Header": { + "Cache-Control": [ + "private" + ], + "Content-Encoding": [ + "gzip" + ], + "Content-Type": [ + "application/json; charset=UTF-8" + ], + "Date": [ + "Mon, 28 Oct 2019 18:37:54 GMT" + ], + "Server": [ + "ESF" + ], + "Vary": [ + "Origin", + "X-Origin", + "Referer" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "X-Frame-Options": [ + "SAMEORIGIN" + ], + "X-Xss-Protection": [ + "0" + ] + }, + "Body": "H4sIAAAAAAAC/6uuBQBDv6ajAgAAAA==" + } + } + ] +} \ No newline at end of file diff --git a/vendor/cloud.google.com/go/bigquery/copy.go b/vendor/cloud.google.com/go/bigquery/copy.go new file mode 100644 index 000000000..a8226e979 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/copy.go @@ -0,0 +1,143 @@ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "context" + "time" + + bq "google.golang.org/api/bigquery/v2" +) + +// TableCopyOperationType is used to indicate the type of operation performed by a BigQuery +// copy job. +type TableCopyOperationType string + +var ( + // CopyOperation indicates normal table to table copying. + CopyOperation TableCopyOperationType = "COPY" + // SnapshotOperation indicates creating a snapshot from a regular table, which + // operates as an immutable copy. + SnapshotOperation TableCopyOperationType = "SNAPSHOT" + // RestoreOperation indicates creating/restoring a table from a snapshot. + RestoreOperation TableCopyOperationType = "RESTORE" + // CloneOperation indicates creating a table clone, which creates a writeable + // copy of a base table that is billed based on difference from the base table. + CloneOperation TableCopyOperationType = "CLONE" +) + +// CopyConfig holds the configuration for a copy job. +type CopyConfig struct { + // Srcs are the tables from which data will be copied. + Srcs []*Table + + // Dst is the table into which the data will be copied. + Dst *Table + + // CreateDisposition specifies the circumstances under which the destination table will be created. + // The default is CreateIfNeeded. + CreateDisposition TableCreateDisposition + + // WriteDisposition specifies how existing data in the destination table is treated. + // The default is WriteEmpty. + WriteDisposition TableWriteDisposition + + // The labels associated with this job. + Labels map[string]string + + // Custom encryption configuration (e.g., Cloud KMS keys). + DestinationEncryptionConfig *EncryptionConfig + + // One of the supported operation types when executing a Table Copy jobs. By default this + // copies tables, but can also be set to perform snapshot or restore operations. + OperationType TableCopyOperationType + + // Sets a best-effort deadline on a specific job. If job execution exceeds this + // timeout, BigQuery may attempt to cancel this work automatically. + // + // This deadline cannot be adjusted or removed once the job is created. Consider + // using Job.Cancel in situations where you need more dynamic behavior. + // + // Experimental: this option is experimental and may be modified or removed in future versions, + // regardless of any other documented package stability guarantees. + JobTimeout time.Duration +} + +func (c *CopyConfig) toBQ() *bq.JobConfiguration { + var ts []*bq.TableReference + for _, t := range c.Srcs { + ts = append(ts, t.toBQ()) + } + return &bq.JobConfiguration{ + Labels: c.Labels, + Copy: &bq.JobConfigurationTableCopy{ + CreateDisposition: string(c.CreateDisposition), + WriteDisposition: string(c.WriteDisposition), + DestinationTable: c.Dst.toBQ(), + DestinationEncryptionConfiguration: c.DestinationEncryptionConfig.toBQ(), + SourceTables: ts, + OperationType: string(c.OperationType), + }, + JobTimeoutMs: c.JobTimeout.Milliseconds(), + } +} + +func bqToCopyConfig(q *bq.JobConfiguration, c *Client) *CopyConfig { + cc := &CopyConfig{ + Labels: q.Labels, + CreateDisposition: TableCreateDisposition(q.Copy.CreateDisposition), + WriteDisposition: TableWriteDisposition(q.Copy.WriteDisposition), + Dst: bqToTable(q.Copy.DestinationTable, c), + DestinationEncryptionConfig: bqToEncryptionConfig(q.Copy.DestinationEncryptionConfiguration), + OperationType: TableCopyOperationType(q.Copy.OperationType), + JobTimeout: time.Duration(q.JobTimeoutMs) * time.Millisecond, + } + for _, t := range q.Copy.SourceTables { + cc.Srcs = append(cc.Srcs, bqToTable(t, c)) + } + return cc +} + +// A Copier copies data into a BigQuery table from one or more BigQuery tables. +type Copier struct { + JobIDConfig + CopyConfig + c *Client +} + +// CopierFrom returns a Copier which can be used to copy data into a +// BigQuery table from one or more BigQuery tables. +// The returned Copier may optionally be further configured before its Run method is called. +func (t *Table) CopierFrom(srcs ...*Table) *Copier { + return &Copier{ + c: t.c, + CopyConfig: CopyConfig{ + Srcs: srcs, + Dst: t, + }, + } +} + +// Run initiates a copy job. +func (c *Copier) Run(ctx context.Context) (*Job, error) { + return c.c.insertJob(ctx, c.newJob(), nil) +} + +func (c *Copier) newJob() *bq.Job { + return &bq.Job{ + JobReference: c.JobIDConfig.createJobRef(c.c), + Configuration: c.CopyConfig.toBQ(), + } +} diff --git a/vendor/cloud.google.com/go/bigquery/dataset.go b/vendor/cloud.google.com/go/bigquery/dataset.go new file mode 100644 index 000000000..24c815be2 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/dataset.go @@ -0,0 +1,982 @@ +// Copyright 2015 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "context" + "errors" + "fmt" + "strings" + "time" + + "cloud.google.com/go/internal/optional" + "cloud.google.com/go/internal/trace" + bq "google.golang.org/api/bigquery/v2" + "google.golang.org/api/iterator" +) + +// Dataset is a reference to a BigQuery dataset. +type Dataset struct { + ProjectID string + DatasetID string + c *Client +} + +// DatasetMetadata contains information about a BigQuery dataset. +type DatasetMetadata struct { + // These fields can be set when creating a dataset. + Name string // The user-friendly name for this dataset. + Description string // The user-friendly description of this dataset. + Location string // The geo location of the dataset. + DefaultTableExpiration time.Duration // The default expiration time for new tables. + Labels map[string]string // User-provided labels. + Access []*AccessEntry // Access permissions. + DefaultEncryptionConfig *EncryptionConfig + + // DefaultPartitionExpiration is the default expiration time for + // all newly created partitioned tables in the dataset. + DefaultPartitionExpiration time.Duration + + // Defines the default collation specification of future tables + // created in the dataset. If a table is created in this dataset without + // table-level default collation, then the table inherits the dataset default + // collation, which is applied to the string fields that do not have explicit + // collation specified. A change to this field affects only tables created + // afterwards, and does not alter the existing tables. + // More information: https://cloud.google.com/bigquery/docs/reference/standard-sql/collation-concepts + DefaultCollation string + + // For externally defined datasets, contains information about the configuration. + ExternalDatasetReference *ExternalDatasetReference + + // MaxTimeTravel represents the number of hours for the max time travel for all tables + // in the dataset. Durations are rounded towards zero for the nearest hourly value. + MaxTimeTravel time.Duration + + // Storage billing model to be used for all tables in the dataset. + // Can be set to PHYSICAL. Default is LOGICAL. + // Once you create a dataset with storage billing model set to physical bytes, you can't change it back to using logical bytes again. + // More details: https://cloud.google.com/bigquery/docs/datasets-intro#dataset_storage_billing_models + StorageBillingModel string + + // These fields are read-only. + CreationTime time.Time + LastModifiedTime time.Time // When the dataset or any of its tables were modified. + FullID string // The full dataset ID in the form projectID:datasetID. + + // The tags associated with this dataset. Tag keys are + // globally unique, and managed via the resource manager API. + // More information: https://cloud.google.com/resource-manager/docs/tags/tags-overview + Tags []*DatasetTag + + // ETag is the ETag obtained when reading metadata. Pass it to Dataset.Update to + // ensure that the metadata hasn't changed since it was read. + ETag string +} + +// DatasetTag is a representation of a single tag key/value. +type DatasetTag struct { + // TagKey is the namespaced friendly name of the tag key, e.g. + // "12345/environment" where 12345 is org id. + TagKey string + + // TagValue is the friendly short name of the tag value, e.g. + // "production". + TagValue string +} + +const ( + // LogicalStorageBillingModel indicates billing for logical bytes. + LogicalStorageBillingModel = "" + + // PhysicalStorageBillingModel indicates billing for physical bytes. + PhysicalStorageBillingModel = "PHYSICAL" +) + +func bqToDatasetTag(in *bq.DatasetTags) *DatasetTag { + if in == nil { + return nil + } + return &DatasetTag{ + TagKey: in.TagKey, + TagValue: in.TagValue, + } +} + +// DatasetMetadataToUpdate is used when updating a dataset's metadata. +// Only non-nil fields will be updated. +type DatasetMetadataToUpdate struct { + Description optional.String // The user-friendly description of this table. + Name optional.String // The user-friendly name for this dataset. + + // DefaultTableExpiration is the default expiration time for new tables. + // If set to time.Duration(0), new tables never expire. + DefaultTableExpiration optional.Duration + + // DefaultTableExpiration is the default expiration time for + // all newly created partitioned tables. + // If set to time.Duration(0), new table partitions never expire. + DefaultPartitionExpiration optional.Duration + + // DefaultEncryptionConfig defines CMEK settings for new resources created + // in the dataset. + DefaultEncryptionConfig *EncryptionConfig + + // Defines the default collation specification of future tables + // created in the dataset. + DefaultCollation optional.String + + // For externally defined datasets, contains information about the configuration. + ExternalDatasetReference *ExternalDatasetReference + + // MaxTimeTravel represents the number of hours for the max time travel for all tables + // in the dataset. Durations are rounded towards zero for the nearest hourly value. + MaxTimeTravel optional.Duration + + // Storage billing model to be used for all tables in the dataset. + // Can be set to PHYSICAL. Default is LOGICAL. + // Once you change a dataset's storage billing model to use physical bytes, you can't change it back to using logical bytes again. + // More details: https://cloud.google.com/bigquery/docs/datasets-intro#dataset_storage_billing_models + StorageBillingModel optional.String + + // The entire access list. It is not possible to replace individual entries. + Access []*AccessEntry + + labelUpdater +} + +// Dataset creates a handle to a BigQuery dataset in the client's project. +func (c *Client) Dataset(id string) *Dataset { + return c.DatasetInProject(c.projectID, id) +} + +// DatasetInProject creates a handle to a BigQuery dataset in the specified project. +func (c *Client) DatasetInProject(projectID, datasetID string) *Dataset { + return &Dataset{ + ProjectID: projectID, + DatasetID: datasetID, + c: c, + } +} + +// Identifier returns the ID of the dataset in the requested format. +// +// For Standard SQL format, the identifier will be quoted if the +// ProjectID contains dash (-) characters. +func (d *Dataset) Identifier(f IdentifierFormat) (string, error) { + switch f { + case LegacySQLID: + return fmt.Sprintf("%s:%s", d.ProjectID, d.DatasetID), nil + case StandardSQLID: + // Quote project identifiers if they have a dash character. + if strings.Contains(d.ProjectID, "-") { + return fmt.Sprintf("`%s`.%s", d.ProjectID, d.DatasetID), nil + } + return fmt.Sprintf("%s.%s", d.ProjectID, d.DatasetID), nil + default: + return "", ErrUnknownIdentifierFormat + } +} + +// Create creates a dataset in the BigQuery service. An error will be returned if the +// dataset already exists. Pass in a DatasetMetadata value to configure the dataset. +func (d *Dataset) Create(ctx context.Context, md *DatasetMetadata) (err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Dataset.Create") + defer func() { trace.EndSpan(ctx, err) }() + + ds, err := md.toBQ() + if err != nil { + return err + } + ds.DatasetReference = &bq.DatasetReference{DatasetId: d.DatasetID} + // Use Client.Location as a default. + if ds.Location == "" { + ds.Location = d.c.Location + } + call := d.c.bqs.Datasets.Insert(d.ProjectID, ds).Context(ctx) + setClientHeader(call.Header()) + _, err = call.Do() + return err +} + +func (dm *DatasetMetadata) toBQ() (*bq.Dataset, error) { + ds := &bq.Dataset{} + if dm == nil { + return ds, nil + } + ds.FriendlyName = dm.Name + ds.Description = dm.Description + ds.Location = dm.Location + ds.DefaultTableExpirationMs = int64(dm.DefaultTableExpiration / time.Millisecond) + ds.DefaultPartitionExpirationMs = int64(dm.DefaultPartitionExpiration / time.Millisecond) + ds.DefaultCollation = dm.DefaultCollation + ds.MaxTimeTravelHours = int64(dm.MaxTimeTravel / time.Hour) + ds.StorageBillingModel = string(dm.StorageBillingModel) + ds.Labels = dm.Labels + var err error + ds.Access, err = accessListToBQ(dm.Access) + if err != nil { + return nil, err + } + if !dm.CreationTime.IsZero() { + return nil, errors.New("bigquery: Dataset.CreationTime is not writable") + } + if !dm.LastModifiedTime.IsZero() { + return nil, errors.New("bigquery: Dataset.LastModifiedTime is not writable") + } + if dm.FullID != "" { + return nil, errors.New("bigquery: Dataset.FullID is not writable") + } + if dm.ETag != "" { + return nil, errors.New("bigquery: Dataset.ETag is not writable") + } + if dm.DefaultEncryptionConfig != nil { + ds.DefaultEncryptionConfiguration = dm.DefaultEncryptionConfig.toBQ() + } + if dm.ExternalDatasetReference != nil { + ds.ExternalDatasetReference = dm.ExternalDatasetReference.toBQ() + } + return ds, nil +} + +func accessListToBQ(a []*AccessEntry) ([]*bq.DatasetAccess, error) { + var q []*bq.DatasetAccess + for _, e := range a { + a, err := e.toBQ() + if err != nil { + return nil, err + } + q = append(q, a) + } + return q, nil +} + +// Delete deletes the dataset. Delete will fail if the dataset is not empty. +func (d *Dataset) Delete(ctx context.Context) (err error) { + return d.deleteInternal(ctx, false) +} + +// DeleteWithContents deletes the dataset, as well as contained resources. +func (d *Dataset) DeleteWithContents(ctx context.Context) (err error) { + return d.deleteInternal(ctx, true) +} + +func (d *Dataset) deleteInternal(ctx context.Context, deleteContents bool) (err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Dataset.Delete") + defer func() { trace.EndSpan(ctx, err) }() + + call := d.c.bqs.Datasets.Delete(d.ProjectID, d.DatasetID).Context(ctx).DeleteContents(deleteContents) + setClientHeader(call.Header()) + return runWithRetry(ctx, func() (err error) { + sCtx := trace.StartSpan(ctx, "bigquery.datasets.delete") + err = call.Do() + trace.EndSpan(sCtx, err) + return err + }) +} + +// Metadata fetches the metadata for the dataset. +func (d *Dataset) Metadata(ctx context.Context) (md *DatasetMetadata, err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Dataset.Metadata") + defer func() { trace.EndSpan(ctx, err) }() + + call := d.c.bqs.Datasets.Get(d.ProjectID, d.DatasetID).Context(ctx) + setClientHeader(call.Header()) + var ds *bq.Dataset + if err := runWithRetry(ctx, func() (err error) { + sCtx := trace.StartSpan(ctx, "bigquery.datasets.get") + ds, err = call.Do() + trace.EndSpan(sCtx, err) + return err + }); err != nil { + return nil, err + } + return bqToDatasetMetadata(ds, d.c) +} + +func bqToDatasetMetadata(d *bq.Dataset, c *Client) (*DatasetMetadata, error) { + dm := &DatasetMetadata{ + CreationTime: unixMillisToTime(d.CreationTime), + LastModifiedTime: unixMillisToTime(d.LastModifiedTime), + DefaultTableExpiration: time.Duration(d.DefaultTableExpirationMs) * time.Millisecond, + DefaultPartitionExpiration: time.Duration(d.DefaultPartitionExpirationMs) * time.Millisecond, + DefaultCollation: d.DefaultCollation, + ExternalDatasetReference: bqToExternalDatasetReference(d.ExternalDatasetReference), + MaxTimeTravel: time.Duration(d.MaxTimeTravelHours) * time.Hour, + StorageBillingModel: d.StorageBillingModel, + DefaultEncryptionConfig: bqToEncryptionConfig(d.DefaultEncryptionConfiguration), + Description: d.Description, + Name: d.FriendlyName, + FullID: d.Id, + Location: d.Location, + Labels: d.Labels, + ETag: d.Etag, + } + for _, a := range d.Access { + e, err := bqToAccessEntry(a, c) + if err != nil { + return nil, err + } + dm.Access = append(dm.Access, e) + } + for _, bqTag := range d.Tags { + tag := bqToDatasetTag(bqTag) + if tag != nil { + dm.Tags = append(dm.Tags, tag) + } + } + return dm, nil +} + +// Update modifies specific Dataset metadata fields. +// To perform a read-modify-write that protects against intervening reads, +// set the etag argument to the DatasetMetadata.ETag field from the read. +// Pass the empty string for etag for a "blind write" that will always succeed. +func (d *Dataset) Update(ctx context.Context, dm DatasetMetadataToUpdate, etag string) (md *DatasetMetadata, err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Dataset.Update") + defer func() { trace.EndSpan(ctx, err) }() + + ds, err := dm.toBQ() + if err != nil { + return nil, err + } + call := d.c.bqs.Datasets.Patch(d.ProjectID, d.DatasetID, ds).Context(ctx) + setClientHeader(call.Header()) + if etag != "" { + call.Header().Set("If-Match", etag) + } + var ds2 *bq.Dataset + if err := runWithRetry(ctx, func() (err error) { + sCtx := trace.StartSpan(ctx, "bigquery.datasets.patch") + ds2, err = call.Do() + trace.EndSpan(sCtx, err) + return err + }); err != nil { + return nil, err + } + return bqToDatasetMetadata(ds2, d.c) +} + +func (dm *DatasetMetadataToUpdate) toBQ() (*bq.Dataset, error) { + ds := &bq.Dataset{} + forceSend := func(field string) { + ds.ForceSendFields = append(ds.ForceSendFields, field) + } + + if dm.Description != nil { + ds.Description = optional.ToString(dm.Description) + forceSend("Description") + } + if dm.Name != nil { + ds.FriendlyName = optional.ToString(dm.Name) + forceSend("FriendlyName") + } + if dm.DefaultTableExpiration != nil { + dur := optional.ToDuration(dm.DefaultTableExpiration) + if dur == 0 { + // Send a null to delete the field. + ds.NullFields = append(ds.NullFields, "DefaultTableExpirationMs") + } else { + ds.DefaultTableExpirationMs = int64(dur / time.Millisecond) + } + } + if dm.DefaultPartitionExpiration != nil { + dur := optional.ToDuration(dm.DefaultPartitionExpiration) + if dur == 0 { + // Send a null to delete the field. + ds.NullFields = append(ds.NullFields, "DefaultPartitionExpirationMs") + } else { + ds.DefaultPartitionExpirationMs = int64(dur / time.Millisecond) + } + } + if dm.DefaultCollation != nil { + ds.DefaultCollation = optional.ToString(dm.DefaultCollation) + forceSend("DefaultCollation") + } + if dm.ExternalDatasetReference != nil { + ds.ExternalDatasetReference = dm.ExternalDatasetReference.toBQ() + forceSend("ExternalDatasetReference") + } + if dm.MaxTimeTravel != nil { + dur := optional.ToDuration(dm.MaxTimeTravel) + if dur == 0 { + // Send a null to delete the field. + ds.NullFields = append(ds.NullFields, "MaxTimeTravelHours") + } else { + ds.MaxTimeTravelHours = int64(dur / time.Hour) + } + } + if dm.StorageBillingModel != nil { + ds.StorageBillingModel = optional.ToString(dm.StorageBillingModel) + forceSend("StorageBillingModel") + } + if dm.DefaultEncryptionConfig != nil { + ds.DefaultEncryptionConfiguration = dm.DefaultEncryptionConfig.toBQ() + ds.DefaultEncryptionConfiguration.ForceSendFields = []string{"KmsKeyName"} + } + if dm.Access != nil { + var err error + ds.Access, err = accessListToBQ(dm.Access) + if err != nil { + return nil, err + } + if len(ds.Access) == 0 { + ds.NullFields = append(ds.NullFields, "Access") + } + } + labels, forces, nulls := dm.update() + ds.Labels = labels + ds.ForceSendFields = append(ds.ForceSendFields, forces...) + ds.NullFields = append(ds.NullFields, nulls...) + return ds, nil +} + +// Table creates a handle to a BigQuery table in the dataset. +// To determine if a table exists, call Table.Metadata. +// If the table does not already exist, use Table.Create to create it. +func (d *Dataset) Table(tableID string) *Table { + return &Table{ProjectID: d.ProjectID, DatasetID: d.DatasetID, TableID: tableID, c: d.c} +} + +// Tables returns an iterator over the tables in the Dataset. +func (d *Dataset) Tables(ctx context.Context) *TableIterator { + it := &TableIterator{ + ctx: ctx, + dataset: d, + } + it.pageInfo, it.nextFunc = iterator.NewPageInfo( + it.fetch, + func() int { return len(it.tables) }, + func() interface{} { b := it.tables; it.tables = nil; return b }) + return it +} + +// A TableIterator is an iterator over Tables. +type TableIterator struct { + ctx context.Context + dataset *Dataset + tables []*Table + pageInfo *iterator.PageInfo + nextFunc func() error +} + +// Next returns the next result. Its second return value is Done if there are +// no more results. Once Next returns Done, all subsequent calls will return +// Done. +func (it *TableIterator) Next() (*Table, error) { + if err := it.nextFunc(); err != nil { + return nil, err + } + t := it.tables[0] + it.tables = it.tables[1:] + return t, nil +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *TableIterator) PageInfo() *iterator.PageInfo { return it.pageInfo } + +// listTables exists to aid testing. +var listTables = func(it *TableIterator, pageSize int, pageToken string) (*bq.TableList, error) { + call := it.dataset.c.bqs.Tables.List(it.dataset.ProjectID, it.dataset.DatasetID). + PageToken(pageToken). + Context(it.ctx) + setClientHeader(call.Header()) + if pageSize > 0 { + call.MaxResults(int64(pageSize)) + } + var res *bq.TableList + err := runWithRetry(it.ctx, func() (err error) { + sCtx := trace.StartSpan(it.ctx, "bigquery.tables.list") + res, err = call.Do() + trace.EndSpan(sCtx, err) + return err + }) + return res, err +} + +func (it *TableIterator) fetch(pageSize int, pageToken string) (string, error) { + res, err := listTables(it, pageSize, pageToken) + if err != nil { + return "", err + } + for _, t := range res.Tables { + it.tables = append(it.tables, bqToTable(t.TableReference, it.dataset.c)) + } + return res.NextPageToken, nil +} + +func bqToTable(tr *bq.TableReference, c *Client) *Table { + if tr == nil { + return nil + } + return &Table{ + ProjectID: tr.ProjectId, + DatasetID: tr.DatasetId, + TableID: tr.TableId, + c: c, + } +} + +// Model creates a handle to a BigQuery model in the dataset. +// To determine if a model exists, call Model.Metadata. +// If the model does not already exist, you can create it via execution +// of a CREATE MODEL query. +func (d *Dataset) Model(modelID string) *Model { + return &Model{ProjectID: d.ProjectID, DatasetID: d.DatasetID, ModelID: modelID, c: d.c} +} + +// Models returns an iterator over the models in the Dataset. +func (d *Dataset) Models(ctx context.Context) *ModelIterator { + it := &ModelIterator{ + ctx: ctx, + dataset: d, + } + it.pageInfo, it.nextFunc = iterator.NewPageInfo( + it.fetch, + func() int { return len(it.models) }, + func() interface{} { b := it.models; it.models = nil; return b }) + return it +} + +// A ModelIterator is an iterator over Models. +type ModelIterator struct { + ctx context.Context + dataset *Dataset + models []*Model + pageInfo *iterator.PageInfo + nextFunc func() error +} + +// Next returns the next result. Its second return value is Done if there are +// no more results. Once Next returns Done, all subsequent calls will return +// Done. +func (it *ModelIterator) Next() (*Model, error) { + if err := it.nextFunc(); err != nil { + return nil, err + } + t := it.models[0] + it.models = it.models[1:] + return t, nil +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *ModelIterator) PageInfo() *iterator.PageInfo { return it.pageInfo } + +// listTables exists to aid testing. +var listModels = func(it *ModelIterator, pageSize int, pageToken string) (*bq.ListModelsResponse, error) { + call := it.dataset.c.bqs.Models.List(it.dataset.ProjectID, it.dataset.DatasetID). + PageToken(pageToken). + Context(it.ctx) + setClientHeader(call.Header()) + if pageSize > 0 { + call.MaxResults(int64(pageSize)) + } + var res *bq.ListModelsResponse + err := runWithRetry(it.ctx, func() (err error) { + sCtx := trace.StartSpan(it.ctx, "bigquery.models.list") + res, err = call.Do() + trace.EndSpan(sCtx, err) + return err + }) + return res, err +} + +func (it *ModelIterator) fetch(pageSize int, pageToken string) (string, error) { + res, err := listModels(it, pageSize, pageToken) + if err != nil { + return "", err + } + for _, t := range res.Models { + it.models = append(it.models, bqToModel(t.ModelReference, it.dataset.c)) + } + return res.NextPageToken, nil +} + +func bqToModel(mr *bq.ModelReference, c *Client) *Model { + if mr == nil { + return nil + } + return &Model{ + ProjectID: mr.ProjectId, + DatasetID: mr.DatasetId, + ModelID: mr.ModelId, + c: c, + } +} + +// Routine creates a handle to a BigQuery routine in the dataset. +// To determine if a routine exists, call Routine.Metadata. +func (d *Dataset) Routine(routineID string) *Routine { + return &Routine{ + ProjectID: d.ProjectID, + DatasetID: d.DatasetID, + RoutineID: routineID, + c: d.c} +} + +// Routines returns an iterator over the routines in the Dataset. +func (d *Dataset) Routines(ctx context.Context) *RoutineIterator { + it := &RoutineIterator{ + ctx: ctx, + dataset: d, + } + it.pageInfo, it.nextFunc = iterator.NewPageInfo( + it.fetch, + func() int { return len(it.routines) }, + func() interface{} { b := it.routines; it.routines = nil; return b }) + return it +} + +// A RoutineIterator is an iterator over Routines. +type RoutineIterator struct { + ctx context.Context + dataset *Dataset + routines []*Routine + pageInfo *iterator.PageInfo + nextFunc func() error +} + +// Next returns the next result. Its second return value is Done if there are +// no more results. Once Next returns Done, all subsequent calls will return +// Done. +func (it *RoutineIterator) Next() (*Routine, error) { + if err := it.nextFunc(); err != nil { + return nil, err + } + t := it.routines[0] + it.routines = it.routines[1:] + return t, nil +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *RoutineIterator) PageInfo() *iterator.PageInfo { return it.pageInfo } + +// listRoutines exists to aid testing. +var listRoutines = func(it *RoutineIterator, pageSize int, pageToken string) (*bq.ListRoutinesResponse, error) { + call := it.dataset.c.bqs.Routines.List(it.dataset.ProjectID, it.dataset.DatasetID). + PageToken(pageToken). + Context(it.ctx) + setClientHeader(call.Header()) + if pageSize > 0 { + call.MaxResults(int64(pageSize)) + } + var res *bq.ListRoutinesResponse + err := runWithRetry(it.ctx, func() (err error) { + sCtx := trace.StartSpan(it.ctx, "bigquery.routines.list") + res, err = call.Do() + trace.EndSpan(sCtx, err) + return err + }) + return res, err +} + +func (it *RoutineIterator) fetch(pageSize int, pageToken string) (string, error) { + res, err := listRoutines(it, pageSize, pageToken) + if err != nil { + return "", err + } + for _, t := range res.Routines { + it.routines = append(it.routines, bqToRoutine(t.RoutineReference, it.dataset.c)) + } + return res.NextPageToken, nil +} + +func bqToRoutine(mr *bq.RoutineReference, c *Client) *Routine { + if mr == nil { + return nil + } + return &Routine{ + ProjectID: mr.ProjectId, + DatasetID: mr.DatasetId, + RoutineID: mr.RoutineId, + c: c, + } +} + +// Datasets returns an iterator over the datasets in a project. +// The Client's project is used by default, but that can be +// changed by setting ProjectID on the returned iterator before calling Next. +func (c *Client) Datasets(ctx context.Context) *DatasetIterator { + return c.DatasetsInProject(ctx, c.projectID) +} + +// DatasetsInProject returns an iterator over the datasets in the provided project. +// +// Deprecated: call Client.Datasets, then set ProjectID on the returned iterator. +func (c *Client) DatasetsInProject(ctx context.Context, projectID string) *DatasetIterator { + it := &DatasetIterator{ + ctx: ctx, + c: c, + ProjectID: projectID, + } + it.pageInfo, it.nextFunc = iterator.NewPageInfo( + it.fetch, + func() int { return len(it.items) }, + func() interface{} { b := it.items; it.items = nil; return b }) + return it +} + +// DatasetIterator iterates over the datasets in a project. +type DatasetIterator struct { + // ListHidden causes hidden datasets to be listed when set to true. + // Set before the first call to Next. + ListHidden bool + + // Filter restricts the datasets returned by label. The filter syntax is described in + // https://cloud.google.com/bigquery/docs/labeling-datasets#filtering_datasets_using_labels + // Set before the first call to Next. + Filter string + + // The project ID of the listed datasets. + // Set before the first call to Next. + ProjectID string + + ctx context.Context + c *Client + pageInfo *iterator.PageInfo + nextFunc func() error + items []*Dataset +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *DatasetIterator) PageInfo() *iterator.PageInfo { return it.pageInfo } + +// Next returns the next Dataset. Its second return value is iterator.Done if +// there are no more results. Once Next returns Done, all subsequent calls will +// return Done. +func (it *DatasetIterator) Next() (*Dataset, error) { + if err := it.nextFunc(); err != nil { + return nil, err + } + item := it.items[0] + it.items = it.items[1:] + return item, nil +} + +// for testing +var listDatasets = func(it *DatasetIterator, pageSize int, pageToken string) (*bq.DatasetList, error) { + call := it.c.bqs.Datasets.List(it.ProjectID). + Context(it.ctx). + PageToken(pageToken). + All(it.ListHidden) + setClientHeader(call.Header()) + if pageSize > 0 { + call.MaxResults(int64(pageSize)) + } + if it.Filter != "" { + call.Filter(it.Filter) + } + var res *bq.DatasetList + err := runWithRetry(it.ctx, func() (err error) { + sCtx := trace.StartSpan(it.ctx, "bigquery.datasets.list") + res, err = call.Do() + trace.EndSpan(sCtx, err) + return err + }) + return res, err +} + +func (it *DatasetIterator) fetch(pageSize int, pageToken string) (string, error) { + res, err := listDatasets(it, pageSize, pageToken) + if err != nil { + return "", err + } + for _, d := range res.Datasets { + it.items = append(it.items, &Dataset{ + ProjectID: d.DatasetReference.ProjectId, + DatasetID: d.DatasetReference.DatasetId, + c: it.c, + }) + } + return res.NextPageToken, nil +} + +// An AccessEntry describes the permissions that an entity has on a dataset. +type AccessEntry struct { + Role AccessRole // The role of the entity + EntityType EntityType // The type of entity + Entity string // The entity (individual or group) granted access + View *Table // The view granted access (EntityType must be ViewEntity) + Routine *Routine // The routine granted access (only UDF currently supported) + Dataset *DatasetAccessEntry // The resources within a dataset granted access. +} + +// AccessRole is the level of access to grant to a dataset. +type AccessRole string + +const ( + // OwnerRole is the OWNER AccessRole. + OwnerRole AccessRole = "OWNER" + // ReaderRole is the READER AccessRole. + ReaderRole AccessRole = "READER" + // WriterRole is the WRITER AccessRole. + WriterRole AccessRole = "WRITER" +) + +// EntityType is the type of entity in an AccessEntry. +type EntityType int + +const ( + // DomainEntity is a domain (e.g. "example.com"). + DomainEntity EntityType = iota + 1 + + // GroupEmailEntity is an email address of a Google Group. + GroupEmailEntity + + // UserEmailEntity is an email address of an individual user. + UserEmailEntity + + // SpecialGroupEntity is a special group: one of projectOwners, projectReaders, projectWriters or + // allAuthenticatedUsers. + SpecialGroupEntity + + // ViewEntity is a BigQuery logical view. + ViewEntity + + // IAMMemberEntity represents entities present in IAM but not represented using + // the other entity types. + IAMMemberEntity + + // RoutineEntity is a BigQuery routine, referencing a User Defined Function (UDF). + RoutineEntity + + // DatasetEntity is BigQuery dataset, present in the access list. + DatasetEntity +) + +func (e *AccessEntry) toBQ() (*bq.DatasetAccess, error) { + q := &bq.DatasetAccess{Role: string(e.Role)} + switch e.EntityType { + case DomainEntity: + q.Domain = e.Entity + case GroupEmailEntity: + q.GroupByEmail = e.Entity + case UserEmailEntity: + q.UserByEmail = e.Entity + case SpecialGroupEntity: + q.SpecialGroup = e.Entity + case ViewEntity: + q.View = e.View.toBQ() + case IAMMemberEntity: + q.IamMember = e.Entity + case RoutineEntity: + q.Routine = e.Routine.toBQ() + case DatasetEntity: + q.Dataset = e.Dataset.toBQ() + default: + return nil, fmt.Errorf("bigquery: unknown entity type %d", e.EntityType) + } + return q, nil +} + +func bqToAccessEntry(q *bq.DatasetAccess, c *Client) (*AccessEntry, error) { + e := &AccessEntry{Role: AccessRole(q.Role)} + switch { + case q.Domain != "": + e.Entity = q.Domain + e.EntityType = DomainEntity + case q.GroupByEmail != "": + e.Entity = q.GroupByEmail + e.EntityType = GroupEmailEntity + case q.UserByEmail != "": + e.Entity = q.UserByEmail + e.EntityType = UserEmailEntity + case q.SpecialGroup != "": + e.Entity = q.SpecialGroup + e.EntityType = SpecialGroupEntity + case q.View != nil: + e.View = c.DatasetInProject(q.View.ProjectId, q.View.DatasetId).Table(q.View.TableId) + e.EntityType = ViewEntity + case q.IamMember != "": + e.Entity = q.IamMember + e.EntityType = IAMMemberEntity + case q.Routine != nil: + e.Routine = c.DatasetInProject(q.Routine.ProjectId, q.Routine.DatasetId).Routine(q.Routine.RoutineId) + e.EntityType = RoutineEntity + case q.Dataset != nil: + e.Dataset = bqToDatasetAccessEntry(q.Dataset, c) + e.EntityType = DatasetEntity + default: + return nil, errors.New("bigquery: invalid access value") + } + return e, nil +} + +// DatasetAccessEntry is an access entry that refers to resources within +// another dataset. +type DatasetAccessEntry struct { + // The dataset to which this entry applies. + Dataset *Dataset + // The list of target types within the dataset + // to which this entry applies. + // + // Current supported values: + // + // VIEWS - This entry applies to views in the dataset. + TargetTypes []string +} + +func (dae *DatasetAccessEntry) toBQ() *bq.DatasetAccessEntry { + if dae == nil { + return nil + } + return &bq.DatasetAccessEntry{ + Dataset: &bq.DatasetReference{ + ProjectId: dae.Dataset.ProjectID, + DatasetId: dae.Dataset.DatasetID, + }, + TargetTypes: dae.TargetTypes, + } +} + +func bqToDatasetAccessEntry(entry *bq.DatasetAccessEntry, c *Client) *DatasetAccessEntry { + if entry == nil { + return nil + } + return &DatasetAccessEntry{ + Dataset: c.DatasetInProject(entry.Dataset.ProjectId, entry.Dataset.DatasetId), + TargetTypes: entry.TargetTypes, + } +} + +// ExternalDatasetReference provides information about external dataset metadata. +type ExternalDatasetReference struct { + //The connection id that is used to access the external_source. + // Format: projects/{project_id}/locations/{location_id}/connections/{connection_id} + Connection string + + // External source that backs this dataset. + ExternalSource string +} + +func bqToExternalDatasetReference(bq *bq.ExternalDatasetReference) *ExternalDatasetReference { + if bq == nil { + return nil + } + return &ExternalDatasetReference{ + Connection: bq.Connection, + ExternalSource: bq.ExternalSource, + } +} + +func (edr *ExternalDatasetReference) toBQ() *bq.ExternalDatasetReference { + if edr == nil { + return nil + } + return &bq.ExternalDatasetReference{ + Connection: edr.Connection, + ExternalSource: edr.ExternalSource, + } +} diff --git a/vendor/cloud.google.com/go/bigquery/doc.go b/vendor/cloud.google.com/go/bigquery/doc.go new file mode 100644 index 000000000..37d116a31 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/doc.go @@ -0,0 +1,321 @@ +// Copyright 2015 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* +Package bigquery provides a client for the BigQuery service. + +The following assumes a basic familiarity with BigQuery concepts. +See https://cloud.google.com/bigquery/docs. + +See https://godoc.org/cloud.google.com/go for authentication, timeouts, +connection pooling and similar aspects of this package. + +# Creating a Client + +To start working with this package, create a client: + + ctx := context.Background() + client, err := bigquery.NewClient(ctx, projectID) + if err != nil { + // TODO: Handle error. + } + +# Querying + +To query existing tables, create a Query and call its Read method, which starts the +query and waits for it to complete: + + q := client.Query(` + SELECT year, SUM(number) as num + FROM bigquery-public-data.usa_names.usa_1910_2013 + WHERE name = @name + GROUP BY year + ORDER BY year + `) + q.Parameters = []bigquery.QueryParameter{ + {Name: "name", Value: "William"}, + } + it, err := q.Read(ctx) + if err != nil { + // TODO: Handle error. + } + +Then iterate through the resulting rows. You can store a row using +anything that implements the ValueLoader interface, or with a slice or map of bigquery.Value. +A slice is simplest: + + for { + var values []bigquery.Value + err := it.Next(&values) + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + fmt.Println(values) + } + +You can also use a struct whose exported fields match the query: + + type Count struct { + Year int + Num int + } + for { + var c Count + err := it.Next(&c) + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + fmt.Println(c) + } + +You can also start the query running and get the results later. +Create the query as above, but call Run instead of Read. This returns a Job, +which represents an asynchronous operation. + + job, err := q.Run(ctx) + if err != nil { + // TODO: Handle error. + } + +Get the job's ID, a printable string. You can save this string to retrieve +the results at a later time, even in another process. + + jobID := job.ID() + fmt.Printf("The job ID is %s\n", jobID) + +To retrieve the job's results from the ID, first look up the Job: + + job, err = client.JobFromID(ctx, jobID) + if err != nil { + // TODO: Handle error. + } + +Use the Job.Read method to obtain an iterator, and loop over the rows. +Calling Query.Read is preferred for queries with a relatively small result set, +as it will call BigQuery jobs.query API for a optimized query path. If the query +doesn't meet that criteria, the method will just combine Query.Run and Job.Read. + + it, err = job.Read(ctx) + if err != nil { + // TODO: Handle error. + } + // Proceed with iteration as above. + +# Datasets and Tables + +You can refer to datasets in the client's project with the Dataset method, and +in other projects with the DatasetInProject method: + + myDataset := client.Dataset("my_dataset") + yourDataset := client.DatasetInProject("your-project-id", "your_dataset") + +These methods create references to datasets, not the datasets themselves. You can have +a dataset reference even if the dataset doesn't exist yet. Use Dataset.Create to +create a dataset from a reference: + + if err := myDataset.Create(ctx, nil); err != nil { + // TODO: Handle error. + } + +You can refer to tables with Dataset.Table. Like bigquery.Dataset, bigquery.Table is a reference +to an object in BigQuery that may or may not exist. + + table := myDataset.Table("my_table") + +You can create, delete and update the metadata of tables with methods on Table. +For instance, you could create a temporary table with: + + err = myDataset.Table("temp").Create(ctx, &bigquery.TableMetadata{ + ExpirationTime: time.Now().Add(1*time.Hour)}) + if err != nil { + // TODO: Handle error. + } + +We'll see how to create a table with a schema in the next section. + +# Schemas + +There are two ways to construct schemas with this package. +You can build a schema by hand, like so: + + schema1 := bigquery.Schema{ + {Name: "Name", Required: true, Type: bigquery.StringFieldType}, + {Name: "Grades", Repeated: true, Type: bigquery.IntegerFieldType}, + {Name: "Optional", Required: false, Type: bigquery.IntegerFieldType}, + } + +Or you can infer the schema from a struct: + + type student struct { + Name string + Grades []int + Optional bigquery.NullInt64 + } + schema2, err := bigquery.InferSchema(student{}) + if err != nil { + // TODO: Handle error. + } + // schema1 and schema2 are identical. + +Struct inference supports tags like those of the encoding/json package, so you can +change names, ignore fields, or mark a field as nullable (non-required). Fields +declared as one of the Null types (NullInt64, NullFloat64, NullString, NullBool, +NullTimestamp, NullDate, NullTime, NullDateTime, and NullGeography) are +automatically inferred as nullable, so the "nullable" tag is only needed for []byte, +*big.Rat and pointer-to-struct fields. + + type student2 struct { + Name string `bigquery:"full_name"` + Grades []int + Secret string `bigquery:"-"` + Optional []byte `bigquery:",nullable"` + } + schema3, err := bigquery.InferSchema(student2{}) + if err != nil { + // TODO: Handle error. + } + // schema3 has required fields "full_name" and "Grade", and nullable BYTES field "Optional". + +Having constructed a schema, you can create a table with it like so: + + if err := table.Create(ctx, &bigquery.TableMetadata{Schema: schema1}); err != nil { + // TODO: Handle error. + } + +# Copying + +You can copy one or more tables to another table. Begin by constructing a Copier +describing the copy. Then set any desired copy options, and finally call Run to get a Job: + + copier := myDataset.Table("dest").CopierFrom(myDataset.Table("src")) + copier.WriteDisposition = bigquery.WriteTruncate + job, err = copier.Run(ctx) + if err != nil { + // TODO: Handle error. + } + +You can chain the call to Run if you don't want to set options: + + job, err = myDataset.Table("dest").CopierFrom(myDataset.Table("src")).Run(ctx) + if err != nil { + // TODO: Handle error. + } + +You can wait for your job to complete: + + status, err := job.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + +Job.Wait polls with exponential backoff. You can also poll yourself, if you +wish: + + for { + status, err := job.Status(ctx) + if err != nil { + // TODO: Handle error. + } + if status.Done() { + if status.Err() != nil { + log.Fatalf("Job failed with error %v", status.Err()) + } + break + } + time.Sleep(pollInterval) + } + +# Loading and Uploading + +There are two ways to populate a table with this package: load the data from a Google Cloud Storage +object, or upload rows directly from your program. + +For loading, first create a GCSReference, configuring it if desired. Then make a Loader, optionally configure +it as well, and call its Run method. + + gcsRef := bigquery.NewGCSReference("gs://my-bucket/my-object") + gcsRef.AllowJaggedRows = true + loader := myDataset.Table("dest").LoaderFrom(gcsRef) + loader.CreateDisposition = bigquery.CreateNever + job, err = loader.Run(ctx) + // Poll the job for completion if desired, as above. + +To upload, first define a type that implements the ValueSaver interface, which has a single method named Save. +Then create an Inserter, and call its Put method with a slice of values. + + u := table.Inserter() + // Item implements the ValueSaver interface. + items := []*Item{ + {Name: "n1", Size: 32.6, Count: 7}, + {Name: "n2", Size: 4, Count: 2}, + {Name: "n3", Size: 101.5, Count: 1}, + } + if err := u.Put(ctx, items); err != nil { + // TODO: Handle error. + } + +You can also upload a struct that doesn't implement ValueSaver. Use the StructSaver type +to specify the schema and insert ID by hand, or just supply the struct or struct pointer +directly and the schema will be inferred: + + type Item2 struct { + Name string + Size float64 + Count int + } + // Item implements the ValueSaver interface. + items2 := []*Item2{ + {Name: "n1", Size: 32.6, Count: 7}, + {Name: "n2", Size: 4, Count: 2}, + {Name: "n3", Size: 101.5, Count: 1}, + } + if err := u.Put(ctx, items2); err != nil { + // TODO: Handle error. + } + +BigQuery allows for higher throughput when omitting insertion IDs. To enable this, +specify the sentinel `NoDedupeID` value for the insertion ID when implementing a ValueSaver. + +# Extracting + +If you've been following so far, extracting data from a BigQuery table +into a Google Cloud Storage object will feel familiar. First create an +Extractor, then optionally configure it, and lastly call its Run method. + + extractor := table.ExtractorTo(gcsRef) + extractor.DisableHeader = true + job, err = extractor.Run(ctx) + // Poll the job for completion if desired, as above. + +# Errors + +Errors returned by this client are often of the type googleapi.Error: https://godoc.org/google.golang.org/api/googleapi#Error + +These errors can be introspected for more information by using `xerrors.As` with the richer *googleapi.Error type. For example: + + var e *googleapi.Error + if ok := xerrors.As(err, &e); ok { + if e.Code == 409 { ... } + } + +In some cases, your client may received unstructured googleapi.Error error responses. In such cases, it is likely that +you have exceeded BigQuery request limits, documented at: https://cloud.google.com/bigquery/quotas +*/ +package bigquery // import "cloud.google.com/go/bigquery" diff --git a/vendor/cloud.google.com/go/bigquery/error.go b/vendor/cloud.google.com/go/bigquery/error.go new file mode 100644 index 000000000..cab9b0083 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/error.go @@ -0,0 +1,106 @@ +// Copyright 2015 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "fmt" + "strings" + + bq "google.golang.org/api/bigquery/v2" +) + +// An Error contains detailed information about a failed bigquery operation. +// Detailed description of possible Reasons can be found here: https://cloud.google.com/bigquery/troubleshooting-errors. +type Error struct { + // Mirrors bq.ErrorProto, but drops DebugInfo + Location, Message, Reason string +} + +func (e Error) Error() string { + return fmt.Sprintf("{Location: %q; Message: %q; Reason: %q}", e.Location, e.Message, e.Reason) +} + +func bqToError(ep *bq.ErrorProto) *Error { + if ep == nil { + return nil + } + return &Error{ + Location: ep.Location, + Message: ep.Message, + Reason: ep.Reason, + } +} + +// A MultiError contains multiple related errors. +type MultiError []error + +func (m MultiError) Error() string { + switch len(m) { + case 0: + return "(0 errors)" + case 1: + return m[0].Error() + case 2: + return m[0].Error() + " (and 1 other error)" + } + return fmt.Sprintf("%s (and %d other errors)", m[0].Error(), len(m)-1) +} + +// RowInsertionError contains all errors that occurred when attempting to insert a row. +type RowInsertionError struct { + InsertID string // The InsertID associated with the affected row. + RowIndex int // The 0-based index of the affected row in the batch of rows being inserted. + Errors MultiError +} + +func (e *RowInsertionError) Error() string { + errFmt := "insertion of row [insertID: %q; insertIndex: %v] failed with error: %s" + return fmt.Sprintf(errFmt, e.InsertID, e.RowIndex, e.Errors.Error()) +} + +// PutMultiError contains an error for each row which was not successfully inserted +// into a BigQuery table. +type PutMultiError []RowInsertionError + +func (pme PutMultiError) errorDetails() string { + size := len(pme) + ellipsis := "" + if size == 0 { + return "" + } else if size > 3 { + size = 3 + ellipsis = ", ..." + } + + es := make([]string, size) + for i, e := range pme { + if i >= size { + break + } + es[i] = e.Error() + } + + return fmt.Sprintf(" (%s%s)", strings.Join(es, ", "), ellipsis) +} + +func (pme PutMultiError) Error() string { + plural := "s" + if len(pme) == 1 { + plural = "" + } + + details := pme.errorDetails() + return fmt.Sprintf("%v row insertion%s failed%s", len(pme), plural, details) +} diff --git a/vendor/cloud.google.com/go/bigquery/external.go b/vendor/cloud.google.com/go/bigquery/external.go new file mode 100644 index 000000000..97761f6b3 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/external.go @@ -0,0 +1,576 @@ +// Copyright 2017 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "encoding/base64" + "unicode/utf8" + + bq "google.golang.org/api/bigquery/v2" +) + +// DataFormat describes the format of BigQuery table data. +type DataFormat string + +// Constants describing the format of BigQuery table data. +const ( + CSV DataFormat = "CSV" + Avro DataFormat = "AVRO" + JSON DataFormat = "NEWLINE_DELIMITED_JSON" + DatastoreBackup DataFormat = "DATASTORE_BACKUP" + GoogleSheets DataFormat = "GOOGLE_SHEETS" + Bigtable DataFormat = "BIGTABLE" + Parquet DataFormat = "PARQUET" + ORC DataFormat = "ORC" + // For BQ ML Models, TensorFlow Saved Model format. + TFSavedModel DataFormat = "ML_TF_SAVED_MODEL" + // For BQ ML Models, xgBoost Booster format. + XGBoostBooster DataFormat = "ML_XGBOOST_BOOSTER" + Iceberg DataFormat = "ICEBERG" +) + +// ExternalData is a table which is stored outside of BigQuery. It is implemented by +// *ExternalDataConfig. +// GCSReference also implements it, for backwards compatibility. +type ExternalData interface { + toBQ() bq.ExternalDataConfiguration +} + +// ExternalDataConfig describes data external to BigQuery that can be used +// in queries and to create external tables. +type ExternalDataConfig struct { + // The format of the data. Required. + SourceFormat DataFormat + + // The fully-qualified URIs that point to your + // data in Google Cloud. Required. + // + // For Google Cloud Storage URIs, each URI can contain one '*' wildcard character + // and it must come after the 'bucket' name. Size limits related to load jobs + // apply to external data sources. + // + // For Google Cloud Bigtable URIs, exactly one URI can be specified and it has be + // a fully specified and valid HTTPS URL for a Google Cloud Bigtable table. + // + // For Google Cloud Datastore backups, exactly one URI can be specified. Also, + // the '*' wildcard character is not allowed. + SourceURIs []string + + // The schema of the data. Required for CSV and JSON; disallowed for the + // other formats. + Schema Schema + + // Try to detect schema and format options automatically. + // Any option specified explicitly will be honored. + AutoDetect bool + + // The compression type of the data. + Compression Compression + + // IgnoreUnknownValues causes values not matching the schema to be + // tolerated. Unknown values are ignored. For CSV this ignores extra values + // at the end of a line. For JSON this ignores named values that do not + // match any column name. If this field is not set, records containing + // unknown values are treated as bad records. The MaxBadRecords field can + // be used to customize how bad records are handled. + IgnoreUnknownValues bool + + // MaxBadRecords is the maximum number of bad records that will be ignored + // when reading data. + MaxBadRecords int64 + + // Additional options for CSV, GoogleSheets, Bigtable, and Parquet formats. + Options ExternalDataConfigOptions + + // HivePartitioningOptions allows use of Hive partitioning based on the + // layout of objects in Google Cloud Storage. + HivePartitioningOptions *HivePartitioningOptions + + // DecimalTargetTypes allows selection of how decimal values are converted when + // processed in bigquery, subject to the value type having sufficient precision/scale + // to support the values. In the order of NUMERIC, BIGNUMERIC, and STRING, a type is + // selected if is present in the list and if supports the necessary precision and scale. + // + // StringTargetType supports all precision and scale values. + DecimalTargetTypes []DecimalTargetType + + // ConnectionID associates an external data configuration with a connection ID. + // Connections are managed through the BigQuery Connection API: + // https://pkg.go.dev/cloud.google.com/go/bigquery/connection/apiv1 + ConnectionID string + + // When creating an external table, the user can provide a reference file with the table schema. + // This is enabled for the following formats: AVRO, PARQUET, ORC. + ReferenceFileSchemaURI string +} + +func (e *ExternalDataConfig) toBQ() bq.ExternalDataConfiguration { + q := bq.ExternalDataConfiguration{ + SourceFormat: string(e.SourceFormat), + SourceUris: e.SourceURIs, + Autodetect: e.AutoDetect, + Compression: string(e.Compression), + IgnoreUnknownValues: e.IgnoreUnknownValues, + MaxBadRecords: e.MaxBadRecords, + HivePartitioningOptions: e.HivePartitioningOptions.toBQ(), + ConnectionId: e.ConnectionID, + ReferenceFileSchemaUri: e.ReferenceFileSchemaURI, + } + if e.Schema != nil { + q.Schema = e.Schema.toBQ() + } + if e.Options != nil { + e.Options.populateExternalDataConfig(&q) + } + for _, v := range e.DecimalTargetTypes { + q.DecimalTargetTypes = append(q.DecimalTargetTypes, string(v)) + } + return q +} + +func bqToExternalDataConfig(q *bq.ExternalDataConfiguration) (*ExternalDataConfig, error) { + e := &ExternalDataConfig{ + SourceFormat: DataFormat(q.SourceFormat), + SourceURIs: q.SourceUris, + AutoDetect: q.Autodetect, + Compression: Compression(q.Compression), + IgnoreUnknownValues: q.IgnoreUnknownValues, + MaxBadRecords: q.MaxBadRecords, + Schema: bqToSchema(q.Schema), + HivePartitioningOptions: bqToHivePartitioningOptions(q.HivePartitioningOptions), + ConnectionID: q.ConnectionId, + ReferenceFileSchemaURI: q.ReferenceFileSchemaUri, + } + for _, v := range q.DecimalTargetTypes { + e.DecimalTargetTypes = append(e.DecimalTargetTypes, DecimalTargetType(v)) + } + switch { + case q.AvroOptions != nil: + e.Options = bqToAvroOptions(q.AvroOptions) + case q.CsvOptions != nil: + e.Options = bqToCSVOptions(q.CsvOptions) + case q.GoogleSheetsOptions != nil: + e.Options = bqToGoogleSheetsOptions(q.GoogleSheetsOptions) + case q.BigtableOptions != nil: + var err error + e.Options, err = bqToBigtableOptions(q.BigtableOptions) + if err != nil { + return nil, err + } + case q.ParquetOptions != nil: + e.Options = bqToParquetOptions(q.ParquetOptions) + } + return e, nil +} + +// ExternalDataConfigOptions are additional options for external data configurations. +// This interface is implemented by CSVOptions, GoogleSheetsOptions and BigtableOptions. +type ExternalDataConfigOptions interface { + populateExternalDataConfig(*bq.ExternalDataConfiguration) +} + +// AvroOptions are additional options for Avro external data data sources. +type AvroOptions struct { + // UseAvroLogicalTypes indicates whether to interpret logical types as the + // corresponding BigQuery data type (for example, TIMESTAMP), instead of using + // the raw type (for example, INTEGER). + UseAvroLogicalTypes bool +} + +func (o *AvroOptions) populateExternalDataConfig(c *bq.ExternalDataConfiguration) { + c.AvroOptions = &bq.AvroOptions{ + UseAvroLogicalTypes: o.UseAvroLogicalTypes, + } +} + +func bqToAvroOptions(q *bq.AvroOptions) *AvroOptions { + if q == nil { + return nil + } + return &AvroOptions{ + UseAvroLogicalTypes: q.UseAvroLogicalTypes, + } +} + +// CSVOptions are additional options for CSV external data sources. +type CSVOptions struct { + // AllowJaggedRows causes missing trailing optional columns to be tolerated + // when reading CSV data. Missing values are treated as nulls. + AllowJaggedRows bool + + // AllowQuotedNewlines sets whether quoted data sections containing + // newlines are allowed when reading CSV data. + AllowQuotedNewlines bool + + // Encoding is the character encoding of data to be read. + Encoding Encoding + + // FieldDelimiter is the separator for fields in a CSV file, used when + // reading or exporting data. The default is ",". + FieldDelimiter string + + // Quote is the value used to quote data sections in a CSV file. The + // default quotation character is the double quote ("), which is used if + // both Quote and ForceZeroQuote are unset. + // To specify that no character should be interpreted as a quotation + // character, set ForceZeroQuote to true. + // Only used when reading data. + Quote string + ForceZeroQuote bool + + // The number of rows at the top of a CSV file that BigQuery will skip when + // reading data. + SkipLeadingRows int64 + + // An optional custom string that will represent a NULL + // value in CSV import data. + NullMarker string + + // Preserves the embedded ASCII control characters (the first 32 characters in the ASCII-table, + // from '\\x00' to '\\x1F') when loading from CSV. Only applicable to CSV, ignored for other formats. + PreserveASCIIControlCharacters bool +} + +func (o *CSVOptions) populateExternalDataConfig(c *bq.ExternalDataConfiguration) { + c.CsvOptions = &bq.CsvOptions{ + AllowJaggedRows: o.AllowJaggedRows, + AllowQuotedNewlines: o.AllowQuotedNewlines, + Encoding: string(o.Encoding), + FieldDelimiter: o.FieldDelimiter, + Quote: o.quote(), + SkipLeadingRows: o.SkipLeadingRows, + NullMarker: o.NullMarker, + PreserveAsciiControlCharacters: o.PreserveASCIIControlCharacters, + } +} + +// quote returns the CSV quote character, or nil if unset. +func (o *CSVOptions) quote() *string { + if o.ForceZeroQuote { + quote := "" + return "e + } + if o.Quote == "" { + return nil + } + return &o.Quote +} + +func (o *CSVOptions) setQuote(ps *string) { + if ps != nil { + o.Quote = *ps + if o.Quote == "" { + o.ForceZeroQuote = true + } + } +} + +func bqToCSVOptions(q *bq.CsvOptions) *CSVOptions { + o := &CSVOptions{ + AllowJaggedRows: q.AllowJaggedRows, + AllowQuotedNewlines: q.AllowQuotedNewlines, + Encoding: Encoding(q.Encoding), + FieldDelimiter: q.FieldDelimiter, + SkipLeadingRows: q.SkipLeadingRows, + NullMarker: q.NullMarker, + PreserveASCIIControlCharacters: q.PreserveAsciiControlCharacters, + } + o.setQuote(q.Quote) + return o +} + +// GoogleSheetsOptions are additional options for GoogleSheets external data sources. +type GoogleSheetsOptions struct { + // The number of rows at the top of a sheet that BigQuery will skip when + // reading data. + SkipLeadingRows int64 + // Optionally specifies a more specific range of cells to include. + // Typical format: sheet_name!top_left_cell_id:bottom_right_cell_id + // + // Example: sheet1!A1:B20 + Range string +} + +func (o *GoogleSheetsOptions) populateExternalDataConfig(c *bq.ExternalDataConfiguration) { + c.GoogleSheetsOptions = &bq.GoogleSheetsOptions{ + SkipLeadingRows: o.SkipLeadingRows, + Range: o.Range, + } +} + +func bqToGoogleSheetsOptions(q *bq.GoogleSheetsOptions) *GoogleSheetsOptions { + return &GoogleSheetsOptions{ + SkipLeadingRows: q.SkipLeadingRows, + Range: q.Range, + } +} + +// BigtableOptions are additional options for Bigtable external data sources. +type BigtableOptions struct { + // A list of column families to expose in the table schema along with their + // types. If omitted, all column families are present in the table schema and + // their values are read as BYTES. + ColumnFamilies []*BigtableColumnFamily + + // If true, then the column families that are not specified in columnFamilies + // list are not exposed in the table schema. Otherwise, they are read with BYTES + // type values. The default is false. + IgnoreUnspecifiedColumnFamilies bool + + // If true, then the rowkey column families will be read and converted to string. + // Otherwise they are read with BYTES type values and users need to manually cast + // them with CAST if necessary. The default is false. + ReadRowkeyAsString bool +} + +func (o *BigtableOptions) populateExternalDataConfig(c *bq.ExternalDataConfiguration) { + q := &bq.BigtableOptions{ + IgnoreUnspecifiedColumnFamilies: o.IgnoreUnspecifiedColumnFamilies, + ReadRowkeyAsString: o.ReadRowkeyAsString, + } + for _, f := range o.ColumnFamilies { + q.ColumnFamilies = append(q.ColumnFamilies, f.toBQ()) + } + c.BigtableOptions = q +} + +func bqToBigtableOptions(q *bq.BigtableOptions) (*BigtableOptions, error) { + b := &BigtableOptions{ + IgnoreUnspecifiedColumnFamilies: q.IgnoreUnspecifiedColumnFamilies, + ReadRowkeyAsString: q.ReadRowkeyAsString, + } + for _, f := range q.ColumnFamilies { + f2, err := bqToBigtableColumnFamily(f) + if err != nil { + return nil, err + } + b.ColumnFamilies = append(b.ColumnFamilies, f2) + } + return b, nil +} + +// BigtableColumnFamily describes how BigQuery should access a Bigtable column family. +type BigtableColumnFamily struct { + // Identifier of the column family. + FamilyID string + + // Lists of columns that should be exposed as individual fields as opposed to a + // list of (column name, value) pairs. All columns whose qualifier matches a + // qualifier in this list can be accessed as .. Other columns can be accessed as + // a list through .Column field. + Columns []*BigtableColumn + + // The encoding of the values when the type is not STRING. Acceptable encoding values are: + // - TEXT - indicates values are alphanumeric text strings. + // - BINARY - indicates values are encoded using HBase Bytes.toBytes family of functions. + // This can be overridden for a specific column by listing that column in 'columns' and + // specifying an encoding for it. + Encoding string + + // If true, only the latest version of values are exposed for all columns in this + // column family. This can be overridden for a specific column by listing that + // column in 'columns' and specifying a different setting for that column. + OnlyReadLatest bool + + // The type to convert the value in cells of this + // column family. The values are expected to be encoded using HBase + // Bytes.toBytes function when using the BINARY encoding value. + // Following BigQuery types are allowed (case-sensitive): + // BYTES STRING INTEGER FLOAT BOOLEAN. + // The default type is BYTES. This can be overridden for a specific column by + // listing that column in 'columns' and specifying a type for it. + Type string +} + +func (b *BigtableColumnFamily) toBQ() *bq.BigtableColumnFamily { + q := &bq.BigtableColumnFamily{ + FamilyId: b.FamilyID, + Encoding: b.Encoding, + OnlyReadLatest: b.OnlyReadLatest, + Type: b.Type, + } + for _, col := range b.Columns { + q.Columns = append(q.Columns, col.toBQ()) + } + return q +} + +func bqToBigtableColumnFamily(q *bq.BigtableColumnFamily) (*BigtableColumnFamily, error) { + b := &BigtableColumnFamily{ + FamilyID: q.FamilyId, + Encoding: q.Encoding, + OnlyReadLatest: q.OnlyReadLatest, + Type: q.Type, + } + for _, col := range q.Columns { + c, err := bqToBigtableColumn(col) + if err != nil { + return nil, err + } + b.Columns = append(b.Columns, c) + } + return b, nil +} + +// BigtableColumn describes how BigQuery should access a Bigtable column. +type BigtableColumn struct { + // Qualifier of the column. Columns in the parent column family that have this + // exact qualifier are exposed as . field. The column field name is the + // same as the column qualifier. + Qualifier string + + // If the qualifier is not a valid BigQuery field identifier i.e. does not match + // [a-zA-Z][a-zA-Z0-9_]*, a valid identifier must be provided as the column field + // name and is used as field name in queries. + FieldName string + + // If true, only the latest version of values are exposed for this column. + // See BigtableColumnFamily.OnlyReadLatest. + OnlyReadLatest bool + + // The encoding of the values when the type is not STRING. + // See BigtableColumnFamily.Encoding + Encoding string + + // The type to convert the value in cells of this column. + // See BigtableColumnFamily.Type + Type string +} + +func (b *BigtableColumn) toBQ() *bq.BigtableColumn { + q := &bq.BigtableColumn{ + FieldName: b.FieldName, + OnlyReadLatest: b.OnlyReadLatest, + Encoding: b.Encoding, + Type: b.Type, + } + if utf8.ValidString(b.Qualifier) { + q.QualifierString = b.Qualifier + } else { + q.QualifierEncoded = base64.RawStdEncoding.EncodeToString([]byte(b.Qualifier)) + } + return q +} + +func bqToBigtableColumn(q *bq.BigtableColumn) (*BigtableColumn, error) { + b := &BigtableColumn{ + FieldName: q.FieldName, + OnlyReadLatest: q.OnlyReadLatest, + Encoding: q.Encoding, + Type: q.Type, + } + if q.QualifierString != "" { + b.Qualifier = q.QualifierString + } else { + bytes, err := base64.RawStdEncoding.DecodeString(q.QualifierEncoded) + if err != nil { + return nil, err + } + b.Qualifier = string(bytes) + } + return b, nil +} + +// ParquetOptions are additional options for Parquet external data sources. +type ParquetOptions struct { + // EnumAsString indicates whether to infer Parquet ENUM logical type as + // STRING instead of BYTES by default. + EnumAsString bool + + // EnableListInference indicates whether to use schema inference + // specifically for Parquet LIST logical type. + EnableListInference bool +} + +func (o *ParquetOptions) populateExternalDataConfig(c *bq.ExternalDataConfiguration) { + if o != nil { + c.ParquetOptions = &bq.ParquetOptions{ + EnumAsString: o.EnumAsString, + EnableListInference: o.EnableListInference, + } + } +} + +func bqToParquetOptions(q *bq.ParquetOptions) *ParquetOptions { + if q == nil { + return nil + } + return &ParquetOptions{ + EnumAsString: q.EnumAsString, + EnableListInference: q.EnableListInference, + } +} + +// HivePartitioningMode is used in conjunction with HivePartitioningOptions. +type HivePartitioningMode string + +const ( + // AutoHivePartitioningMode automatically infers partitioning key and types. + AutoHivePartitioningMode HivePartitioningMode = "AUTO" + // StringHivePartitioningMode automatically infers partitioning keys and treats values as string. + StringHivePartitioningMode HivePartitioningMode = "STRINGS" + // CustomHivePartitioningMode allows custom definition of the external partitioning. + CustomHivePartitioningMode HivePartitioningMode = "CUSTOM" +) + +// HivePartitioningOptions defines the behavior of Hive partitioning +// when working with external data. +type HivePartitioningOptions struct { + + // Mode defines which hive partitioning mode to use when reading data. + Mode HivePartitioningMode + + // When hive partition detection is requested, a common prefix for + // all source uris should be supplied. The prefix must end immediately + // before the partition key encoding begins. + // + // For example, consider files following this data layout. + // gs://bucket/path_to_table/dt=2019-01-01/country=BR/id=7/file.avro + // gs://bucket/path_to_table/dt=2018-12-31/country=CA/id=3/file.avro + // + // When hive partitioning is requested with either AUTO or STRINGS + // detection, the common prefix can be either of + // gs://bucket/path_to_table or gs://bucket/path_to_table/ (trailing + // slash does not matter). + SourceURIPrefix string + + // If set to true, queries against this external table require + // a partition filter to be present that can perform partition + // elimination. Hive-partitioned load jobs with this field + // set to true will fail. + RequirePartitionFilter bool +} + +func (o *HivePartitioningOptions) toBQ() *bq.HivePartitioningOptions { + if o == nil { + return nil + } + return &bq.HivePartitioningOptions{ + Mode: string(o.Mode), + SourceUriPrefix: o.SourceURIPrefix, + RequirePartitionFilter: o.RequirePartitionFilter, + } +} + +func bqToHivePartitioningOptions(q *bq.HivePartitioningOptions) *HivePartitioningOptions { + if q == nil { + return nil + } + return &HivePartitioningOptions{ + Mode: HivePartitioningMode(q.Mode), + SourceURIPrefix: q.SourceUriPrefix, + RequirePartitionFilter: q.RequirePartitionFilter, + } +} diff --git a/vendor/cloud.google.com/go/bigquery/extract.go b/vendor/cloud.google.com/go/bigquery/extract.go new file mode 100644 index 000000000..ee4cbc495 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/extract.go @@ -0,0 +1,158 @@ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "context" + "time" + + "cloud.google.com/go/internal/trace" + bq "google.golang.org/api/bigquery/v2" +) + +// ExtractConfig holds the configuration for an extract job. +type ExtractConfig struct { + // Src is the table from which data will be extracted. + // Only one of Src or SrcModel should be specified. + Src *Table + + // SrcModel is the ML model from which the data will be extracted. + // Only one of Src or SrcModel should be specified. + SrcModel *Model + + // Dst is the destination into which the data will be extracted. + Dst *GCSReference + + // DisableHeader disables the printing of a header row in exported data. + DisableHeader bool + + // The labels associated with this job. + Labels map[string]string + + // For Avro-based extracts, controls whether logical type annotations are generated. + // + // Example: With this enabled, writing a BigQuery TIMESTAMP column will result in + // an integer column annotated with the appropriate timestamp-micros/millis annotation + // in the resulting Avro files. + UseAvroLogicalTypes bool + + // Sets a best-effort deadline on a specific job. If job execution exceeds this + // timeout, BigQuery may attempt to cancel this work automatically. + // + // This deadline cannot be adjusted or removed once the job is created. Consider + // using Job.Cancel in situations where you need more dynamic behavior. + // + // Experimental: this option is experimental and may be modified or removed in future versions, + // regardless of any other documented package stability guarantees. + JobTimeout time.Duration +} + +func (e *ExtractConfig) toBQ() *bq.JobConfiguration { + var printHeader *bool + if e.DisableHeader { + f := false + printHeader = &f + } + cfg := &bq.JobConfiguration{ + Labels: e.Labels, + Extract: &bq.JobConfigurationExtract{ + DestinationUris: append([]string{}, e.Dst.URIs...), + Compression: string(e.Dst.Compression), + DestinationFormat: string(e.Dst.DestinationFormat), + FieldDelimiter: e.Dst.FieldDelimiter, + + PrintHeader: printHeader, + UseAvroLogicalTypes: e.UseAvroLogicalTypes, + }, + JobTimeoutMs: e.JobTimeout.Milliseconds(), + } + if e.Src != nil { + cfg.Extract.SourceTable = e.Src.toBQ() + } + if e.SrcModel != nil { + cfg.Extract.SourceModel = e.SrcModel.toBQ() + } + return cfg +} + +func bqToExtractConfig(q *bq.JobConfiguration, c *Client) *ExtractConfig { + qe := q.Extract + return &ExtractConfig{ + Labels: q.Labels, + Dst: &GCSReference{ + URIs: qe.DestinationUris, + Compression: Compression(qe.Compression), + DestinationFormat: DataFormat(qe.DestinationFormat), + FileConfig: FileConfig{ + CSVOptions: CSVOptions{ + FieldDelimiter: qe.FieldDelimiter, + }, + }, + }, + DisableHeader: qe.PrintHeader != nil && !*qe.PrintHeader, + Src: bqToTable(qe.SourceTable, c), + SrcModel: bqToModel(qe.SourceModel, c), + UseAvroLogicalTypes: qe.UseAvroLogicalTypes, + JobTimeout: time.Duration(q.JobTimeoutMs) * time.Millisecond, + } +} + +// An Extractor extracts data from a BigQuery table into Google Cloud Storage. +type Extractor struct { + JobIDConfig + ExtractConfig + c *Client +} + +// ExtractorTo returns an Extractor which can be used to extract data from a +// BigQuery table into Google Cloud Storage. +// The returned Extractor may optionally be further configured before its Run method is called. +func (t *Table) ExtractorTo(dst *GCSReference) *Extractor { + return &Extractor{ + c: t.c, + ExtractConfig: ExtractConfig{ + Src: t, + Dst: dst, + }, + } +} + +// ExtractorTo returns an Extractor which can be persist a BigQuery Model into +// Google Cloud Storage. +// The returned Extractor may be further configured before its Run method is called. +func (m *Model) ExtractorTo(dst *GCSReference) *Extractor { + return &Extractor{ + c: m.c, + ExtractConfig: ExtractConfig{ + SrcModel: m, + Dst: dst, + }, + } +} + +// Run initiates an extract job. +func (e *Extractor) Run(ctx context.Context) (j *Job, err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Extractor.Run") + defer func() { trace.EndSpan(ctx, err) }() + + return e.c.insertJob(ctx, e.newJob(), nil) +} + +func (e *Extractor) newJob() *bq.Job { + return &bq.Job{ + JobReference: e.JobIDConfig.createJobRef(e.c), + Configuration: e.ExtractConfig.toBQ(), + } +} diff --git a/vendor/cloud.google.com/go/bigquery/file.go b/vendor/cloud.google.com/go/bigquery/file.go new file mode 100644 index 000000000..9afdbb535 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/file.go @@ -0,0 +1,167 @@ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "io" + + bq "google.golang.org/api/bigquery/v2" +) + +// A ReaderSource is a source for a load operation that gets +// data from an io.Reader. +// +// When a ReaderSource is part of a LoadConfig obtained via Job.Config, +// its internal io.Reader will be nil, so it cannot be used for a +// subsequent load operation. +type ReaderSource struct { + r io.Reader + FileConfig +} + +// NewReaderSource creates a ReaderSource from an io.Reader. You may +// optionally configure properties on the ReaderSource that describe the +// data being read, before passing it to Table.LoaderFrom. +func NewReaderSource(r io.Reader) *ReaderSource { + return &ReaderSource{r: r} +} + +func (r *ReaderSource) populateLoadConfig(lc *bq.JobConfigurationLoad) io.Reader { + r.FileConfig.populateLoadConfig(lc) + return r.r +} + +// FileConfig contains configuration options that pertain to files, typically +// text files that require interpretation to be used as a BigQuery table. A +// file may live in Google Cloud Storage (see GCSReference), or it may be +// loaded into a table via the Table.LoaderFromReader. +type FileConfig struct { + // SourceFormat is the format of the data to be read. + // Allowed values are: Avro, CSV, DatastoreBackup, JSON, ORC, and Parquet. The default is CSV. + SourceFormat DataFormat + + // Indicates if we should automatically infer the options and + // schema for CSV and JSON sources. + AutoDetect bool + + // MaxBadRecords is the maximum number of bad records that will be ignored + // when reading data. + MaxBadRecords int64 + + // IgnoreUnknownValues causes values not matching the schema to be + // tolerated. Unknown values are ignored. For CSV this ignores extra values + // at the end of a line. For JSON this ignores named values that do not + // match any column name. If this field is not set, records containing + // unknown values are treated as bad records. The MaxBadRecords field can + // be used to customize how bad records are handled. + IgnoreUnknownValues bool + + // Schema describes the data. It is required when reading CSV or JSON data, + // unless the data is being loaded into a table that already exists. + Schema Schema + + // Additional options for CSV files. + CSVOptions + + // Additional options for Parquet files. + ParquetOptions *ParquetOptions + + // Additional options for Avro files. + AvroOptions *AvroOptions +} + +func (fc *FileConfig) populateLoadConfig(conf *bq.JobConfigurationLoad) { + conf.SkipLeadingRows = fc.SkipLeadingRows + conf.SourceFormat = string(fc.SourceFormat) + conf.Autodetect = fc.AutoDetect + conf.AllowJaggedRows = fc.AllowJaggedRows + conf.AllowQuotedNewlines = fc.AllowQuotedNewlines + conf.Encoding = string(fc.Encoding) + conf.FieldDelimiter = fc.FieldDelimiter + conf.IgnoreUnknownValues = fc.IgnoreUnknownValues + conf.MaxBadRecords = fc.MaxBadRecords + conf.NullMarker = fc.NullMarker + conf.PreserveAsciiControlCharacters = fc.PreserveASCIIControlCharacters + if fc.Schema != nil { + conf.Schema = fc.Schema.toBQ() + } + if fc.ParquetOptions != nil { + conf.ParquetOptions = &bq.ParquetOptions{ + EnumAsString: fc.ParquetOptions.EnumAsString, + EnableListInference: fc.ParquetOptions.EnableListInference, + } + } + if fc.AvroOptions != nil { + conf.UseAvroLogicalTypes = fc.AvroOptions.UseAvroLogicalTypes + } + conf.Quote = fc.quote() +} + +func bqPopulateFileConfig(conf *bq.JobConfigurationLoad, fc *FileConfig) { + fc.SourceFormat = DataFormat(conf.SourceFormat) + fc.AutoDetect = conf.Autodetect + fc.MaxBadRecords = conf.MaxBadRecords + fc.IgnoreUnknownValues = conf.IgnoreUnknownValues + fc.Schema = bqToSchema(conf.Schema) + fc.SkipLeadingRows = conf.SkipLeadingRows + fc.AllowJaggedRows = conf.AllowJaggedRows + fc.AllowQuotedNewlines = conf.AllowQuotedNewlines + fc.Encoding = Encoding(conf.Encoding) + fc.FieldDelimiter = conf.FieldDelimiter + fc.CSVOptions.NullMarker = conf.NullMarker + fc.CSVOptions.PreserveASCIIControlCharacters = conf.PreserveAsciiControlCharacters + fc.CSVOptions.setQuote(conf.Quote) +} + +func (fc *FileConfig) populateExternalDataConfig(conf *bq.ExternalDataConfiguration) { + format := fc.SourceFormat + if format == "" { + // Format must be explicitly set for external data sources. + format = CSV + } + conf.Autodetect = fc.AutoDetect + conf.IgnoreUnknownValues = fc.IgnoreUnknownValues + conf.MaxBadRecords = fc.MaxBadRecords + conf.SourceFormat = string(format) + if fc.Schema != nil { + conf.Schema = fc.Schema.toBQ() + } + if format == CSV { + fc.CSVOptions.populateExternalDataConfig(conf) + } + if fc.AvroOptions != nil { + conf.AvroOptions = &bq.AvroOptions{ + UseAvroLogicalTypes: fc.AvroOptions.UseAvroLogicalTypes, + } + } + if fc.ParquetOptions != nil { + conf.ParquetOptions = &bq.ParquetOptions{ + EnumAsString: fc.ParquetOptions.EnumAsString, + EnableListInference: fc.ParquetOptions.EnableListInference, + } + } +} + +// Encoding specifies the character encoding of data to be loaded into BigQuery. +// See https://cloud.google.com/bigquery/docs/reference/v2/jobs#configuration.load.encoding +// for more details about how this is used. +type Encoding string + +const ( + // UTF_8 specifies the UTF-8 encoding type. + UTF_8 Encoding = "UTF-8" + // ISO_8859_1 specifies the ISO-8859-1 encoding type. + ISO_8859_1 Encoding = "ISO-8859-1" +) diff --git a/vendor/cloud.google.com/go/bigquery/gcs.go b/vendor/cloud.google.com/go/bigquery/gcs.go new file mode 100644 index 000000000..977fd0090 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/gcs.go @@ -0,0 +1,81 @@ +// Copyright 2015 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "io" + + bq "google.golang.org/api/bigquery/v2" +) + +// GCSReference is a reference to one or more Google Cloud Storage objects, which together constitute +// an input or output to a BigQuery operation. +type GCSReference struct { + // URIs refer to Google Cloud Storage objects. + URIs []string + + FileConfig + + // DestinationFormat is the format to use when writing exported files. + // Allowed values are: CSV, Avro, JSON. The default is CSV. + // CSV is not supported for tables with nested or repeated fields. + DestinationFormat DataFormat + + // Compression specifies the type of compression to apply when writing data + // to Google Cloud Storage, or using this GCSReference as an ExternalData + // source with CSV or JSON SourceFormat. Default is None. + // + // Avro files allow additional compression types: DEFLATE and SNAPPY. + Compression Compression +} + +// NewGCSReference constructs a reference to one or more Google Cloud Storage objects, which together constitute a data source or destination. +// In the simple case, a single URI in the form gs://bucket/object may refer to a single GCS object. +// Data may also be split into mutiple files, if multiple URIs or URIs containing wildcards are provided. +// Each URI may contain one '*' wildcard character, which (if present) must come after the bucket name. +// For more information about the treatment of wildcards and multiple URIs, +// see https://cloud.google.com/bigquery/exporting-data-from-bigquery#exportingmultiple +func NewGCSReference(uri ...string) *GCSReference { + return &GCSReference{URIs: uri} +} + +// Compression is the type of compression to apply when writing data to Google Cloud Storage. +type Compression string + +const ( + // None specifies no compression. + None Compression = "NONE" + // Gzip specifies gzip compression. + Gzip Compression = "GZIP" + // Deflate specifies DEFLATE compression for Avro files. + Deflate Compression = "DEFLATE" + // Snappy specifies SNAPPY compression for Avro files. + Snappy Compression = "SNAPPY" +) + +func (gcs *GCSReference) populateLoadConfig(lc *bq.JobConfigurationLoad) io.Reader { + lc.SourceUris = gcs.URIs + gcs.FileConfig.populateLoadConfig(lc) + return nil +} + +func (gcs *GCSReference) toBQ() bq.ExternalDataConfiguration { + conf := bq.ExternalDataConfiguration{ + Compression: string(gcs.Compression), + SourceUris: append([]string{}, gcs.URIs...), + } + gcs.FileConfig.populateExternalDataConfig(&conf) + return conf +} diff --git a/vendor/cloud.google.com/go/bigquery/iam.go b/vendor/cloud.google.com/go/bigquery/iam.go new file mode 100644 index 000000000..00059345b --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/iam.go @@ -0,0 +1,142 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "context" + "errors" + "fmt" + + "cloud.google.com/go/iam" + "cloud.google.com/go/iam/apiv1/iampb" + "cloud.google.com/go/internal/trace" + bq "google.golang.org/api/bigquery/v2" +) + +// IAM provides access to an iam.Handle that allows access to IAM functionality for +// the given BigQuery table. For more information, see +// https://pkg.go.dev/cloud.google.com/go/iam +func (t *Table) IAM() *iam.Handle { + return iam.InternalNewHandleClient(&bqIAMClient{ + bqs: t.c.bqs, + }, fmt.Sprintf("projects/%s/datasets/%s/tables/%s", + t.ProjectID, t.DatasetID, t.TableID)) +} + +// bqIAMClient is a client that satisfies the IAM "client" interface. +// +// This client has an explicit assumption that it's only working with Table resources. +type bqIAMClient struct { + bqs *bq.Service +} + +func (c *bqIAMClient) Get(ctx context.Context, resource string) (p *iampb.Policy, err error) { + return c.GetWithVersion(ctx, resource, 1) +} + +func (c *bqIAMClient) GetWithVersion(ctx context.Context, resource string, requestedPolicyVersion int32) (p *iampb.Policy, err error) { + if requestedPolicyVersion > 1 { + return nil, errors.New("bigquery: only IAM policy version 1 is supported") + } + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.IAM.Get") + defer func() { trace.EndSpan(ctx, err) }() + + iamReq := &bq.GetIamPolicyRequest{ + Options: &bq.GetPolicyOptions{ + RequestedPolicyVersion: int64(requestedPolicyVersion), + }, + } + call := c.bqs.Tables.GetIamPolicy(resource, iamReq).Context(ctx) + setClientHeader(call.Header()) + + var bqp *bq.Policy + err = runWithRetry(ctx, func() error { + bqp, err = call.Do() + return err + }) + if err != nil { + return nil, err + } + return iamFromBigQueryPolicy(bqp), nil +} + +func (c *bqIAMClient) Set(ctx context.Context, resource string, p *iampb.Policy) (err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.IAM.Set") + defer func() { trace.EndSpan(ctx, err) }() + + bqp := iamToBigQueryPolicy(p) + call := c.bqs.Tables.SetIamPolicy(resource, &bq.SetIamPolicyRequest{Policy: bqp}).Context(ctx) + setClientHeader(call.Header()) + return runWithRetry(ctx, func() error { + _, err := call.Do() + return err + }) +} + +func (c *bqIAMClient) Test(ctx context.Context, resource string, perms []string) (p []string, err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.IAM.Test") + defer func() { trace.EndSpan(ctx, err) }() + + call := c.bqs.Tables.TestIamPermissions(resource, &bq.TestIamPermissionsRequest{Permissions: perms}).Context(ctx) + setClientHeader(call.Header()) + + var res *bq.TestIamPermissionsResponse + err = runWithRetry(ctx, func() error { + res, err = call.Do() + return err + }) + if err != nil { + return nil, err + } + return res.Permissions, nil +} + +func iamToBigQueryPolicy(ip *iampb.Policy) *bq.Policy { + return &bq.Policy{ + Bindings: iamToBigQueryBindings(ip.Bindings), + Etag: string(ip.Etag), + Version: int64(ip.Version), + } +} + +func iamToBigQueryBindings(ibs []*iampb.Binding) []*bq.Binding { + var bqBindings []*bq.Binding + for _, ib := range ibs { + bqBindings = append(bqBindings, &bq.Binding{ + Role: ib.Role, + Members: ib.Members, + }) + } + return bqBindings +} + +func iamFromBigQueryPolicy(bqPolicy *bq.Policy) *iampb.Policy { + return &iampb.Policy{ + Bindings: iamFromBigQueryBindings(bqPolicy.Bindings), + Etag: []byte(bqPolicy.Etag), + Version: int32(bqPolicy.Version), + } +} + +func iamFromBigQueryBindings(bqBindings []*bq.Binding) []*iampb.Binding { + var ibs []*iampb.Binding + for _, bqb := range bqBindings { + ibs = append(ibs, &iampb.Binding{ + Role: bqb.Role, + Members: bqb.Members, + }) + } + return ibs +} diff --git a/vendor/cloud.google.com/go/bigquery/inserter.go b/vendor/cloud.google.com/go/bigquery/inserter.go new file mode 100644 index 000000000..ddac67903 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/inserter.go @@ -0,0 +1,249 @@ +// Copyright 2015 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "context" + "errors" + "fmt" + "reflect" + + "cloud.google.com/go/internal/trace" + bq "google.golang.org/api/bigquery/v2" +) + +// NoDedupeID indicates a streaming insert row wants to opt out of best-effort +// deduplication. +// It is EXPERIMENTAL and subject to change or removal without notice. +const NoDedupeID = "NoDedupeID" + +// An Inserter does streaming inserts into a BigQuery table. +// It is safe for concurrent use. +type Inserter struct { + t *Table + + // SkipInvalidRows causes rows containing invalid data to be silently + // ignored. The default value is false, which causes the entire request to + // fail if there is an attempt to insert an invalid row. + SkipInvalidRows bool + + // IgnoreUnknownValues causes values not matching the schema to be ignored. + // The default value is false, which causes records containing such values + // to be treated as invalid records. + IgnoreUnknownValues bool + + // A TableTemplateSuffix allows Inserters to create tables automatically. + // + // Experimental: this option is experimental and may be modified or removed in future versions, + // regardless of any other documented package stability guarantees. In general, + // the BigQuery team recommends the use of partitioned tables over sharding + // tables by suffix. + // + // When you specify a suffix, the table you upload data to + // will be used as a template for creating a new table, with the same schema, + // called + . + // + // More information is available at + // https://cloud.google.com/bigquery/streaming-data-into-bigquery#template-tables + TableTemplateSuffix string +} + +// Inserter returns an Inserter that can be used to append rows to t. +// The returned Inserter may optionally be further configured before its Put method is called. +// +// To stream rows into a date-partitioned table at a particular date, add the +// $yyyymmdd suffix to the table name when constructing the Table. +func (t *Table) Inserter() *Inserter { + return &Inserter{t: t} +} + +// Uploader calls Inserter. +// Deprecated: use Table.Inserter instead. +func (t *Table) Uploader() *Inserter { return t.Inserter() } + +// Put uploads one or more rows to the BigQuery service. +// +// If src is ValueSaver, then its Save method is called to produce a row for uploading. +// +// If src is a struct or pointer to a struct, then a schema is inferred from it +// and used to create a StructSaver. The InsertID of the StructSaver will be +// empty. +// +// If src is a slice of ValueSavers, structs, or struct pointers, then each +// element of the slice is treated as above, and multiple rows are uploaded. +// +// Put returns a PutMultiError if one or more rows failed to be uploaded. +// The PutMultiError contains a RowInsertionError for each failed row. +// +// Put will retry on temporary errors (see +// https://cloud.google.com/bigquery/troubleshooting-errors). This can result +// in duplicate rows if you do not use insert IDs. Also, if the error persists, +// the call will run indefinitely. Pass a context with a timeout to prevent +// hanging calls. +func (u *Inserter) Put(ctx context.Context, src interface{}) (err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Inserter.Put") + defer func() { trace.EndSpan(ctx, err) }() + + savers, err := valueSavers(src) + if err != nil { + return err + } + return u.putMulti(ctx, savers) +} + +func valueSavers(src interface{}) ([]ValueSaver, error) { + saver, ok, err := toValueSaver(src) + if err != nil { + return nil, err + } + if ok { + return []ValueSaver{saver}, nil + } + srcVal := reflect.ValueOf(src) + if srcVal.Kind() != reflect.Slice { + return nil, fmt.Errorf("%T is not a ValueSaver, struct, struct pointer, or slice", src) + + } + var savers []ValueSaver + for i := 0; i < srcVal.Len(); i++ { + s := srcVal.Index(i).Interface() + saver, ok, err := toValueSaver(s) + if err != nil { + return nil, err + } + if !ok { + return nil, fmt.Errorf("src[%d] has type %T, which is not a ValueSaver, struct or struct pointer", i, s) + } + savers = append(savers, saver) + } + return savers, nil +} + +// Make a ValueSaver from x, which must implement ValueSaver already +// or be a struct or pointer to struct. +func toValueSaver(x interface{}) (ValueSaver, bool, error) { + if _, ok := x.(StructSaver); ok { + return nil, false, errors.New("bigquery: use &StructSaver, not StructSaver") + } + var insertID string + // Handle StructSavers specially so we can infer the schema if necessary. + if ss, ok := x.(*StructSaver); ok && ss.Schema == nil { + x = ss.Struct + insertID = ss.InsertID + // Fall through so we can infer the schema. + } + if saver, ok := x.(ValueSaver); ok { + return saver, ok, nil + } + v := reflect.ValueOf(x) + // Support Put with []interface{} + if v.Kind() == reflect.Interface { + v = v.Elem() + } + if v.Kind() == reflect.Ptr { + v = v.Elem() + } + if v.Kind() != reflect.Struct { + return nil, false, nil + } + schema, err := inferSchemaReflectCached(v.Type()) + if err != nil { + return nil, false, err + } + return &StructSaver{ + Struct: x, + InsertID: insertID, + Schema: schema, + }, true, nil +} + +func (u *Inserter) putMulti(ctx context.Context, src []ValueSaver) error { + req, err := u.newInsertRequest(src) + if err != nil { + return err + } + if req == nil { + return nil + } + call := u.t.c.bqs.Tabledata.InsertAll(u.t.ProjectID, u.t.DatasetID, u.t.TableID, req).Context(ctx) + setClientHeader(call.Header()) + var res *bq.TableDataInsertAllResponse + err = runWithRetry(ctx, func() (err error) { + ctx = trace.StartSpan(ctx, "bigquery.tabledata.insertAll") + res, err = call.Do() + trace.EndSpan(ctx, err) + return err + }) + if err != nil { + return err + } + return handleInsertErrors(res.InsertErrors, req.Rows) +} + +func (u *Inserter) newInsertRequest(savers []ValueSaver) (*bq.TableDataInsertAllRequest, error) { + if savers == nil { // If there are no rows, do nothing. + return nil, nil + } + req := &bq.TableDataInsertAllRequest{ + TemplateSuffix: u.TableTemplateSuffix, + IgnoreUnknownValues: u.IgnoreUnknownValues, + SkipInvalidRows: u.SkipInvalidRows, + } + for _, saver := range savers { + row, insertID, err := saver.Save() + if err != nil { + return nil, err + } + if insertID == NoDedupeID { + // User wants to opt-out of sending deduplication ID. + insertID = "" + } else if insertID == "" { + insertID = randomIDFn() + } + m := make(map[string]bq.JsonValue) + for k, v := range row { + m[k] = bq.JsonValue(v) + } + req.Rows = append(req.Rows, &bq.TableDataInsertAllRequestRows{ + InsertId: insertID, + Json: m, + }) + } + return req, nil +} + +func handleInsertErrors(ierrs []*bq.TableDataInsertAllResponseInsertErrors, rows []*bq.TableDataInsertAllRequestRows) error { + if len(ierrs) == 0 { + return nil + } + var errs PutMultiError + for _, e := range ierrs { + if int(e.Index) >= len(rows) { + return fmt.Errorf("internal error: unexpected row index: %v", e.Index) + } + rie := RowInsertionError{ + InsertID: rows[e.Index].InsertId, + RowIndex: int(e.Index), + } + for _, errp := range e.Errors { + rie.Errors = append(rie.Errors, bqToError(errp)) + } + errs = append(errs, rie) + } + return errs +} + +// Uploader is an obsolete name for Inserter. +type Uploader = Inserter diff --git a/vendor/cloud.google.com/go/bigquery/internal/query/order.go b/vendor/cloud.google.com/go/bigquery/internal/query/order.go new file mode 100644 index 000000000..a634210c6 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/internal/query/order.go @@ -0,0 +1,67 @@ +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package query + +import ( + "strings" +) + +type qnode struct { + query string + children []*qnode +} + +// HasOrderedResults checks if a given SQL query returns ordered results. +// This function uses a naive approach of checking the root level query +// ( ignoring subqueries, functions calls, etc ) and checking +// if it contains an ORDER BY clause. +func HasOrderedResults(sql string) bool { + cleanedQuery := strings.TrimSpace(sql) + if !strings.HasPrefix(cleanedQuery, "(") { + cleanedQuery = "(" + cleanedQuery + ")" + } + root := &qnode{query: cleanedQuery, children: []*qnode{}} + curNode := root + indexStack := []int{} + nodeStack := []*qnode{} + for i, c := range cleanedQuery { + if c == '(' { + indexStack = append(indexStack, i) + nextNode := &qnode{children: []*qnode{}} + curNode.children = append(curNode.children, nextNode) + nodeStack = append(nodeStack, curNode) + curNode = nextNode + } + if c == ')' { + if len(indexStack) == 0 { + // unbalanced + return false + } + start := indexStack[len(indexStack)-1] + indexStack = indexStack[:len(indexStack)-1] + + curNode.query = cleanedQuery[start+1 : i] + + curNode = nodeStack[len(nodeStack)-1] + nodeStack = nodeStack[:len(nodeStack)-1] + } + } + curNode = root.children[0] + q := curNode.query + for _, c := range curNode.children { + q = strings.Replace(q, c.query, "", 1) + } + return strings.Contains(strings.ToUpper(q), "ORDER BY") +} diff --git a/vendor/cloud.google.com/go/bigquery/internal/version.go b/vendor/cloud.google.com/go/bigquery/internal/version.go new file mode 100644 index 000000000..5145d8203 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/internal/version.go @@ -0,0 +1,19 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package internal is used to manage versioning of the released library. +package internal + +// Version is the current tagged release of the library. +const Version = "1.60.0" diff --git a/vendor/cloud.google.com/go/bigquery/intervalvalue.go b/vendor/cloud.google.com/go/bigquery/intervalvalue.go new file mode 100644 index 000000000..810f795fb --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/intervalvalue.go @@ -0,0 +1,321 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "bytes" + "fmt" + "strconv" + "time" +) + +// IntervalValue is a go type for representing BigQuery INTERVAL values. +// Intervals are represented using three distinct parts: +// * Years and Months +// * Days +// * Time (Hours/Mins/Seconds/Fractional Seconds). +// +// More information about BigQuery INTERVAL types can be found at: +// https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#interval_type +// +// IntervalValue is EXPERIMENTAL and subject to change or removal without notice. +type IntervalValue struct { + // In canonical form, Years and Months share a consistent sign and reduced + // to avoid large month values. + Years int32 + Months int32 + + // In canonical form, Days are independent of the other parts and can have it's + // own sign. There is no attempt to reduce larger Day values into the Y-M part. + Days int32 + + // In canonical form, the time parts all share a consistent sign and are reduced. + Hours int32 + Minutes int32 + Seconds int32 + // This represents the fractional seconds as nanoseconds. + SubSecondNanos int32 +} + +// String returns string representation of the interval value using the canonical format. +// The canonical format is as follows: +// +// [sign]Y-M [sign]D [sign]H:M:S[.F] +func (iv *IntervalValue) String() string { + // Don't canonicalize the current value. Instead, if it's not canonical, + // compute the canonical form and use that. + src := iv + if !iv.IsCanonical() { + src = iv.Canonicalize() + } + out := fmt.Sprintf("%d-%d %d %d:%d:%d", src.Years, int32abs(src.Months), src.Days, src.Hours, int32abs(src.Minutes), int32abs(src.Seconds)) + if src.SubSecondNanos != 0 { + mantStr := fmt.Sprintf("%09d", src.SubSecondNanos) + for len(mantStr) > 0 && mantStr[len(mantStr)-1:] == "0" { + mantStr = mantStr[0 : len(mantStr)-1] + } + out = fmt.Sprintf("%s.%s", out, mantStr) + } + return out +} + +// intervalPart is used for parsing string representations. +type intervalPart int + +const ( + yearsPart = iota + monthsPart + daysPart + hoursPart + minutesPart + secondsPart + subsecsPart +) + +func (i intervalPart) String() string { + knownParts := []string{"YEARS", "MONTHS", "DAYS", "HOURS", "MINUTES", "SECONDS", "SUBSECONDS"} + if i < 0 || int(i) > len(knownParts) { + return fmt.Sprintf("UNKNOWN(%d)", i) + } + return knownParts[i] +} + +// canonicalParts indicates the parse order for canonical format. +var canonicalParts = []intervalPart{yearsPart, monthsPart, daysPart, hoursPart, minutesPart, secondsPart, subsecsPart} + +// ParseInterval parses an interval in canonical string format and returns the IntervalValue it represents. +func ParseInterval(value string) (*IntervalValue, error) { + iVal := &IntervalValue{} + for _, part := range canonicalParts { + remaining, v, err := getPartValue(part, value) + if err != nil { + return nil, err + } + switch part { + case yearsPart: + iVal.Years = v + case monthsPart: + iVal.Months = v + if iVal.Years < 0 { + iVal.Months = -v + } + case daysPart: + iVal.Days = v + case hoursPart: + iVal.Hours = v + case minutesPart: + iVal.Minutes = v + if iVal.Hours < 0 { + iVal.Minutes = -v + } + case secondsPart: + iVal.Seconds = v + if iVal.Hours < 0 { + iVal.Seconds = -v + } + case subsecsPart: + iVal.SubSecondNanos = v + if iVal.Hours < 0 { + iVal.SubSecondNanos = -v + } + default: + return nil, fmt.Errorf("encountered invalid part %s during parse", part) + } + value = remaining + } + return iVal, nil +} + +func getPartValue(part intervalPart, s string) (string, int32, error) { + s = trimPrefix(part, s) + return getNumVal(part, s) +} + +// trimPrefix removes formatting prefix relevant to the given type. +func trimPrefix(part intervalPart, s string) string { + var trimByte byte + switch part { + case yearsPart, daysPart, hoursPart: + trimByte = byte(' ') + case monthsPart: + trimByte = byte('-') + case minutesPart, secondsPart: + trimByte = byte(':') + case subsecsPart: + trimByte = byte('.') + } + for len(s) > 0 && s[0] == trimByte { + s = s[1:] + } + return s +} + +func getNumVal(part intervalPart, s string) (string, int32, error) { + + allowedVals := []byte("0123456789") + var allowedSign bool + captured := "" + switch part { + case yearsPart, daysPart, hoursPart: + allowedSign = true + } + // capture sign prefix +/- + if len(s) > 0 && allowedSign { + switch s[0] { + case '-': + captured = "-" + s = s[1:] + case '+': + s = s[1:] + } + } + for len(s) > 0 && bytes.IndexByte(allowedVals, s[0]) >= 0 { + captured = captured + string(s[0]) + s = s[1:] + } + + if len(captured) == 0 { + if part == subsecsPart { + return s, 0, nil + } + return "", 0, fmt.Errorf("no value parsed for part %s", part.String()) + } + // special case: subsecs is a mantissa, convert it to nanos + if part == subsecsPart { + parsed, err := strconv.ParseFloat(fmt.Sprintf("0.%s", captured), 64) + if err != nil { + return "", 0, fmt.Errorf("couldn't parse %s as %s", captured, part.String()) + } + return s, int32(parsed * 1e9), nil + } + parsed, err := strconv.ParseInt(captured, 10, 32) + if err != nil { + return "", 0, fmt.Errorf("error parsing value %s for %s: %w", captured, part.String(), err) + } + return s, int32(parsed), nil +} + +// IntervalValueFromDuration converts a time.Duration to an IntervalType representation. +// +// The converted duration only leverages the hours/minutes/seconds part of the interval, +// the other parts representing days, months, and years are not used. +func IntervalValueFromDuration(in time.Duration) *IntervalValue { + nanos := in.Nanoseconds() + out := &IntervalValue{} + out.Hours = int32(nanos / 3600 / 1e9) + nanos = nanos - (int64(out.Hours) * 3600 * 1e9) + out.Minutes = int32(nanos / 60 / 1e9) + nanos = nanos - (int64(out.Minutes) * 60 * 1e9) + out.Seconds = int32(nanos / 1e9) + nanos = nanos - (int64(out.Seconds) * 1e9) + out.SubSecondNanos = int32(nanos) + return out +} + +// ToDuration converts an interval to a time.Duration value. +// +// For the purposes of conversion: +// Years are normalized to 12 months. +// Months are normalized to 30 days. +// Days are normalized to 24 hours. +func (iv *IntervalValue) ToDuration() time.Duration { + var accum int64 + accum = 12*int64(iv.Years) + int64(iv.Months) + // widen to days + accum = accum*30 + int64(iv.Days) + // hours + accum = accum*24 + int64(iv.Hours) + // minutes + accum = accum*60 + int64(iv.Minutes) + // seconds + accum = accum*60 + int64(iv.Seconds) + // subsecs + accum = accum*1e9 + int64(iv.SubSecondNanos*1e9) + return time.Duration(accum) +} + +// Canonicalize returns an IntervalValue where signs for elements in the +// Y-M and H:M:S.F are consistent and values are normalized/reduced. +// +// Canonical form enables more consistent comparison of the encoded +// interval. For example, encoding an interval with 12 months is equivalent +// to an interval of 1 year. +func (iv *IntervalValue) Canonicalize() *IntervalValue { + newIV := &IntervalValue{iv.Years, iv.Months, iv.Days, iv.Hours, iv.Minutes, iv.Seconds, iv.SubSecondNanos} + // canonicalize Y-M part + totalMonths := iv.Years*12 + iv.Months + newIV.Years = totalMonths / 12 + totalMonths = totalMonths - (newIV.Years * 12) + newIV.Months = totalMonths % 12 + + // No canonicalization for the Days part. + + // canonicalize time part by switching to Nanos. + totalNanos := int64(iv.Hours)*3600*1e9 + + int64(iv.Minutes)*60*1e9 + + int64(iv.Seconds)*1e9 + + int64(iv.SubSecondNanos) + + // Reduce to parts. + newIV.Hours = int32(totalNanos / 60 / 60 / 1e9) + totalNanos = totalNanos - (int64(newIV.Hours) * 3600 * 1e9) + newIV.Minutes = int32(totalNanos / 60 / 1e9) + totalNanos = totalNanos - (int64(newIV.Minutes) * 60 * 1e9) + newIV.Seconds = int32(totalNanos / 1e9) + totalNanos = totalNanos - (int64(newIV.Seconds) * 1e9) + newIV.SubSecondNanos = int32(totalNanos) + return newIV +} + +// IsCanonical evaluates whether the current representation is in canonical +// form. +func (iv *IntervalValue) IsCanonical() bool { + if !sameSign(iv.Years, iv.Months) || + !sameSign(iv.Hours, iv.Minutes) { + return false + } + // We allow large days and hours values, because they are within different parts. + if int32abs(iv.Months) > 12 || + int32abs(iv.Minutes) > 60 || + int32abs(iv.Seconds) > 60 || + int32abs(iv.SubSecondNanos) > 1e9 { + return false + } + // TODO: We don't currently validate that each part represents value smaller than 10k years. + return true +} + +func int32abs(x int32) int32 { + if x < 0 { + return -x + } + return x +} + +func sameSign(nums ...int32) bool { + var pos, neg int + for _, n := range nums { + if n > 0 { + pos = pos + 1 + } + if n < 0 { + neg = neg + 1 + } + } + if pos > 0 && neg > 0 { + return false + } + return true +} diff --git a/vendor/cloud.google.com/go/bigquery/iterator.go b/vendor/cloud.google.com/go/bigquery/iterator.go new file mode 100644 index 000000000..9d177d1b8 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/iterator.go @@ -0,0 +1,413 @@ +// Copyright 2015 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "context" + "errors" + "fmt" + "reflect" + + bq "google.golang.org/api/bigquery/v2" + "google.golang.org/api/googleapi" + "google.golang.org/api/iterator" +) + +// Construct a RowIterator. +func newRowIterator(ctx context.Context, src *rowSource, pf pageFetcher) *RowIterator { + it := &RowIterator{ + ctx: ctx, + src: src, + pf: pf, + } + it.pageInfo, it.nextFunc = iterator.NewPageInfo( + it.fetch, + func() int { return len(it.rows) }, + func() interface{} { r := it.rows; it.rows = nil; return r }) + return it +} + +// A RowIterator provides access to the result of a BigQuery lookup. +type RowIterator struct { + ctx context.Context + src *rowSource + + arrowIterator ArrowIterator + arrowDecoder *arrowDecoder + + pageInfo *iterator.PageInfo + nextFunc func() error + pf pageFetcher + + // StartIndex can be set before the first call to Next. If PageInfo().Token + // is also set, StartIndex is ignored. If Storage API is enabled, + // StartIndex is also ignored because is not supported. IsAccelerated() + // method can be called to check if Storage API is enabled for the RowIterator. + StartIndex uint64 + + // The schema of the table. + // In some scenarios it will only be available after the first + // call to Next(), like when a call to Query.Read uses + // the jobs.query API for an optimized query path. + Schema Schema + + // The total number of rows in the result. + // In some scenarios it will only be available after the first + // call to Next(), like when a call to Query.Read uses + // the jobs.query API for an optimized query path. + // May be zero just after rows were inserted. + TotalRows uint64 + + rows [][]Value + structLoader structLoader // used to populate a pointer to a struct +} + +// SourceJob returns an instance of a Job if the RowIterator is backed by a query, +// or a nil. +func (ri *RowIterator) SourceJob() *Job { + if ri.src == nil { + return nil + } + if ri.src.j == nil { + return nil + } + return &Job{ + c: ri.src.j.c, + projectID: ri.src.j.projectID, + location: ri.src.j.location, + jobID: ri.src.j.jobID, + } +} + +// QueryID returns a query ID if available, or an empty string. +func (ri *RowIterator) QueryID() string { + if ri.src == nil { + return "" + } + return ri.src.queryID +} + +// We declare a function signature for fetching results. The primary reason +// for this is to enable us to swap out the fetch function with alternate +// implementations (e.g. to enable testing). +type pageFetcher func(ctx context.Context, _ *rowSource, _ Schema, startIndex uint64, pageSize int64, pageToken string) (*fetchPageResult, error) + +// Next loads the next row into dst. Its return value is iterator.Done if there +// are no more results. Once Next returns iterator.Done, all subsequent calls +// will return iterator.Done. +// +// dst may implement ValueLoader, or may be a *[]Value, *map[string]Value, or struct pointer. +// +// If dst is a *[]Value, it will be set to new []Value whose i'th element +// will be populated with the i'th column of the row. +// +// If dst is a *map[string]Value, a new map will be created if dst is nil. Then +// for each schema column name, the map key of that name will be set to the column's +// value. STRUCT types (RECORD types or nested schemas) become nested maps. +// +// If dst is pointer to a struct, each column in the schema will be matched +// with an exported field of the struct that has the same name, ignoring case. +// Unmatched schema columns and struct fields will be ignored. +// +// Each BigQuery column type corresponds to one or more Go types; a matching struct +// field must be of the correct type. The correspondences are: +// +// STRING string +// BOOL bool +// INTEGER int, int8, int16, int32, int64, uint8, uint16, uint32 +// FLOAT float32, float64 +// BYTES []byte +// TIMESTAMP time.Time +// DATE civil.Date +// TIME civil.Time +// DATETIME civil.DateTime +// NUMERIC *big.Rat +// BIGNUMERIC *big.Rat +// +// The big.Rat type supports numbers of arbitrary size and precision. +// See https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#numeric-type +// for more on NUMERIC. +// +// A repeated field corresponds to a slice or array of the element type. A STRUCT +// type (RECORD or nested schema) corresponds to a nested struct or struct pointer. +// All calls to Next on the same iterator must use the same struct type. +// +// It is an error to attempt to read a BigQuery NULL value into a struct field, +// unless the field is of type []byte or is one of the special Null types: NullInt64, +// NullFloat64, NullBool, NullString, NullTimestamp, NullDate, NullTime or +// NullDateTime. You can also use a *[]Value or *map[string]Value to read from a +// table with NULLs. +func (it *RowIterator) Next(dst interface{}) error { + var vl ValueLoader + switch dst := dst.(type) { + case ValueLoader: + vl = dst + case *[]Value: + vl = (*valueList)(dst) + case *map[string]Value: + vl = (*valueMap)(dst) + default: + if !isStructPtr(dst) { + return fmt.Errorf("bigquery: cannot convert %T to ValueLoader (need pointer to []Value, map[string]Value, or struct)", dst) + } + } + if err := it.nextFunc(); err != nil { + return err + } + row := it.rows[0] + it.rows = it.rows[1:] + + if vl == nil { + // This can only happen if dst is a pointer to a struct. We couldn't + // set vl above because we need the schema. + if err := it.structLoader.set(dst, it.Schema); err != nil { + return err + } + vl = &it.structLoader + } + return vl.Load(row, it.Schema) +} + +func isStructPtr(x interface{}) bool { + t := reflect.TypeOf(x) + return t.Kind() == reflect.Ptr && t.Elem().Kind() == reflect.Struct +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +// Currently pagination is not supported when the Storage API is enabled. IsAccelerated() +// method can be called to check if Storage API is enabled for the RowIterator. +func (it *RowIterator) PageInfo() *iterator.PageInfo { return it.pageInfo } + +func (it *RowIterator) fetch(pageSize int, pageToken string) (string, error) { + res, err := it.pf(it.ctx, it.src, it.Schema, it.StartIndex, int64(pageSize), pageToken) + if err != nil { + return "", err + } + it.rows = append(it.rows, res.rows...) + if it.Schema == nil { + it.Schema = res.schema + } + it.TotalRows = res.totalRows + return res.pageToken, nil +} + +// rowSource represents one of the multiple sources of data for a row iterator. +// Rows can be read directly from a BigQuery table or from a job reference. +// If a job is present, that's treated as the authoritative source. +// +// rowSource can also cache results for special situations, primarily for the +// fast execution query path which can return status, rows, and schema all at +// once. Our cache data expectations are as follows: +// +// - We can only cache data from the start of a source. +// - We need to cache schema, rows, and next page token to effective service +// a request from cache. +// - cache references are destroyed as soon as they're interrogated. We don't +// want to retain the data unnecessarily, and we expect that the backend +// can always provide them if needed. +type rowSource struct { + j *Job + t *Table + queryID string + + cachedRows []*bq.TableRow + cachedSchema *bq.TableSchema + cachedNextToken string +} + +// fetchPageResult represents a page of rows returned from the backend. +type fetchPageResult struct { + pageToken string + rows [][]Value + totalRows uint64 + schema Schema +} + +// fetchPage is our generalized fetch mechanism. It interrogates from cache, and +// then dispatches to either the appropriate job or table-based backend mechanism +// as needed. +func fetchPage(ctx context.Context, src *rowSource, schema Schema, startIndex uint64, pageSize int64, pageToken string) (*fetchPageResult, error) { + result, err := fetchCachedPage(ctx, src, schema, startIndex, pageSize, pageToken) + if err != nil { + if err != errNoCacheData { + // This likely means something more severe, like a problem with schema. + return nil, err + } + // If we failed to fetch data from cache, invoke the appropriate service method. + if src.j != nil { + return fetchJobResultPage(ctx, src, schema, startIndex, pageSize, pageToken) + } + if src.t != nil { + return fetchTableResultPage(ctx, src, schema, startIndex, pageSize, pageToken) + } + // No rows, but no table or job reference. Return an empty result set. + return &fetchPageResult{}, nil + } + return result, nil +} + +func fetchTableResultPage(ctx context.Context, src *rowSource, schema Schema, startIndex uint64, pageSize int64, pageToken string) (*fetchPageResult, error) { + // Fetch the table schema in the background, if necessary. + errc := make(chan error, 1) + if schema != nil { + errc <- nil + } else { + go func() { + var bqt *bq.Table + err := runWithRetry(ctx, func() (err error) { + bqt, err = src.t.c.bqs.Tables.Get(src.t.ProjectID, src.t.DatasetID, src.t.TableID). + Fields("schema"). + Context(ctx). + Do() + return err + }) + if err == nil && bqt.Schema != nil { + schema = bqToSchema(bqt.Schema) + } + errc <- err + }() + } + call := src.t.c.bqs.Tabledata.List(src.t.ProjectID, src.t.DatasetID, src.t.TableID) + call = call.FormatOptionsUseInt64Timestamp(true) + setClientHeader(call.Header()) + if pageToken != "" { + call.PageToken(pageToken) + } else { + call.StartIndex(startIndex) + } + if pageSize > 0 { + call.MaxResults(pageSize) + } + var res *bq.TableDataList + err := runWithRetry(ctx, func() (err error) { + res, err = call.Context(ctx).Do() + return err + }) + if err != nil { + return nil, err + } + err = <-errc + if err != nil { + return nil, err + } + rows, err := convertRows(res.Rows, schema) + if err != nil { + return nil, err + } + return &fetchPageResult{ + pageToken: res.PageToken, + rows: rows, + totalRows: uint64(res.TotalRows), + schema: schema, + }, nil +} + +func fetchJobResultPage(ctx context.Context, src *rowSource, schema Schema, startIndex uint64, pageSize int64, pageToken string) (*fetchPageResult, error) { + // reduce data transfered by leveraging api projections + projectedFields := []googleapi.Field{"rows", "pageToken", "totalRows"} + call := src.j.c.bqs.Jobs.GetQueryResults(src.j.projectID, src.j.jobID).Location(src.j.location).Context(ctx) + call = call.FormatOptionsUseInt64Timestamp(true) + if schema == nil { + // only project schema if we weren't supplied one. + projectedFields = append(projectedFields, "schema") + } + call = call.Fields(projectedFields...) + setClientHeader(call.Header()) + if pageToken != "" { + call.PageToken(pageToken) + } else { + call.StartIndex(startIndex) + } + if pageSize > 0 { + call.MaxResults(pageSize) + } + var res *bq.GetQueryResultsResponse + err := runWithRetry(ctx, func() (err error) { + res, err = call.Do() + return err + }) + if err != nil { + return nil, err + } + // Populate schema in the rowsource if it's missing + if schema == nil { + schema = bqToSchema(res.Schema) + } + rows, err := convertRows(res.Rows, schema) + if err != nil { + return nil, err + } + return &fetchPageResult{ + pageToken: res.PageToken, + rows: rows, + totalRows: uint64(res.TotalRows), + schema: schema, + }, nil +} + +var errNoCacheData = errors.New("no rows in rowSource cache") + +// fetchCachedPage attempts to service the first page of results. For the jobs path specifically, we have an +// opportunity to fetch rows before the iterator is constructed, and thus serve that data as the first request +// without an unnecessary network round trip. +func fetchCachedPage(ctx context.Context, src *rowSource, schema Schema, startIndex uint64, pageSize int64, pageToken string) (*fetchPageResult, error) { + // we have no cached data + if src.cachedRows == nil { + return nil, errNoCacheData + } + // we have no schema for decoding. convert from the cached representation if available. + if schema == nil { + if src.cachedSchema == nil { + // We can't progress with no schema, destroy references and return a miss. + src.cachedRows = nil + src.cachedNextToken = "" + return nil, errNoCacheData + } + schema = bqToSchema(src.cachedSchema) + } + // Only serve from cache where we're confident we know someone's asking for the first page + // without having to align data. + // + // Future consideration: we could service pagesizes smaller than the cache if we're willing to handle generation + // of pageTokens for the cache. + if pageToken == "" && + startIndex == 0 && + (pageSize == 0 || pageSize == int64(len(src.cachedRows))) { + converted, err := convertRows(src.cachedRows, schema) + if err != nil { + // destroy cache references and return error + src.cachedRows = nil + src.cachedSchema = nil + src.cachedNextToken = "" + return nil, err + } + result := &fetchPageResult{ + pageToken: src.cachedNextToken, + rows: converted, + schema: schema, + totalRows: uint64(len(converted)), + } + // clear cache references and return response. + src.cachedRows = nil + src.cachedSchema = nil + src.cachedNextToken = "" + return result, nil + } + // All other cases are invalid. Destroy any cache references on the way out the door. + src.cachedRows = nil + src.cachedSchema = nil + src.cachedNextToken = "" + return nil, errNoCacheData +} diff --git a/vendor/cloud.google.com/go/bigquery/job.go b/vendor/cloud.google.com/go/bigquery/job.go new file mode 100644 index 000000000..d1d7f0631 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/job.go @@ -0,0 +1,1160 @@ +// Copyright 2015 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "context" + "errors" + "fmt" + "time" + + "cloud.google.com/go/internal" + "cloud.google.com/go/internal/trace" + gax "github.com/googleapis/gax-go/v2" + bq "google.golang.org/api/bigquery/v2" + "google.golang.org/api/googleapi" + "google.golang.org/api/iterator" +) + +// A Job represents an operation which has been submitted to BigQuery for processing. +type Job struct { + c *Client + projectID string + jobID string + location string + email string + config *bq.JobConfiguration + lastStatus *JobStatus +} + +// JobFromID creates a Job which refers to an existing BigQuery job. The job +// need not have been created by this package. For example, the job may have +// been created in the BigQuery console. +// +// For jobs whose location is other than "US" or "EU", set Client.Location or use +// JobFromIDLocation. +func (c *Client) JobFromID(ctx context.Context, id string) (*Job, error) { + return c.JobFromProject(ctx, c.projectID, id, c.Location) +} + +// JobFromIDLocation creates a Job which refers to an existing BigQuery job. The job +// need not have been created by this package (for example, it may have +// been created in the BigQuery console), but it must exist in the specified location. +func (c *Client) JobFromIDLocation(ctx context.Context, id, location string) (j *Job, err error) { + return c.JobFromProject(ctx, c.projectID, id, location) +} + +// JobFromProject creates a Job which refers to an existing BigQuery job. The job +// need not have been created by this package, nor does it need to reside within the same +// project or location as the instantiated client. +func (c *Client) JobFromProject(ctx context.Context, projectID, jobID, location string) (j *Job, err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.JobFromProject") + defer func() { trace.EndSpan(ctx, err) }() + + bqjob, err := c.getJobInternal(ctx, jobID, location, projectID, "user_email", "configuration", "jobReference", "status", "statistics") + if err != nil { + return nil, err + } + return bqToJob(bqjob, c) +} + +// ProjectID returns the job's associated project. +func (j *Job) ProjectID() string { + return j.projectID +} + +// ID returns the job's ID. +func (j *Job) ID() string { + return j.jobID +} + +// Location returns the job's location. +func (j *Job) Location() string { + return j.location +} + +// Email returns the email of the job's creator. +func (j *Job) Email() string { + return j.email +} + +// State is one of a sequence of states that a Job progresses through as it is processed. +type State int + +const ( + // StateUnspecified is the default JobIterator state. + StateUnspecified State = iota + // Pending is a state that describes that the job is pending. + Pending + // Running is a state that describes that the job is running. + Running + // Done is a state that describes that the job is done. + Done +) + +// JobStatus contains the current State of a job, and errors encountered while processing that job. +type JobStatus struct { + State State + + err error + + // All errors encountered during the running of the job. + // Not all Errors are fatal, so errors here do not necessarily mean that the job has completed or was unsuccessful. + Errors []*Error + + // Statistics about the job. + Statistics *JobStatistics +} + +// JobConfig contains configuration information for a job. It is implemented by +// *CopyConfig, *ExtractConfig, *LoadConfig and *QueryConfig. +type JobConfig interface { + isJobConfig() +} + +func (*CopyConfig) isJobConfig() {} +func (*ExtractConfig) isJobConfig() {} +func (*LoadConfig) isJobConfig() {} +func (*QueryConfig) isJobConfig() {} + +// Config returns the configuration information for j. +func (j *Job) Config() (JobConfig, error) { + return bqToJobConfig(j.config, j.c) +} + +// Children returns a job iterator for enumerating child jobs +// of the current job. Currently only scripts, a form of query job, +// will create child jobs. +func (j *Job) Children(ctx context.Context) *JobIterator { + it := j.c.Jobs(ctx) + it.ParentJobID = j.ID() + return it +} + +func bqToJobConfig(q *bq.JobConfiguration, c *Client) (JobConfig, error) { + switch { + case q == nil: + return nil, nil + case q.Copy != nil: + return bqToCopyConfig(q, c), nil + case q.Extract != nil: + return bqToExtractConfig(q, c), nil + case q.Load != nil: + return bqToLoadConfig(q, c), nil + case q.Query != nil: + return bqToQueryConfig(q, c) + default: + return nil, nil + } +} + +// JobIDConfig describes how to create an ID for a job. +type JobIDConfig struct { + // JobID is the ID to use for the job. If empty, a random job ID will be generated. + JobID string + + // If AddJobIDSuffix is true, then a random string will be appended to JobID. + AddJobIDSuffix bool + + // Location is the location for the job. + Location string + + // ProjectID is the Google Cloud project associated with the job. + ProjectID string +} + +// createJobRef creates a JobReference. +func (j *JobIDConfig) createJobRef(c *Client) *bq.JobReference { + projectID := j.ProjectID + if projectID == "" { // Use Client.ProjectID as a default. + projectID = c.projectID + } + loc := j.Location + if loc == "" { // Use Client.Location as a default. + loc = c.Location + } + jr := &bq.JobReference{ProjectId: projectID, Location: loc} + if j.JobID == "" { + jr.JobId = randomIDFn() + } else if j.AddJobIDSuffix { + jr.JobId = j.JobID + "-" + randomIDFn() + } else { + jr.JobId = j.JobID + } + return jr +} + +// Done reports whether the job has completed. +// After Done returns true, the Err method will return an error if the job completed unsuccessfully. +func (s *JobStatus) Done() bool { + return s.State == Done +} + +// Err returns the error that caused the job to complete unsuccessfully (if any). +func (s *JobStatus) Err() error { + return s.err +} + +// Status retrieves the current status of the job from BigQuery. It fails if the Status could not be determined. +func (j *Job) Status(ctx context.Context) (js *JobStatus, err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Job.Status") + defer func() { trace.EndSpan(ctx, err) }() + + bqjob, err := j.c.getJobInternal(ctx, j.jobID, j.location, j.projectID, "status", "statistics") + if err != nil { + return nil, err + } + if err := j.setStatus(bqjob.Status); err != nil { + return nil, err + } + j.setStatistics(bqjob.Statistics, j.c) + return j.lastStatus, nil +} + +// LastStatus returns the most recently retrieved status of the job. The status is +// retrieved when a new job is created, or when JobFromID or Job.Status is called. +// Call Job.Status to get the most up-to-date information about a job. +func (j *Job) LastStatus() *JobStatus { + return j.lastStatus +} + +// Cancel requests that a job be cancelled. This method returns without waiting for +// cancellation to take effect. To check whether the job has terminated, use Job.Status. +// Cancelled jobs may still incur costs. +func (j *Job) Cancel(ctx context.Context) error { + // Jobs.Cancel returns a job entity, but the only relevant piece of + // data it may contain (the status of the job) is unreliable. From the + // docs: "This call will return immediately, and the client will need + // to poll for the job status to see if the cancel completed + // successfully". So it would be misleading to return a status. + call := j.c.bqs.Jobs.Cancel(j.projectID, j.jobID). + Location(j.location). + Fields(). // We don't need any of the response data. + Context(ctx) + setClientHeader(call.Header()) + return runWithRetry(ctx, func() error { + sCtx := trace.StartSpan(ctx, "bigquery.jobs.cancel") + _, err := call.Do() + trace.EndSpan(sCtx, err) + return err + }) +} + +// Delete deletes the job. +func (j *Job) Delete(ctx context.Context) (err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Job.Delete") + defer func() { trace.EndSpan(ctx, err) }() + + call := j.c.bqs.Jobs.Delete(j.projectID, j.jobID).Context(ctx) + if j.location != "" { + call = call.Location(j.location) + } + setClientHeader(call.Header()) + + return runWithRetry(ctx, func() (err error) { + sCtx := trace.StartSpan(ctx, "bigquery.jobs.delete") + err = call.Do() + trace.EndSpan(sCtx, err) + return err + }) +} + +// Wait blocks until the job or the context is done. It returns the final status +// of the job. +// If an error occurs while retrieving the status, Wait returns that error. But +// Wait returns nil if the status was retrieved successfully, even if +// status.Err() != nil. So callers must check both errors. See the example. +func (j *Job) Wait(ctx context.Context) (js *JobStatus, err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Job.Wait") + defer func() { trace.EndSpan(ctx, err) }() + + if j.isQuery() { + // We can avoid polling for query jobs. + if _, _, err := j.waitForQuery(ctx, j.projectID); err != nil { + return nil, err + } + // Note: extra RPC even if you just want to wait for the query to finish. + js, err := j.Status(ctx) + if err != nil { + return nil, err + } + return js, nil + } + // Non-query jobs must poll. + err = internal.Retry(ctx, gax.Backoff{}, func() (stop bool, err error) { + js, err = j.Status(ctx) + if err != nil { + return true, err + } + if js.Done() { + return true, nil + } + return false, nil + }) + if err != nil { + return nil, err + } + return js, nil +} + +// Read fetches the results of a query job. +// If j is not a query job, Read returns an error. +func (j *Job) Read(ctx context.Context) (ri *RowIterator, err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Job.Read") + defer func() { trace.EndSpan(ctx, err) }() + + return j.read(ctx, j.waitForQuery, fetchPage) +} + +func (j *Job) read(ctx context.Context, waitForQuery func(context.Context, string) (Schema, uint64, error), pf pageFetcher) (*RowIterator, error) { + if !j.isQuery() { + return nil, errors.New("bigquery: cannot read from a non-query job") + } + schema, totalRows, err := waitForQuery(ctx, j.projectID) + if err != nil { + return nil, err + } + var it *RowIterator + if j.c.isStorageReadAvailable() { + it, err = newStorageRowIteratorFromJob(ctx, j) + if err != nil { + it = nil + } + } + if it == nil { + // Shave off some potential overhead by only retaining the minimal job representation in the iterator. + itJob := &Job{ + c: j.c, + projectID: j.projectID, + jobID: j.jobID, + location: j.location, + } + it = newRowIterator(ctx, &rowSource{j: itJob}, pf) + it.TotalRows = totalRows + } + it.Schema = schema + return it, nil +} + +// waitForQuery waits for the query job to complete and returns its schema. It also +// returns the total number of rows in the result set. +func (j *Job) waitForQuery(ctx context.Context, projectID string) (Schema, uint64, error) { + // Use GetQueryResults only to wait for completion, not to read results. + call := j.c.bqs.Jobs.GetQueryResults(projectID, j.jobID).Location(j.location).Context(ctx).MaxResults(0) + call = call.FormatOptionsUseInt64Timestamp(true) + setClientHeader(call.Header()) + backoff := gax.Backoff{ + Initial: 1 * time.Second, + Multiplier: 2, + Max: 60 * time.Second, + } + var res *bq.GetQueryResultsResponse + err := internal.Retry(ctx, backoff, func() (stop bool, err error) { + sCtx := trace.StartSpan(ctx, "bigquery.jobs.getQueryResults") + res, err = call.Do() + trace.EndSpan(sCtx, err) + if err != nil { + return !retryableError(err, jobRetryReasons), err + } + if !res.JobComplete { // GetQueryResults may return early without error; retry. + return false, nil + } + return true, nil + }) + if err != nil { + return nil, 0, err + } + return bqToSchema(res.Schema), res.TotalRows, nil +} + +// JobStatistics contains statistics about a job. +type JobStatistics struct { + CreationTime time.Time + StartTime time.Time + EndTime time.Time + TotalBytesProcessed int64 + + Details Statistics + + // NumChildJobs indicates the number of child jobs run as part of a script. + NumChildJobs int64 + + // ParentJobID indicates the origin job for jobs run as part of a script. + ParentJobID string + + // ScriptStatistics includes information run as part of a child job within + // a script. + ScriptStatistics *ScriptStatistics + + // ReservationUsage attributes slot consumption to reservations. + ReservationUsage []*ReservationUsage + + // TransactionInfo indicates the transaction ID associated with the job, if any. + TransactionInfo *TransactionInfo + + // SessionInfo contains information about the session if this job is part of one. + SessionInfo *SessionInfo +} + +// Statistics is one of ExtractStatistics, LoadStatistics or QueryStatistics. +type Statistics interface { + implementsStatistics() +} + +// ExtractStatistics contains statistics about an extract job. +type ExtractStatistics struct { + // The number of files per destination URI or URI pattern specified in the + // extract configuration. These values will be in the same order as the + // URIs specified in the 'destinationUris' field. + DestinationURIFileCounts []int64 +} + +// LoadStatistics contains statistics about a load job. +type LoadStatistics struct { + // The number of bytes of source data in a load job. + InputFileBytes int64 + + // The number of source files in a load job. + InputFiles int64 + + // Size of the loaded data in bytes. Note that while a load job is in the + // running state, this value may change. + OutputBytes int64 + + // The number of rows imported in a load job. Note that while an import job is + // in the running state, this value may change. + OutputRows int64 +} + +// QueryStatistics contains statistics about a query job. +type QueryStatistics struct { + + // BI-Engine specific statistics. + BIEngineStatistics *BIEngineStatistics + + // Billing tier for the job. + BillingTier int64 + + // Whether the query result was fetched from the query cache. + CacheHit bool + + // The type of query statement, if valid. + StatementType string + + // Total bytes billed for the job. + TotalBytesBilled int64 + + // Total bytes processed for the job. + TotalBytesProcessed int64 + + // For dry run queries, indicates how accurate the TotalBytesProcessed value is. + // When indicated, values include: + // UNKNOWN: accuracy of the estimate is unknown. + // PRECISE: estimate is precise. + // LOWER_BOUND: estimate is lower bound of what the query would cost. + // UPPER_BOUND: estimate is upper bound of what the query would cost. + TotalBytesProcessedAccuracy string + + // Describes execution plan for the query. + QueryPlan []*ExplainQueryStage + + // The number of rows affected by a DML statement. Present only for DML + // statements INSERT, UPDATE or DELETE. + NumDMLAffectedRows int64 + + // DMLStats provides statistics about the row mutations performed by + // DML statements. + DMLStats *DMLStatistics + + // Describes a timeline of job execution. + Timeline []*QueryTimelineSample + + // ReferencedTables: [Output-only] Referenced tables for + // the job. Queries that reference more than 50 tables will not have a + // complete list. + ReferencedTables []*Table + + // The schema of the results. Present only for successful dry run of + // non-legacy SQL queries. + Schema Schema + + // Slot-milliseconds consumed by this query job. + SlotMillis int64 + + // Standard SQL: list of undeclared query parameter names detected during a + // dry run validation. + UndeclaredQueryParameterNames []string + + // DDL target table. + DDLTargetTable *Table + + // DDL Operation performed on the target table. Used to report how the + // query impacted the DDL target table. + DDLOperationPerformed string + + // The DDL target table, present only for CREATE/DROP FUNCTION/PROCEDURE queries. + DDLTargetRoutine *Routine + + // Statistics for the EXPORT DATA statement as part of Query Job. + ExportDataStatistics *ExportDataStatistics +} + +// ExportDataStatistics represents statistics for +// a EXPORT DATA statement as part of Query Job. +type ExportDataStatistics struct { + // Number of destination files generated. + FileCount int64 + + // Number of destination rows generated. + RowCount int64 +} + +func bqToExportDataStatistics(in *bq.ExportDataStatistics) *ExportDataStatistics { + if in == nil { + return nil + } + stats := &ExportDataStatistics{ + FileCount: in.FileCount, + RowCount: in.RowCount, + } + return stats +} + +// BIEngineStatistics contains query statistics specific to the use of BI Engine. +type BIEngineStatistics struct { + // Specifies which mode of BI Engine acceleration was performed. + BIEngineMode string + + // In case of DISABLED or PARTIAL BIEngineMode, these + // contain the explanatory reasons as to why BI Engine could not + // accelerate. In case the full query was accelerated, this field is not + // populated. + BIEngineReasons []*BIEngineReason +} + +func bqToBIEngineStatistics(in *bq.BiEngineStatistics) *BIEngineStatistics { + if in == nil { + return nil + } + stats := &BIEngineStatistics{ + BIEngineMode: in.BiEngineMode, + } + for _, v := range in.BiEngineReasons { + stats.BIEngineReasons = append(stats.BIEngineReasons, bqToBIEngineReason(v)) + } + return stats +} + +// BIEngineReason contains more detailed information about why a query wasn't fully +// accelerated. +type BIEngineReason struct { + // High-Level BI engine reason for partial or disabled acceleration. + Code string + + // Human-readable reason for partial or disabled acceleration. + Message string +} + +func bqToBIEngineReason(in *bq.BiEngineReason) *BIEngineReason { + if in == nil { + return nil + } + return &BIEngineReason{ + Code: in.Code, + Message: in.Message, + } +} + +// ExplainQueryStage describes one stage of a query. +type ExplainQueryStage struct { + // CompletedParallelInputs: Number of parallel input segments completed. + CompletedParallelInputs int64 + + // ComputeAvg: Duration the average shard spent on CPU-bound tasks. + ComputeAvg time.Duration + + // ComputeMax: Duration the slowest shard spent on CPU-bound tasks. + ComputeMax time.Duration + + // Relative amount of the total time the average shard spent on CPU-bound tasks. + ComputeRatioAvg float64 + + // Relative amount of the total time the slowest shard spent on CPU-bound tasks. + ComputeRatioMax float64 + + // EndTime: Stage end time. + EndTime time.Time + + // Unique ID for stage within plan. + ID int64 + + // InputStages: IDs for stages that are inputs to this stage. + InputStages []int64 + + // Human-readable name for stage. + Name string + + // ParallelInputs: Number of parallel input segments to be processed. + ParallelInputs int64 + + // ReadAvg: Duration the average shard spent reading input. + ReadAvg time.Duration + + // ReadMax: Duration the slowest shard spent reading input. + ReadMax time.Duration + + // Relative amount of the total time the average shard spent reading input. + ReadRatioAvg float64 + + // Relative amount of the total time the slowest shard spent reading input. + ReadRatioMax float64 + + // Number of records read into the stage. + RecordsRead int64 + + // Number of records written by the stage. + RecordsWritten int64 + + // ShuffleOutputBytes: Total number of bytes written to shuffle. + ShuffleOutputBytes int64 + + // ShuffleOutputBytesSpilled: Total number of bytes written to shuffle + // and spilled to disk. + ShuffleOutputBytesSpilled int64 + + // StartTime: Stage start time. + StartTime time.Time + + // Current status for the stage. + Status string + + // List of operations within the stage in dependency order (approximately + // chronological). + Steps []*ExplainQueryStep + + // WaitAvg: Duration the average shard spent waiting to be scheduled. + WaitAvg time.Duration + + // WaitMax: Duration the slowest shard spent waiting to be scheduled. + WaitMax time.Duration + + // Relative amount of the total time the average shard spent waiting to be scheduled. + WaitRatioAvg float64 + + // Relative amount of the total time the slowest shard spent waiting to be scheduled. + WaitRatioMax float64 + + // WriteAvg: Duration the average shard spent on writing output. + WriteAvg time.Duration + + // WriteMax: Duration the slowest shard spent on writing output. + WriteMax time.Duration + + // Relative amount of the total time the average shard spent on writing output. + WriteRatioAvg float64 + + // Relative amount of the total time the slowest shard spent on writing output. + WriteRatioMax float64 +} + +// ExplainQueryStep describes one step of a query stage. +type ExplainQueryStep struct { + // Machine-readable operation type. + Kind string + + // Human-readable stage descriptions. + Substeps []string +} + +// QueryTimelineSample represents a sample of execution statistics at a point in time. +type QueryTimelineSample struct { + + // Total number of units currently being processed by workers, represented as largest value since last sample. + ActiveUnits int64 + + // Total parallel units of work completed by this query. + CompletedUnits int64 + + // Time elapsed since start of query execution. + Elapsed time.Duration + + // Total parallel units of work remaining for the active stages. + PendingUnits int64 + + // Cumulative slot-milliseconds consumed by the query. + SlotMillis int64 +} + +// ReservationUsage contains information about a job's usage of a single reservation. +type ReservationUsage struct { + // SlotMillis reports the slot milliseconds utilized within in the given reservation. + SlotMillis int64 + // Name indicates the utilized reservation name, or "unreserved" for ondemand usage. + Name string +} + +func bqToReservationUsage(ru []*bq.JobStatisticsReservationUsage) []*ReservationUsage { + var usage []*ReservationUsage + for _, in := range ru { + usage = append(usage, &ReservationUsage{ + SlotMillis: in.SlotMs, + Name: in.Name, + }) + } + return usage +} + +// ScriptStatistics report information about script-based query jobs. +type ScriptStatistics struct { + EvaluationKind string + StackFrames []*ScriptStackFrame +} + +func bqToScriptStatistics(bs *bq.ScriptStatistics) *ScriptStatistics { + if bs == nil { + return nil + } + ss := &ScriptStatistics{ + EvaluationKind: bs.EvaluationKind, + } + for _, f := range bs.StackFrames { + ss.StackFrames = append(ss.StackFrames, bqToScriptStackFrame(f)) + } + return ss +} + +// ScriptStackFrame represents the location of the statement/expression being evaluated. +// +// Line and column numbers are defined as follows: +// +// - Line and column numbers start with one. That is, line 1 column 1 denotes +// the start of the script. +// - When inside a stored procedure, all line/column numbers are relative +// to the procedure body, not the script in which the procedure was defined. +// - Start/end positions exclude leading/trailing comments and whitespace. +// The end position always ends with a ";", when present. +// - Multi-byte Unicode characters are treated as just one column. +// - If the original script (or procedure definition) contains TAB characters, +// a tab "snaps" the indentation forward to the nearest multiple of 8 +// characters, plus 1. For example, a TAB on column 1, 2, 3, 4, 5, 6 , or 8 +// will advance the next character to column 9. A TAB on column 9, 10, 11, +// 12, 13, 14, 15, or 16 will advance the next character to column 17. +type ScriptStackFrame struct { + StartLine int64 + StartColumn int64 + EndLine int64 + EndColumn int64 + // Name of the active procedure. Empty if in a top-level script. + ProcedureID string + // Text of the current statement/expression. + Text string +} + +func bqToScriptStackFrame(bsf *bq.ScriptStackFrame) *ScriptStackFrame { + if bsf == nil { + return nil + } + return &ScriptStackFrame{ + StartLine: bsf.StartLine, + StartColumn: bsf.StartColumn, + EndLine: bsf.EndLine, + EndColumn: bsf.EndColumn, + ProcedureID: bsf.ProcedureId, + Text: bsf.Text, + } +} + +// DMLStatistics contains counts of row mutations triggered by a DML query statement. +type DMLStatistics struct { + // Rows added by the statement. + InsertedRowCount int64 + // Rows removed by the statement. + DeletedRowCount int64 + // Rows changed by the statement. + UpdatedRowCount int64 +} + +func bqToDMLStatistics(q *bq.DmlStatistics) *DMLStatistics { + if q == nil { + return nil + } + return &DMLStatistics{ + InsertedRowCount: q.InsertedRowCount, + DeletedRowCount: q.DeletedRowCount, + UpdatedRowCount: q.UpdatedRowCount, + } +} + +func (*ExtractStatistics) implementsStatistics() {} +func (*LoadStatistics) implementsStatistics() {} +func (*QueryStatistics) implementsStatistics() {} + +// Jobs lists jobs within a project. +func (c *Client) Jobs(ctx context.Context) *JobIterator { + it := &JobIterator{ + ctx: ctx, + c: c, + ProjectID: c.projectID, + } + it.pageInfo, it.nextFunc = iterator.NewPageInfo( + it.fetch, + func() int { return len(it.items) }, + func() interface{} { b := it.items; it.items = nil; return b }) + return it +} + +// JobIterator iterates over jobs in a project. +type JobIterator struct { + ProjectID string // Project ID of the jobs to list. Default is the client's project. + AllUsers bool // Whether to list jobs owned by all users in the project, or just the current caller. + State State // List only jobs in the given state. Defaults to all states. + MinCreationTime time.Time // List only jobs created after this time. + MaxCreationTime time.Time // List only jobs created before this time. + ParentJobID string // List only jobs that are children of a given scripting job. + + ctx context.Context + c *Client + pageInfo *iterator.PageInfo + nextFunc func() error + items []*Job +} + +// PageInfo is a getter for the JobIterator's PageInfo. +func (it *JobIterator) PageInfo() *iterator.PageInfo { return it.pageInfo } + +// Next returns the next Job. Its second return value is iterator.Done if +// there are no more results. Once Next returns Done, all subsequent calls will +// return Done. +func (it *JobIterator) Next() (*Job, error) { + if err := it.nextFunc(); err != nil { + return nil, err + } + item := it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *JobIterator) fetch(pageSize int, pageToken string) (string, error) { + var st string + switch it.State { + case StateUnspecified: + st = "" + case Pending: + st = "pending" + case Running: + st = "running" + case Done: + st = "done" + default: + return "", fmt.Errorf("bigquery: invalid value for JobIterator.State: %d", it.State) + } + + req := it.c.bqs.Jobs.List(it.ProjectID). + Context(it.ctx). + PageToken(pageToken). + Projection("full"). + AllUsers(it.AllUsers) + if st != "" { + req.StateFilter(st) + } + if !it.MinCreationTime.IsZero() { + req.MinCreationTime(uint64(it.MinCreationTime.UnixNano() / 1e6)) + } + if !it.MaxCreationTime.IsZero() { + req.MaxCreationTime(uint64(it.MaxCreationTime.UnixNano() / 1e6)) + } + setClientHeader(req.Header()) + if pageSize > 0 { + req.MaxResults(int64(pageSize)) + } + if it.ParentJobID != "" { + req.ParentJobId(it.ParentJobID) + } + var res *bq.JobList + err := runWithRetry(it.ctx, func() (err error) { + sCtx := trace.StartSpan(it.ctx, "bigquery.jobs.list") + res, err = req.Do() + trace.EndSpan(sCtx, err) + return err + }) + + if err != nil { + return "", err + } + for _, j := range res.Jobs { + job, err := convertListedJob(j, it.c) + if err != nil { + return "", err + } + it.items = append(it.items, job) + } + return res.NextPageToken, nil +} + +func convertListedJob(j *bq.JobListJobs, c *Client) (*Job, error) { + return bqToJob2(j.JobReference, j.Configuration, j.Status, j.Statistics, j.UserEmail, c) +} + +func (c *Client) getJobInternal(ctx context.Context, jobID, location, projectID string, fields ...googleapi.Field) (*bq.Job, error) { + var job *bq.Job + proj := projectID + if proj == "" { + proj = c.projectID + } + call := c.bqs.Jobs.Get(proj, jobID).Context(ctx) + if location != "" { + call = call.Location(location) + } + if len(fields) > 0 { + call = call.Fields(fields...) + } + setClientHeader(call.Header()) + err := runWithRetry(ctx, func() (err error) { + sCtx := trace.StartSpan(ctx, "bigquery.jobs.get") + job, err = call.Do() + trace.EndSpan(sCtx, err) + return err + }) + if err != nil { + return nil, err + } + return job, nil +} + +func bqToJob(q *bq.Job, c *Client) (*Job, error) { + return bqToJob2(q.JobReference, q.Configuration, q.Status, q.Statistics, q.UserEmail, c) +} + +func bqToJob2(qr *bq.JobReference, qc *bq.JobConfiguration, qs *bq.JobStatus, qt *bq.JobStatistics, email string, c *Client) (*Job, error) { + j := &Job{ + projectID: qr.ProjectId, + jobID: qr.JobId, + location: qr.Location, + c: c, + email: email, + } + j.setConfig(qc) + if err := j.setStatus(qs); err != nil { + return nil, err + } + j.setStatistics(qt, c) + return j, nil +} + +func (j *Job) setConfig(config *bq.JobConfiguration) { + if config == nil { + return + } + j.config = config +} + +func (j *Job) isQuery() bool { + return j.config != nil && j.config.Query != nil +} + +func (j *Job) isScript() bool { + return j.hasStatementType("SCRIPT") +} + +func (j *Job) isSelectQuery() bool { + return j.hasStatementType("SELECT") +} + +func (j *Job) hasStatementType(statementType string) bool { + if !j.isQuery() { + return false + } + if j.lastStatus == nil { + return false + } + queryStats, ok := j.lastStatus.Statistics.Details.(*QueryStatistics) + if !ok { + return false + } + return queryStats.StatementType == statementType +} + +var stateMap = map[string]State{"PENDING": Pending, "RUNNING": Running, "DONE": Done} + +func (j *Job) setStatus(qs *bq.JobStatus) error { + if qs == nil { + return nil + } + state, ok := stateMap[qs.State] + if !ok { + return fmt.Errorf("unexpected job state: %s", qs.State) + } + j.lastStatus = &JobStatus{ + State: state, + err: nil, + } + if err := bqToError(qs.ErrorResult); state == Done && err != nil { + j.lastStatus.err = err + } + for _, ep := range qs.Errors { + j.lastStatus.Errors = append(j.lastStatus.Errors, bqToError(ep)) + } + return nil +} + +func (j *Job) setStatistics(s *bq.JobStatistics, c *Client) { + if s == nil || j.lastStatus == nil { + return + } + js := &JobStatistics{ + CreationTime: unixMillisToTime(s.CreationTime), + StartTime: unixMillisToTime(s.StartTime), + EndTime: unixMillisToTime(s.EndTime), + TotalBytesProcessed: s.TotalBytesProcessed, + NumChildJobs: s.NumChildJobs, + ParentJobID: s.ParentJobId, + ScriptStatistics: bqToScriptStatistics(s.ScriptStatistics), + ReservationUsage: bqToReservationUsage(s.ReservationUsage), + TransactionInfo: bqToTransactionInfo(s.TransactionInfo), + SessionInfo: bqToSessionInfo(s.SessionInfo), + } + switch { + case s.Extract != nil: + js.Details = &ExtractStatistics{ + DestinationURIFileCounts: []int64(s.Extract.DestinationUriFileCounts), + } + case s.Load != nil: + js.Details = &LoadStatistics{ + InputFileBytes: s.Load.InputFileBytes, + InputFiles: s.Load.InputFiles, + OutputBytes: s.Load.OutputBytes, + OutputRows: s.Load.OutputRows, + } + case s.Query != nil: + var names []string + for _, qp := range s.Query.UndeclaredQueryParameters { + names = append(names, qp.Name) + } + var tables []*Table + for _, tr := range s.Query.ReferencedTables { + tables = append(tables, bqToTable(tr, c)) + } + js.Details = &QueryStatistics{ + BIEngineStatistics: bqToBIEngineStatistics(s.Query.BiEngineStatistics), + BillingTier: s.Query.BillingTier, + CacheHit: s.Query.CacheHit, + DDLTargetTable: bqToTable(s.Query.DdlTargetTable, c), + DDLOperationPerformed: s.Query.DdlOperationPerformed, + DDLTargetRoutine: bqToRoutine(s.Query.DdlTargetRoutine, c), + ExportDataStatistics: bqToExportDataStatistics(s.Query.ExportDataStatistics), + StatementType: s.Query.StatementType, + TotalBytesBilled: s.Query.TotalBytesBilled, + TotalBytesProcessed: s.Query.TotalBytesProcessed, + TotalBytesProcessedAccuracy: s.Query.TotalBytesProcessedAccuracy, + NumDMLAffectedRows: s.Query.NumDmlAffectedRows, + DMLStats: bqToDMLStatistics(s.Query.DmlStats), + QueryPlan: queryPlanFromProto(s.Query.QueryPlan), + Schema: bqToSchema(s.Query.Schema), + SlotMillis: s.Query.TotalSlotMs, + Timeline: timelineFromProto(s.Query.Timeline), + ReferencedTables: tables, + UndeclaredQueryParameterNames: names, + } + } + j.lastStatus.Statistics = js +} + +func queryPlanFromProto(stages []*bq.ExplainQueryStage) []*ExplainQueryStage { + var res []*ExplainQueryStage + for _, s := range stages { + var steps []*ExplainQueryStep + for _, p := range s.Steps { + steps = append(steps, &ExplainQueryStep{ + Kind: p.Kind, + Substeps: p.Substeps, + }) + } + res = append(res, &ExplainQueryStage{ + CompletedParallelInputs: s.CompletedParallelInputs, + ComputeAvg: time.Duration(s.ComputeMsAvg) * time.Millisecond, + ComputeMax: time.Duration(s.ComputeMsMax) * time.Millisecond, + ComputeRatioAvg: s.ComputeRatioAvg, + ComputeRatioMax: s.ComputeRatioMax, + EndTime: time.Unix(0, s.EndMs*1e6), + ID: s.Id, + InputStages: s.InputStages, + Name: s.Name, + ParallelInputs: s.ParallelInputs, + ReadAvg: time.Duration(s.ReadMsAvg) * time.Millisecond, + ReadMax: time.Duration(s.ReadMsMax) * time.Millisecond, + ReadRatioAvg: s.ReadRatioAvg, + ReadRatioMax: s.ReadRatioMax, + RecordsRead: s.RecordsRead, + RecordsWritten: s.RecordsWritten, + ShuffleOutputBytes: s.ShuffleOutputBytes, + ShuffleOutputBytesSpilled: s.ShuffleOutputBytesSpilled, + StartTime: time.Unix(0, s.StartMs*1e6), + Status: s.Status, + Steps: steps, + WaitAvg: time.Duration(s.WaitMsAvg) * time.Millisecond, + WaitMax: time.Duration(s.WaitMsMax) * time.Millisecond, + WaitRatioAvg: s.WaitRatioAvg, + WaitRatioMax: s.WaitRatioMax, + WriteAvg: time.Duration(s.WriteMsAvg) * time.Millisecond, + WriteMax: time.Duration(s.WriteMsMax) * time.Millisecond, + WriteRatioAvg: s.WriteRatioAvg, + WriteRatioMax: s.WriteRatioMax, + }) + } + return res +} + +func timelineFromProto(timeline []*bq.QueryTimelineSample) []*QueryTimelineSample { + var res []*QueryTimelineSample + for _, s := range timeline { + res = append(res, &QueryTimelineSample{ + ActiveUnits: s.ActiveUnits, + CompletedUnits: s.CompletedUnits, + Elapsed: time.Duration(s.ElapsedMs) * time.Millisecond, + PendingUnits: s.PendingUnits, + SlotMillis: s.TotalSlotMs, + }) + } + return res +} + +// TransactionInfo contains information about a multi-statement transaction that may have associated with a job. +type TransactionInfo struct { + // TransactionID is the system-generated identifier for the transaction. + TransactionID string +} + +func bqToTransactionInfo(in *bq.TransactionInfo) *TransactionInfo { + if in == nil { + return nil + } + return &TransactionInfo{ + TransactionID: in.TransactionId, + } +} + +// SessionInfo contains information about a session associated with a job. +type SessionInfo struct { + SessionID string +} + +func bqToSessionInfo(in *bq.SessionInfo) *SessionInfo { + if in == nil { + return nil + } + return &SessionInfo{ + SessionID: in.SessionId, + } +} diff --git a/vendor/cloud.google.com/go/bigquery/load.go b/vendor/cloud.google.com/go/bigquery/load.go new file mode 100644 index 000000000..3693719c4 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/load.go @@ -0,0 +1,240 @@ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "context" + "io" + "time" + + "cloud.google.com/go/internal/trace" + bq "google.golang.org/api/bigquery/v2" + "google.golang.org/api/googleapi" +) + +// LoadConfig holds the configuration for a load job. +type LoadConfig struct { + // Src is the source from which data will be loaded. + Src LoadSource + + // Dst is the table into which the data will be loaded. + Dst *Table + + // CreateDisposition specifies the circumstances under which the destination table will be created. + // The default is CreateIfNeeded. + CreateDisposition TableCreateDisposition + + // WriteDisposition specifies how existing data in the destination table is treated. + // The default is WriteAppend. + WriteDisposition TableWriteDisposition + + // The labels associated with this job. + Labels map[string]string + + // If non-nil, the destination table is partitioned by time. + TimePartitioning *TimePartitioning + + // If non-nil, the destination table is partitioned by integer range. + RangePartitioning *RangePartitioning + + // Clustering specifies the data clustering configuration for the destination table. + Clustering *Clustering + + // Custom encryption configuration (e.g., Cloud KMS keys). + DestinationEncryptionConfig *EncryptionConfig + + // Allows the schema of the destination table to be updated as a side effect of + // the load job. + SchemaUpdateOptions []string + + // For Avro-based loads, controls whether logical type annotations are used. + // See https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-avro#logical_types + // for additional information. + UseAvroLogicalTypes bool + + // For ingestion from datastore backups, ProjectionFields governs which fields + // are projected from the backup. The default behavior projects all fields. + ProjectionFields []string + + // HivePartitioningOptions allows use of Hive partitioning based on the + // layout of objects in Cloud Storage. + HivePartitioningOptions *HivePartitioningOptions + + // DecimalTargetTypes allows selection of how decimal values are converted when + // processed in bigquery, subject to the value type having sufficient precision/scale + // to support the values. In the order of NUMERIC, BIGNUMERIC, and STRING, a type is + // selected if is present in the list and if supports the necessary precision and scale. + // + // StringTargetType supports all precision and scale values. + DecimalTargetTypes []DecimalTargetType + + // Sets a best-effort deadline on a specific job. If job execution exceeds this + // timeout, BigQuery may attempt to cancel this work automatically. + // + // This deadline cannot be adjusted or removed once the job is created. Consider + // using Job.Cancel in situations where you need more dynamic behavior. + // + // Experimental: this option is experimental and may be modified or removed in future versions, + // regardless of any other documented package stability guarantees. + JobTimeout time.Duration + + // When loading a table with external data, the user can provide a reference file with the table schema. + // This is enabled for the following formats: AVRO, PARQUET, ORC. + ReferenceFileSchemaURI string + + // If true, creates a new session, where session id will + // be a server generated random id. If false, runs query with an + // existing session_id passed in ConnectionProperty, otherwise runs the + // load job in non-session mode. + CreateSession bool + + // ConnectionProperties are optional key-values settings. + ConnectionProperties []*ConnectionProperty + + // MediaOptions stores options for customizing media upload. + MediaOptions []googleapi.MediaOption +} + +func (l *LoadConfig) toBQ() (*bq.JobConfiguration, io.Reader) { + config := &bq.JobConfiguration{ + Labels: l.Labels, + Load: &bq.JobConfigurationLoad{ + CreateDisposition: string(l.CreateDisposition), + WriteDisposition: string(l.WriteDisposition), + DestinationTable: l.Dst.toBQ(), + TimePartitioning: l.TimePartitioning.toBQ(), + RangePartitioning: l.RangePartitioning.toBQ(), + Clustering: l.Clustering.toBQ(), + DestinationEncryptionConfiguration: l.DestinationEncryptionConfig.toBQ(), + SchemaUpdateOptions: l.SchemaUpdateOptions, + UseAvroLogicalTypes: l.UseAvroLogicalTypes, + ProjectionFields: l.ProjectionFields, + HivePartitioningOptions: l.HivePartitioningOptions.toBQ(), + ReferenceFileSchemaUri: l.ReferenceFileSchemaURI, + CreateSession: l.CreateSession, + }, + JobTimeoutMs: l.JobTimeout.Milliseconds(), + } + for _, v := range l.DecimalTargetTypes { + config.Load.DecimalTargetTypes = append(config.Load.DecimalTargetTypes, string(v)) + } + for _, v := range l.ConnectionProperties { + config.Load.ConnectionProperties = append(config.Load.ConnectionProperties, v.toBQ()) + } + media := l.Src.populateLoadConfig(config.Load) + return config, media +} + +func bqToLoadConfig(q *bq.JobConfiguration, c *Client) *LoadConfig { + lc := &LoadConfig{ + Labels: q.Labels, + CreateDisposition: TableCreateDisposition(q.Load.CreateDisposition), + WriteDisposition: TableWriteDisposition(q.Load.WriteDisposition), + Dst: bqToTable(q.Load.DestinationTable, c), + TimePartitioning: bqToTimePartitioning(q.Load.TimePartitioning), + RangePartitioning: bqToRangePartitioning(q.Load.RangePartitioning), + Clustering: bqToClustering(q.Load.Clustering), + DestinationEncryptionConfig: bqToEncryptionConfig(q.Load.DestinationEncryptionConfiguration), + SchemaUpdateOptions: q.Load.SchemaUpdateOptions, + UseAvroLogicalTypes: q.Load.UseAvroLogicalTypes, + ProjectionFields: q.Load.ProjectionFields, + HivePartitioningOptions: bqToHivePartitioningOptions(q.Load.HivePartitioningOptions), + ReferenceFileSchemaURI: q.Load.ReferenceFileSchemaUri, + CreateSession: q.Load.CreateSession, + } + if q.JobTimeoutMs > 0 { + lc.JobTimeout = time.Duration(q.JobTimeoutMs) * time.Millisecond + } + for _, v := range q.Load.DecimalTargetTypes { + lc.DecimalTargetTypes = append(lc.DecimalTargetTypes, DecimalTargetType(v)) + } + for _, v := range q.Load.ConnectionProperties { + lc.ConnectionProperties = append(lc.ConnectionProperties, bqToConnectionProperty(v)) + } + var fc *FileConfig + if len(q.Load.SourceUris) == 0 { + s := NewReaderSource(nil) + fc = &s.FileConfig + lc.Src = s + } else { + s := NewGCSReference(q.Load.SourceUris...) + fc = &s.FileConfig + lc.Src = s + } + bqPopulateFileConfig(q.Load, fc) + return lc +} + +// A Loader loads data from Google Cloud Storage into a BigQuery table. +type Loader struct { + JobIDConfig + LoadConfig + c *Client +} + +// A LoadSource represents a source of data that can be loaded into +// a BigQuery table. +// +// This package defines two LoadSources: GCSReference, for Google Cloud Storage +// objects, and ReaderSource, for data read from an io.Reader. +type LoadSource interface { + // populates config, returns media + populateLoadConfig(*bq.JobConfigurationLoad) io.Reader +} + +// LoaderFrom returns a Loader which can be used to load data into a BigQuery table. +// The returned Loader may optionally be further configured before its Run method is called. +// See GCSReference and ReaderSource for additional configuration options that +// affect loading. +func (t *Table) LoaderFrom(src LoadSource) *Loader { + return &Loader{ + c: t.c, + LoadConfig: LoadConfig{ + Src: src, + Dst: t, + }, + } +} + +// Run initiates a load job. +func (l *Loader) Run(ctx context.Context) (j *Job, err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Load.Run") + defer func() { trace.EndSpan(ctx, err) }() + + job, media := l.newJob() + return l.c.insertJob(ctx, job, media, l.LoadConfig.MediaOptions...) +} + +func (l *Loader) newJob() (*bq.Job, io.Reader) { + config, media := l.LoadConfig.toBQ() + return &bq.Job{ + JobReference: l.JobIDConfig.createJobRef(l.c), + Configuration: config, + }, media +} + +// DecimalTargetType is used to express preference ordering for converting values from external formats. +type DecimalTargetType string + +var ( + // NumericTargetType indicates the preferred type is NUMERIC when supported. + NumericTargetType DecimalTargetType = "NUMERIC" + + // BigNumericTargetType indicates the preferred type is BIGNUMERIC when supported. + BigNumericTargetType DecimalTargetType = "BIGNUMERIC" + + // StringTargetType indicates the preferred type is STRING when supported. + StringTargetType DecimalTargetType = "STRING" +) diff --git a/vendor/cloud.google.com/go/bigquery/model.go b/vendor/cloud.google.com/go/bigquery/model.go new file mode 100644 index 000000000..7fb90493e --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/model.go @@ -0,0 +1,304 @@ +// Copyright 2019 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "context" + "fmt" + "strings" + "time" + + "cloud.google.com/go/internal/optional" + "cloud.google.com/go/internal/trace" + bq "google.golang.org/api/bigquery/v2" +) + +// Model represent a reference to a BigQuery ML model. +// Within the API, models are used largely for communicating +// statistical information about a given model, as creation of models is only +// supported via BigQuery queries (e.g. CREATE MODEL .. AS ..). +// +// For more info, see documentation for Bigquery ML, +// see: https://cloud.google.com/bigquery/docs/bigqueryml +type Model struct { + ProjectID string + DatasetID string + // ModelID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). + // The maximum length is 1,024 characters. + ModelID string + + c *Client +} + +// Identifier returns the ID of the model in the requested format. +// +// For Standard SQL format, the identifier will be quoted if the +// ProjectID contains dash (-) characters. +func (m *Model) Identifier(f IdentifierFormat) (string, error) { + switch f { + case LegacySQLID: + return fmt.Sprintf("%s:%s.%s", m.ProjectID, m.DatasetID, m.ModelID), nil + case StandardSQLID: + // Per https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-create#model_name + // we quote the entire identifier. + out := fmt.Sprintf("%s.%s.%s", m.ProjectID, m.DatasetID, m.ModelID) + if strings.Contains(out, "-") { + out = fmt.Sprintf("`%s`", out) + } + return out, nil + default: + return "", ErrUnknownIdentifierFormat + } +} + +// FullyQualifiedName returns the ID of the model in projectID:datasetID.modelid format. +func (m *Model) FullyQualifiedName() string { + s, _ := m.Identifier(LegacySQLID) + return s +} + +func (m *Model) toBQ() *bq.ModelReference { + return &bq.ModelReference{ + ProjectId: m.ProjectID, + DatasetId: m.DatasetID, + ModelId: m.ModelID, + } +} + +// Metadata fetches the metadata for a model, which includes ML training statistics. +func (m *Model) Metadata(ctx context.Context) (mm *ModelMetadata, err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Model.Metadata") + defer func() { trace.EndSpan(ctx, err) }() + + req := m.c.bqs.Models.Get(m.ProjectID, m.DatasetID, m.ModelID).Context(ctx) + setClientHeader(req.Header()) + var model *bq.Model + err = runWithRetry(ctx, func() (err error) { + ctx = trace.StartSpan(ctx, "bigquery.models.get") + model, err = req.Do() + trace.EndSpan(ctx, err) + return err + }) + if err != nil { + return nil, err + } + return bqToModelMetadata(model) +} + +// Update updates mutable fields in an ML model. +func (m *Model) Update(ctx context.Context, mm ModelMetadataToUpdate, etag string) (md *ModelMetadata, err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Model.Update") + defer func() { trace.EndSpan(ctx, err) }() + + bqm, err := mm.toBQ() + if err != nil { + return nil, err + } + call := m.c.bqs.Models.Patch(m.ProjectID, m.DatasetID, m.ModelID, bqm).Context(ctx) + setClientHeader(call.Header()) + if etag != "" { + call.Header().Set("If-Match", etag) + } + var res *bq.Model + if err := runWithRetry(ctx, func() (err error) { + ctx = trace.StartSpan(ctx, "bigquery.models.patch") + res, err = call.Do() + trace.EndSpan(ctx, err) + return err + }); err != nil { + return nil, err + } + return bqToModelMetadata(res) +} + +// Delete deletes an ML model. +func (m *Model) Delete(ctx context.Context) (err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Model.Delete") + defer func() { trace.EndSpan(ctx, err) }() + + req := m.c.bqs.Models.Delete(m.ProjectID, m.DatasetID, m.ModelID).Context(ctx) + setClientHeader(req.Header()) + return req.Do() +} + +// ModelMetadata represents information about a BigQuery ML model. +type ModelMetadata struct { + // The user-friendly description of the model. + Description string + + // The user-friendly name of the model. + Name string + + // The type of the model. Possible values include: + // "LINEAR_REGRESSION" - a linear regression model + // "LOGISTIC_REGRESSION" - a logistic regression model + // "KMEANS" - a k-means clustering model + Type string + + // The creation time of the model. + CreationTime time.Time + + // The last modified time of the model. + LastModifiedTime time.Time + + // The expiration time of the model. + ExpirationTime time.Time + + // The geographic location where the model resides. This value is + // inherited from the encapsulating dataset. + Location string + + // Custom encryption configuration (e.g., Cloud KMS keys). + EncryptionConfig *EncryptionConfig + + // The input feature columns used to train the model. + featureColumns []*bq.StandardSqlField + + // The label columns used to train the model. Output + // from the model will have a "predicted_" prefix for these columns. + labelColumns []*bq.StandardSqlField + + // Information for all training runs, ordered by increasing start times. + trainingRuns []*bq.TrainingRun + + Labels map[string]string + + // ETag is the ETag obtained when reading metadata. Pass it to Model.Update + // to ensure that the metadata hasn't changed since it was read. + ETag string +} + +// TrainingRun represents information about a single training run for a BigQuery ML model. +// Experimental: This information may be modified or removed in future versions of this package. +type TrainingRun bq.TrainingRun + +// RawTrainingRuns exposes the underlying training run stats for a model using types from +// "google.golang.org/api/bigquery/v2", which are subject to change without warning. +// It is EXPERIMENTAL and subject to change or removal without notice. +func (mm *ModelMetadata) RawTrainingRuns() []*TrainingRun { + if mm.trainingRuns == nil { + return nil + } + var runs []*TrainingRun + + for _, v := range mm.trainingRuns { + r := TrainingRun(*v) + runs = append(runs, &r) + } + return runs +} + +// RawLabelColumns exposes the underlying label columns used to train an ML model and uses types from +// "google.golang.org/api/bigquery/v2", which are subject to change without warning. +// It is EXPERIMENTAL and subject to change or removal without notice. +func (mm *ModelMetadata) RawLabelColumns() ([]*StandardSQLField, error) { + return bqToModelCols(mm.labelColumns) +} + +// RawFeatureColumns exposes the underlying feature columns used to train an ML model and uses types from +// "google.golang.org/api/bigquery/v2", which are subject to change without warning. +// It is EXPERIMENTAL and subject to change or removal without notice. +func (mm *ModelMetadata) RawFeatureColumns() ([]*StandardSQLField, error) { + return bqToModelCols(mm.featureColumns) +} + +func bqToModelCols(s []*bq.StandardSqlField) ([]*StandardSQLField, error) { + if s == nil { + return nil, nil + } + var cols []*StandardSQLField + for _, v := range s { + c, err := bqToStandardSQLField(v) + if err != nil { + return nil, err + } + cols = append(cols, c) + } + return cols, nil +} + +func bqToModelMetadata(m *bq.Model) (*ModelMetadata, error) { + md := &ModelMetadata{ + Description: m.Description, + Name: m.FriendlyName, + Type: m.ModelType, + Location: m.Location, + Labels: m.Labels, + ExpirationTime: unixMillisToTime(m.ExpirationTime), + CreationTime: unixMillisToTime(m.CreationTime), + LastModifiedTime: unixMillisToTime(m.LastModifiedTime), + EncryptionConfig: bqToEncryptionConfig(m.EncryptionConfiguration), + featureColumns: m.FeatureColumns, + labelColumns: m.LabelColumns, + trainingRuns: m.TrainingRuns, + ETag: m.Etag, + } + return md, nil +} + +// ModelMetadataToUpdate is used when updating an ML model's metadata. +// Only non-nil fields will be updated. +type ModelMetadataToUpdate struct { + // The user-friendly description of this model. + Description optional.String + + // The user-friendly name of this model. + Name optional.String + + // The time when this model expires. To remove a model's expiration, + // set ExpirationTime to NeverExpire. The zero value is ignored. + ExpirationTime time.Time + + // The model's encryption configuration. + EncryptionConfig *EncryptionConfig + + labelUpdater +} + +func (mm *ModelMetadataToUpdate) toBQ() (*bq.Model, error) { + m := &bq.Model{} + forceSend := func(field string) { + m.ForceSendFields = append(m.ForceSendFields, field) + } + + if mm.Description != nil { + m.Description = optional.ToString(mm.Description) + forceSend("Description") + } + + if mm.Name != nil { + m.FriendlyName = optional.ToString(mm.Name) + forceSend("FriendlyName") + } + + if mm.EncryptionConfig != nil { + m.EncryptionConfiguration = mm.EncryptionConfig.toBQ() + } + + if !validExpiration(mm.ExpirationTime) { + return nil, invalidTimeError(mm.ExpirationTime) + } + if mm.ExpirationTime == NeverExpire { + m.NullFields = append(m.NullFields, "ExpirationTime") + } else if !mm.ExpirationTime.IsZero() { + m.ExpirationTime = mm.ExpirationTime.UnixNano() / 1e6 + forceSend("ExpirationTime") + } + labels, forces, nulls := mm.update() + m.Labels = labels + m.ForceSendFields = append(m.ForceSendFields, forces...) + m.NullFields = append(m.NullFields, nulls...) + return m, nil +} diff --git a/vendor/cloud.google.com/go/bigquery/nulls.go b/vendor/cloud.google.com/go/bigquery/nulls.go new file mode 100644 index 000000000..cbe4fa34d --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/nulls.go @@ -0,0 +1,410 @@ +// Copyright 2015 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "bytes" + "encoding/json" + "fmt" + "math" + "reflect" + "strconv" + "time" + + "cloud.google.com/go/civil" +) + +var ( + jsonNull = []byte("null") + posInf = []byte(`"+Inf"`) + inf = []byte(`"Inf"`) + minusInf = []byte(`"-Inf"`) + infinity = []byte(`"Infinity"`) + minusInfinity = []byte(`"-Infinity"`) + nan = []byte(`"NaN"`) +) + +// NullInt64 represents a BigQuery INT64 that may be NULL. +type NullInt64 struct { + Int64 int64 + Valid bool // Valid is true if Int64 is not NULL. +} + +func (n NullInt64) String() string { return nullstr(n.Valid, n.Int64) } + +// NullString represents a BigQuery STRING that may be NULL. +type NullString struct { + StringVal string + Valid bool // Valid is true if StringVal is not NULL. +} + +func (n NullString) String() string { return nullstr(n.Valid, n.StringVal) } + +// NullGeography represents a BigQuery GEOGRAPHY string that may be NULL. +type NullGeography struct { + GeographyVal string + Valid bool // Valid is true if GeographyVal is not NULL. +} + +func (n NullGeography) String() string { return nullstr(n.Valid, n.GeographyVal) } + +// NullJSON represents a BigQuery JSON string that may be NULL. +type NullJSON struct { + JSONVal string + Valid bool // Valid is true if JSONVal is not NULL. +} + +func (n NullJSON) String() string { return nullstr(n.Valid, n.JSONVal) } + +// NullFloat64 represents a BigQuery FLOAT64 that may be NULL. +type NullFloat64 struct { + Float64 float64 + Valid bool // Valid is true if Float64 is not NULL. +} + +func (n NullFloat64) String() string { return nullstr(n.Valid, n.Float64) } + +// NullBool represents a BigQuery BOOL that may be NULL. +type NullBool struct { + Bool bool + Valid bool // Valid is true if Bool is not NULL. +} + +func (n NullBool) String() string { return nullstr(n.Valid, n.Bool) } + +// NullTimestamp represents a BigQuery TIMESTAMP that may be null. +type NullTimestamp struct { + Timestamp time.Time + Valid bool // Valid is true if Time is not NULL. +} + +func (n NullTimestamp) String() string { return nullstr(n.Valid, n.Timestamp) } + +// NullDate represents a BigQuery DATE that may be null. +type NullDate struct { + Date civil.Date + Valid bool // Valid is true if Date is not NULL. +} + +func (n NullDate) String() string { return nullstr(n.Valid, n.Date) } + +// NullTime represents a BigQuery TIME that may be null. +type NullTime struct { + Time civil.Time + Valid bool // Valid is true if Time is not NULL. +} + +func (n NullTime) String() string { + if !n.Valid { + return "" + } + return CivilTimeString(n.Time) +} + +// NullDateTime represents a BigQuery DATETIME that may be null. +type NullDateTime struct { + DateTime civil.DateTime + Valid bool // Valid is true if DateTime is not NULL. +} + +func (n NullDateTime) String() string { + if !n.Valid { + return "" + } + return CivilDateTimeString(n.DateTime) +} + +// MarshalJSON converts the NullInt64 to JSON. +func (n NullInt64) MarshalJSON() ([]byte, error) { return nulljson(n.Valid, n.Int64) } + +// MarshalJSON converts the NullFloat64 to JSON. +func (n NullFloat64) MarshalJSON() (b []byte, err error) { + if n.Valid { + switch { + case math.IsInf(n.Float64, 1): + return infinity, nil + case math.IsInf(n.Float64, -1): + return minusInfinity, nil + case math.IsNaN(n.Float64): + return nan, nil + default: + return json.Marshal(n.Float64) + } + } + return jsonNull, nil +} + +// MarshalJSON converts the NullBool to JSON. +func (n NullBool) MarshalJSON() ([]byte, error) { return nulljson(n.Valid, n.Bool) } + +// MarshalJSON converts the NullString to JSON. +func (n NullString) MarshalJSON() ([]byte, error) { return nulljson(n.Valid, n.StringVal) } + +// MarshalJSON converts the NullGeography to JSON. +func (n NullGeography) MarshalJSON() ([]byte, error) { return nulljson(n.Valid, n.GeographyVal) } + +// MarshalJSON converts the NullJSON to JSON. +func (n NullJSON) MarshalJSON() ([]byte, error) { return nulljson(n.Valid, n.JSONVal) } + +// MarshalJSON converts the NullTimestamp to JSON. +func (n NullTimestamp) MarshalJSON() ([]byte, error) { return nulljson(n.Valid, n.Timestamp) } + +// MarshalJSON converts the NullDate to JSON. +func (n NullDate) MarshalJSON() ([]byte, error) { return nulljson(n.Valid, n.Date) } + +// MarshalJSON converts the NullTime to JSON. +func (n NullTime) MarshalJSON() ([]byte, error) { + if !n.Valid { + return jsonNull, nil + } + return []byte(`"` + CivilTimeString(n.Time) + `"`), nil +} + +// MarshalJSON converts the NullDateTime to JSON. +func (n NullDateTime) MarshalJSON() ([]byte, error) { + if !n.Valid { + return jsonNull, nil + } + return []byte(`"` + CivilDateTimeString(n.DateTime) + `"`), nil +} + +func nullstr(valid bool, v interface{}) string { + if !valid { + return "NULL" + } + return fmt.Sprint(v) +} + +func nulljson(valid bool, v interface{}) ([]byte, error) { + if !valid { + return jsonNull, nil + } + return json.Marshal(v) +} + +// UnmarshalJSON converts JSON into a NullInt64. +func (n *NullInt64) UnmarshalJSON(b []byte) error { + n.Valid = false + n.Int64 = 0 + if bytes.Equal(b, jsonNull) { + return nil + } + + if err := json.Unmarshal(b, &n.Int64); err != nil { + return err + } + n.Valid = true + return nil +} + +// UnmarshalJSON converts JSON into a NullFloat64. +func (n *NullFloat64) UnmarshalJSON(b []byte) error { + n.Valid = false + n.Float64 = 0 + if bytes.Equal(b, jsonNull) { + return nil + } else if bytes.Equal(b, posInf) || bytes.Equal(b, inf) || bytes.Equal(b, infinity) { + n.Float64 = math.Inf(1) + n.Valid = true + return nil + } else if bytes.Equal(b, minusInf) || bytes.Equal(b, minusInfinity) { + n.Float64 = math.Inf(-1) + n.Valid = true + return nil + } else if bytes.Equal(b, nan) { + n.Float64 = math.NaN() + n.Valid = true + return nil + } + if err := json.Unmarshal(b, &n.Float64); err != nil { + return err + } + n.Valid = true + return nil +} + +// UnmarshalJSON converts JSON into a NullBool. +func (n *NullBool) UnmarshalJSON(b []byte) error { + n.Valid = false + n.Bool = false + if bytes.Equal(b, jsonNull) { + return nil + } + + if err := json.Unmarshal(b, &n.Bool); err != nil { + return err + } + n.Valid = true + return nil +} + +// UnmarshalJSON converts JSON into a NullString. +func (n *NullString) UnmarshalJSON(b []byte) error { + n.Valid = false + n.StringVal = "" + if bytes.Equal(b, jsonNull) { + return nil + } + + if err := json.Unmarshal(b, &n.StringVal); err != nil { + return err + } + n.Valid = true + return nil +} + +// UnmarshalJSON converts JSON into a NullGeography. +func (n *NullGeography) UnmarshalJSON(b []byte) error { + n.Valid = false + n.GeographyVal = "" + if bytes.Equal(b, jsonNull) { + return nil + } + if err := json.Unmarshal(b, &n.GeographyVal); err != nil { + return err + } + n.Valid = true + return nil +} + +// UnmarshalJSON converts JSON into a NullJSON. +func (n *NullJSON) UnmarshalJSON(b []byte) error { + n.Valid = false + n.JSONVal = "" + if bytes.Equal(b, jsonNull) { + return nil + } + if err := json.Unmarshal(b, &n.JSONVal); err != nil { + return err + } + n.Valid = true + return nil +} + +// UnmarshalJSON converts JSON into a NullTimestamp. +func (n *NullTimestamp) UnmarshalJSON(b []byte) error { + n.Valid = false + n.Timestamp = time.Time{} + if bytes.Equal(b, jsonNull) { + return nil + } + + if err := json.Unmarshal(b, &n.Timestamp); err != nil { + return err + } + n.Valid = true + return nil +} + +// UnmarshalJSON converts JSON into a NullDate. +func (n *NullDate) UnmarshalJSON(b []byte) error { + n.Valid = false + n.Date = civil.Date{} + if bytes.Equal(b, jsonNull) { + return nil + } + + if err := json.Unmarshal(b, &n.Date); err != nil { + return err + } + n.Valid = true + return nil +} + +// UnmarshalJSON converts JSON into a NullTime. +func (n *NullTime) UnmarshalJSON(b []byte) error { + n.Valid = false + n.Time = civil.Time{} + if bytes.Equal(b, jsonNull) { + return nil + } + + s, err := strconv.Unquote(string(b)) + if err != nil { + return err + } + + t, err := civil.ParseTime(s) + if err != nil { + return err + } + n.Time = t + + n.Valid = true + return nil +} + +// UnmarshalJSON converts JSON into a NullDateTime. +func (n *NullDateTime) UnmarshalJSON(b []byte) error { + n.Valid = false + n.DateTime = civil.DateTime{} + if bytes.Equal(b, jsonNull) { + return nil + } + + s, err := strconv.Unquote(string(b)) + if err != nil { + return err + } + + dt, err := parseCivilDateTime(s) + if err != nil { + return err + } + n.DateTime = dt + + n.Valid = true + return nil +} + +var ( + typeOfNullInt64 = reflect.TypeOf(NullInt64{}) + typeOfNullFloat64 = reflect.TypeOf(NullFloat64{}) + typeOfNullBool = reflect.TypeOf(NullBool{}) + typeOfNullString = reflect.TypeOf(NullString{}) + typeOfNullGeography = reflect.TypeOf(NullGeography{}) + typeOfNullJSON = reflect.TypeOf(NullJSON{}) + typeOfNullTimestamp = reflect.TypeOf(NullTimestamp{}) + typeOfNullDate = reflect.TypeOf(NullDate{}) + typeOfNullTime = reflect.TypeOf(NullTime{}) + typeOfNullDateTime = reflect.TypeOf(NullDateTime{}) +) + +func nullableFieldType(t reflect.Type) FieldType { + switch t { + case typeOfNullInt64: + return IntegerFieldType + case typeOfNullFloat64: + return FloatFieldType + case typeOfNullBool: + return BooleanFieldType + case typeOfNullString: + return StringFieldType + case typeOfNullGeography: + return GeographyFieldType + case typeOfNullJSON: + return JSONFieldType + case typeOfNullTimestamp: + return TimestampFieldType + case typeOfNullDate: + return DateFieldType + case typeOfNullTime: + return TimeFieldType + case typeOfNullDateTime: + return DateTimeFieldType + default: + return "" + } +} diff --git a/vendor/cloud.google.com/go/bigquery/params.go b/vendor/cloud.google.com/go/bigquery/params.go new file mode 100644 index 000000000..cf47e9a23 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/params.go @@ -0,0 +1,683 @@ +// Copyright 2016 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "encoding/base64" + "errors" + "fmt" + "math/big" + "reflect" + "regexp" + "strings" + "time" + + "cloud.google.com/go/civil" + "cloud.google.com/go/internal/fields" + bq "google.golang.org/api/bigquery/v2" +) + +// See https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#timestamp-type. +var ( + timestampFormat = "2006-01-02 15:04:05.999999-07:00" + dateTimeFormat = "2006-01-02 15:04:05" +) + +var ( + // See https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#schema.fields.name + validFieldName = regexp.MustCompile("^[a-zA-Z_][a-zA-Z0-9_]{0,127}$") +) + +const nullableTagOption = "nullable" + +func bqTagParser(t reflect.StructTag) (name string, keep bool, other interface{}, err error) { + name, keep, opts, err := fields.ParseStandardTag("bigquery", t) + if err != nil { + return "", false, nil, err + } + if name != "" && !validFieldName.MatchString(name) { + return "", false, nil, invalidFieldNameError(name) + } + for _, opt := range opts { + if opt != nullableTagOption { + return "", false, nil, fmt.Errorf( + "bigquery: invalid tag option %q. The only valid option is %q", + opt, nullableTagOption) + } + } + return name, keep, opts, nil +} + +type invalidFieldNameError string + +func (e invalidFieldNameError) Error() string { + return fmt.Sprintf("bigquery: invalid name %q of field in struct", string(e)) +} + +var fieldCache = fields.NewCache(bqTagParser, nil, nil) + +var ( + int64ParamType = &bq.QueryParameterType{Type: "INT64"} + float64ParamType = &bq.QueryParameterType{Type: "FLOAT64"} + boolParamType = &bq.QueryParameterType{Type: "BOOL"} + stringParamType = &bq.QueryParameterType{Type: "STRING"} + bytesParamType = &bq.QueryParameterType{Type: "BYTES"} + dateParamType = &bq.QueryParameterType{Type: "DATE"} + timeParamType = &bq.QueryParameterType{Type: "TIME"} + dateTimeParamType = &bq.QueryParameterType{Type: "DATETIME"} + timestampParamType = &bq.QueryParameterType{Type: "TIMESTAMP"} + numericParamType = &bq.QueryParameterType{Type: "NUMERIC"} + bigNumericParamType = &bq.QueryParameterType{Type: "BIGNUMERIC"} + geographyParamType = &bq.QueryParameterType{Type: "GEOGRAPHY"} + intervalParamType = &bq.QueryParameterType{Type: "INTERVAL"} + jsonParamType = &bq.QueryParameterType{Type: "JSON"} +) + +var ( + typeOfDate = reflect.TypeOf(civil.Date{}) + typeOfTime = reflect.TypeOf(civil.Time{}) + typeOfDateTime = reflect.TypeOf(civil.DateTime{}) + typeOfGoTime = reflect.TypeOf(time.Time{}) + typeOfRat = reflect.TypeOf(&big.Rat{}) + typeOfIntervalValue = reflect.TypeOf(&IntervalValue{}) + typeOfQueryParameterValue = reflect.TypeOf(&QueryParameterValue{}) +) + +// A QueryParameter is a parameter to a query. +type QueryParameter struct { + // Name is used for named parameter mode. + // It must match the name in the query case-insensitively. + Name string + + // Value is the value of the parameter. + // + // When you create a QueryParameter to send to BigQuery, the following Go types + // are supported, with their corresponding Bigquery types: + // int, int8, int16, int32, int64, uint8, uint16, uint32: INT64 + // Note that uint, uint64 and uintptr are not supported, because + // they may contain values that cannot fit into a 64-bit signed integer. + // float32, float64: FLOAT64 + // bool: BOOL + // string: STRING + // []byte: BYTES + // time.Time: TIMESTAMP + // *big.Rat: NUMERIC + // *IntervalValue: INTERVAL + // Arrays and slices of the above. + // Structs of the above. Only the exported fields are used. + // + // For scalar values, you can supply the Null types within this library + // to send the appropriate NULL values (e.g. NullInt64, NullString, etc). + // + // To specify query parameters explicitly rather by inference, *QueryParameterValue can be used. + // For example, a BIGNUMERIC can be specified like this: + // &QueryParameterValue{ + // Type: StandardSQLDataType{ + // TypeKind: "BIGNUMERIC", + // }, + // Value: BigNumericString(*big.Rat), + // } + // + // When a QueryParameter is returned inside a QueryConfig from a call to + // Job.Config: + // Integers are of type int64. + // Floating-point values are of type float64. + // Arrays are of type []interface{}, regardless of the array element type. + // Structs are of type map[string]interface{}. + // + // When valid (non-null) Null types are sent, they come back as the Go types indicated + // above. Null strings will report in query statistics as a valid empty + // string. + Value interface{} +} + +// QueryParameterValue is a go type for representing a explicit typed QueryParameter. +type QueryParameterValue struct { + // Type specifies the parameter type. See StandardSQLDataType for more. + // Scalar parameters and more complex types can be defined within this field. + // See examples on the value fields. + Type StandardSQLDataType + + // Value is the value of the parameter, if a simple scalar type. + // The default behavior for scalar values is to do type inference + // and format it accordingly. + // Because of that, depending on the parameter type, is recommended + // to send value as a String. + // We provide some formatter functions for some types: + // CivilTimeString(civil.Time) + // CivilDateTimeString(civil.DateTime) + // NumericString(*big.Rat) + // BigNumericString(*big.Rat) + // IntervalString(*IntervalValue) + // + // Example: + // + // &QueryParameterValue{ + // Type: StandardSQLDataType{ + // TypeKind: "BIGNUMERIC", + // }, + // Value: BigNumericString(*big.Rat), + // } + Value interface{} + + // ArrayValue is the array of values for the parameter. + // + // Must be used with QueryParameterValue.Type being a StandardSQLDataType + // with ArrayElementType filled with the given element type. + // + // Example of an array of strings : + // &QueryParameterValue{ + // Type: &StandardSQLDataType{ + // ArrayElementType: &StandardSQLDataType{ + // TypeKind: "STRING", + // }, + // }, + // ArrayValue: []QueryParameterValue{ + // {Value: "a"}, + // {Value: "b"}, + // }, + // } + // + // Example of an array of structs : + // &QueryParameterValue{ + // Type: &StandardSQLDataType{ + // ArrayElementType: &StandardSQLDataType{ + // StructType: &StandardSQLDataType{ + // Fields: []*StandardSQLField{ + // { + // Name: "NumberField", + // Type: &StandardSQLDataType{ + // TypeKind: "INT64", + // }, + // }, + // }, + // }, + // }, + // }, + // ArrayValue: []QueryParameterValue{ + // {StructValue: map[string]QueryParameterValue{ + // "NumberField": { + // Value: int64(42), + // }, + // }}, + // {StructValue: map[string]QueryParameterValue{ + // "NumberField": { + // Value: int64(43), + // }, + // }}, + // }, + // } + ArrayValue []QueryParameterValue + + // StructValue is the struct field values for the parameter. + // + // Must be used with QueryParameterValue.Type being a StandardSQLDataType + // with StructType filled with the given field types. + // + // Example: + // + // &QueryParameterValue{ + // Type: &StandardSQLDataType{ + // StructType{ + // Fields: []*StandardSQLField{ + // { + // Name: "StringField", + // Type: &StandardSQLDataType{ + // TypeKind: "STRING", + // }, + // }, + // { + // Name: "NumberField", + // Type: &StandardSQLDataType{ + // TypeKind: "INT64", + // }, + // }, + // }, + // }, + // }, + // StructValue: []map[string]QueryParameterValue{ + // "NumberField": { + // Value: int64(42), + // }, + // "StringField": { + // Value: "Value", + // }, + // }, + // } + StructValue map[string]QueryParameterValue +} + +func (p QueryParameterValue) toBQParamType() *bq.QueryParameterType { + return p.Type.toBQParamType() +} + +func (p QueryParameterValue) toBQParamValue() (*bq.QueryParameterValue, error) { + if len(p.ArrayValue) > 0 { + pv := &bq.QueryParameterValue{} + pv.ArrayValues = []*bq.QueryParameterValue{} + for _, v := range p.ArrayValue { + val, err := v.toBQParamValue() + if err != nil { + return nil, err + } + pv.ArrayValues = append(pv.ArrayValues, val) + } + return pv, nil + } + if len(p.StructValue) > 0 { + pv := &bq.QueryParameterValue{} + pv.StructValues = map[string]bq.QueryParameterValue{} + for name, param := range p.StructValue { + v, err := param.toBQParamValue() + if err != nil { + return nil, err + } + pv.StructValues[name] = *v + } + return pv, nil + } + pv, err := paramValue(reflect.ValueOf(p.Value)) + if err != nil { + return nil, err + } + return pv, nil +} + +func (p QueryParameter) toBQ() (*bq.QueryParameter, error) { + v := reflect.ValueOf(p.Value) + pv, err := paramValue(v) + if err != nil { + return nil, err + } + pt, err := paramType(reflect.TypeOf(p.Value), v) + if err != nil { + return nil, err + } + return &bq.QueryParameter{ + Name: p.Name, + ParameterValue: pv, + ParameterType: pt, + }, nil +} + +func paramType(t reflect.Type, v reflect.Value) (*bq.QueryParameterType, error) { + if t == nil { + return nil, errors.New("bigquery: nil parameter") + } + switch t { + case typeOfDate, typeOfNullDate: + return dateParamType, nil + case typeOfTime, typeOfNullTime: + return timeParamType, nil + case typeOfDateTime, typeOfNullDateTime: + return dateTimeParamType, nil + case typeOfGoTime, typeOfNullTimestamp: + return timestampParamType, nil + case typeOfRat: + return numericParamType, nil + case typeOfIntervalValue: + return intervalParamType, nil + case typeOfNullBool: + return boolParamType, nil + case typeOfNullFloat64: + return float64ParamType, nil + case typeOfNullInt64: + return int64ParamType, nil + case typeOfNullString: + return stringParamType, nil + case typeOfNullGeography: + return geographyParamType, nil + case typeOfNullJSON: + return jsonParamType, nil + case typeOfQueryParameterValue: + return v.Interface().(*QueryParameterValue).toBQParamType(), nil + } + switch t.Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint8, reflect.Uint16, reflect.Uint32: + return int64ParamType, nil + + case reflect.Float32, reflect.Float64: + return float64ParamType, nil + + case reflect.Bool: + return boolParamType, nil + + case reflect.String: + return stringParamType, nil + + case reflect.Slice: + if t.Elem().Kind() == reflect.Uint8 { + return bytesParamType, nil + } + fallthrough + + case reflect.Array: + et, err := paramType(t.Elem(), v) + if err != nil { + return nil, err + } + return &bq.QueryParameterType{Type: "ARRAY", ArrayType: et}, nil + + case reflect.Ptr: + if t.Elem().Kind() != reflect.Struct { + break + } + t = t.Elem() + fallthrough + + case reflect.Struct: + var fts []*bq.QueryParameterTypeStructTypes + fields, err := fieldCache.Fields(t) + if err != nil { + return nil, err + } + for _, f := range fields { + prefixes := []string{"*", "[]"} // check pointer and arrays + for _, prefix := range prefixes { + if strings.TrimPrefix(t.String(), prefix) == strings.TrimPrefix(f.Type.String(), prefix) { + return nil, fmt.Errorf("bigquery: Go type %s cannot be represented as a parameter due to an attribute cycle/recursion detected", t) + } + } + pt, err := paramType(f.Type, v) + if err != nil { + return nil, err + } + fts = append(fts, &bq.QueryParameterTypeStructTypes{ + Name: f.Name, + Type: pt, + }) + } + return &bq.QueryParameterType{Type: "STRUCT", StructTypes: fts}, nil + } + return nil, fmt.Errorf("bigquery: Go type %s cannot be represented as a parameter type", t) +} + +func paramValue(v reflect.Value) (*bq.QueryParameterValue, error) { + res := &bq.QueryParameterValue{} + if !v.IsValid() { + return res, errors.New("bigquery: nil parameter") + } + t := v.Type() + switch t { + + // Handle all the custom null types as a group first, as they all have the same logic when invalid. + case typeOfNullInt64, + typeOfNullString, + typeOfNullGeography, + typeOfNullFloat64, + typeOfNullBool, + typeOfNullTimestamp, + typeOfNullDate, + typeOfNullTime, + typeOfNullDateTime, + typeOfNullJSON: + // Shared: If the Null type isn't valid, we have no value to send. + // However, the backend requires us to send the QueryParameterValue with + // the fields empty. + if !v.FieldByName("Valid").Bool() { + // Ensure we don't send a default value by using NullFields in the JSON + // serialization. + res.NullFields = append(res.NullFields, "Value") + return res, nil + } + // For cases where the Null type is valid, populate the scalar value as needed. + switch t { + case typeOfNullInt64: + res.Value = fmt.Sprint(v.FieldByName("Int64").Interface()) + case typeOfNullString: + res.Value = fmt.Sprint(v.FieldByName("StringVal").Interface()) + case typeOfNullGeography: + res.Value = fmt.Sprint(v.FieldByName("GeographyVal").Interface()) + case typeOfNullJSON: + res.Value = fmt.Sprint(v.FieldByName("JSONVal").Interface()) + case typeOfNullFloat64: + res.Value = fmt.Sprint(v.FieldByName("Float64").Interface()) + case typeOfNullBool: + res.Value = fmt.Sprint(v.FieldByName("Bool").Interface()) + case typeOfNullTimestamp: + res.Value = v.FieldByName("Timestamp").Interface().(time.Time).Format(timestampFormat) + case typeOfNullDate: + res.Value = v.FieldByName("Date").Interface().(civil.Date).String() + case typeOfNullTime: + res.Value = CivilTimeString(v.FieldByName("Time").Interface().(civil.Time)) + case typeOfNullDateTime: + res.Value = CivilDateTimeString(v.FieldByName("DateTime").Interface().(civil.DateTime)) + } + // We expect to produce a value in all these cases, so force send if the result is the empty + // string. + if res.Value == "" { + res.ForceSendFields = append(res.ForceSendFields, "Value") + } + return res, nil + + case typeOfDate: + res.Value = v.Interface().(civil.Date).String() + return res, nil + case typeOfTime: + // civil.Time has nanosecond resolution, but BigQuery TIME only microsecond. + // (If we send nanoseconds, then when we try to read the result we get "query job + // missing destination table"). + res.Value = CivilTimeString(v.Interface().(civil.Time)) + return res, nil + + case typeOfDateTime: + res.Value = CivilDateTimeString(v.Interface().(civil.DateTime)) + return res, nil + + case typeOfGoTime: + res.Value = v.Interface().(time.Time).Format(timestampFormat) + return res, nil + + case typeOfRat: + // big.Rat types don't communicate scale or precision, so we cannot + // disambiguate between NUMERIC and BIGNUMERIC. For now, we'll continue + // to honor previous behavior and send as Numeric type. + res.Value = NumericString(v.Interface().(*big.Rat)) + return res, nil + case typeOfIntervalValue: + res.Value = IntervalString(v.Interface().(*IntervalValue)) + return res, nil + case typeOfQueryParameterValue: + return v.Interface().(*QueryParameterValue).toBQParamValue() + } + switch t.Kind() { + case reflect.Slice: + if t.Elem().Kind() == reflect.Uint8 { + res.Value = base64.StdEncoding.EncodeToString(v.Interface().([]byte)) + return res, nil + } + fallthrough + + case reflect.Array: + var vals []*bq.QueryParameterValue + for i := 0; i < v.Len(); i++ { + val, err := paramValue(v.Index(i)) + if err != nil { + return nil, err + } + vals = append(vals, val) + } + return &bq.QueryParameterValue{ArrayValues: vals}, nil + + case reflect.Ptr: + if t.Elem().Kind() != reflect.Struct { + return res, fmt.Errorf("bigquery: Go type %s cannot be represented as a parameter value", t) + } + t = t.Elem() + v = v.Elem() + if !v.IsValid() { + // nil pointer becomes empty value + return res, nil + } + fallthrough + + case reflect.Struct: + fields, err := fieldCache.Fields(t) + if err != nil { + return nil, err + } + res.StructValues = map[string]bq.QueryParameterValue{} + for _, f := range fields { + fv := v.FieldByIndex(f.Index) + fp, err := paramValue(fv) + if err != nil { + return nil, err + } + res.StructValues[f.Name] = *fp + } + return res, nil + } + // None of the above: assume a scalar type. (If it's not a valid type, + // paramType will catch the error.) + res.Value = fmt.Sprint(v.Interface()) + // Ensure empty string values are sent. + if res.Value == "" { + res.ForceSendFields = append(res.ForceSendFields, "Value") + } + return res, nil +} + +func bqToQueryParameter(q *bq.QueryParameter) (QueryParameter, error) { + p := QueryParameter{Name: q.Name} + val, err := convertParamValue(q.ParameterValue, q.ParameterType) + if err != nil { + return QueryParameter{}, err + } + p.Value = val + return p, nil +} + +var paramTypeToFieldType = map[string]FieldType{ + int64ParamType.Type: IntegerFieldType, + float64ParamType.Type: FloatFieldType, + boolParamType.Type: BooleanFieldType, + stringParamType.Type: StringFieldType, + bytesParamType.Type: BytesFieldType, + dateParamType.Type: DateFieldType, + timeParamType.Type: TimeFieldType, + numericParamType.Type: NumericFieldType, + bigNumericParamType.Type: BigNumericFieldType, + geographyParamType.Type: GeographyFieldType, + intervalParamType.Type: IntervalFieldType, + jsonParamType.Type: JSONFieldType, +} + +// Convert a parameter value from the service to a Go value. This is similar to, but +// not quite the same as, converting data values. Namely, rather than returning nil +// directly, we wrap them in the appropriate Null types (NullInt64, etc). +func convertParamValue(qval *bq.QueryParameterValue, qtype *bq.QueryParameterType) (interface{}, error) { + switch qtype.Type { + case "ARRAY": + if qval == nil { + return []interface{}(nil), nil + } + return convertParamArray(qval.ArrayValues, qtype.ArrayType) + case "STRUCT": + if qval == nil { + return map[string]interface{}(nil), nil + } + return convertParamStruct(qval.StructValues, qtype.StructTypes) + case "TIMESTAMP": + if isNullScalar(qval) { + return NullTimestamp{Valid: false}, nil + } + formats := []string{timestampFormat, time.RFC3339Nano, dateTimeFormat} + var lastParseErr error + for _, format := range formats { + t, err := time.Parse(format, qval.Value) + if err != nil { + lastParseErr = err + continue + } + return t, nil + } + return nil, lastParseErr + + case "DATETIME": + if isNullScalar(qval) { + return NullDateTime{Valid: false}, nil + } + return parseCivilDateTime(qval.Value) + default: + if isNullScalar(qval) { + switch qtype.Type { + case "INT64": + return NullInt64{Valid: false}, nil + case "STRING": + return NullString{Valid: false}, nil + case "FLOAT64": + return NullFloat64{Valid: false}, nil + case "BOOL": + return NullBool{Valid: false}, nil + case "DATE": + return NullDate{Valid: false}, nil + case "TIME": + return NullTime{Valid: false}, nil + case "GEOGRAPHY": + return NullGeography{Valid: false}, nil + case "JSON": + return NullJSON{Valid: false}, nil + } + + } + return convertBasicType(qval.Value, paramTypeToFieldType[qtype.Type]) + } +} + +// isNullScalar determines if the input is meant to represent a null scalar +// value. +func isNullScalar(qval *bq.QueryParameterValue) bool { + if qval == nil { + return true + } + for _, v := range qval.NullFields { + if v == "Value" { + return true + } + } + return false +} + +// convertParamArray converts a query parameter array value to a Go value. It +// always returns a []interface{}. +func convertParamArray(elVals []*bq.QueryParameterValue, elType *bq.QueryParameterType) ([]interface{}, error) { + var vals []interface{} + for _, el := range elVals { + val, err := convertParamValue(el, elType) + if err != nil { + return nil, err + } + vals = append(vals, val) + } + return vals, nil +} + +// convertParamStruct converts a query parameter struct value into a Go value. It +// always returns a map[string]interface{}. +func convertParamStruct(sVals map[string]bq.QueryParameterValue, sTypes []*bq.QueryParameterTypeStructTypes) (map[string]interface{}, error) { + vals := map[string]interface{}{} + for _, st := range sTypes { + if sv, ok := sVals[st.Name]; ok { + val, err := convertParamValue(&sv, st.Type) + if err != nil { + return nil, err + } + vals[st.Name] = val + } else { + vals[st.Name] = nil + } + } + return vals, nil +} diff --git a/vendor/cloud.google.com/go/bigquery/query.go b/vendor/cloud.google.com/go/bigquery/query.go new file mode 100644 index 000000000..f14f650cf --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/query.go @@ -0,0 +1,526 @@ +// Copyright 2015 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "context" + "errors" + "fmt" + "time" + + "cloud.google.com/go/internal/trace" + "cloud.google.com/go/internal/uid" + bq "google.golang.org/api/bigquery/v2" +) + +// QueryConfig holds the configuration for a query job. +type QueryConfig struct { + // Dst is the table into which the results of the query will be written. + // If this field is nil, a temporary table will be created. + Dst *Table + + // The query to execute. See https://cloud.google.com/bigquery/query-reference for details. + Q string + + // DefaultProjectID and DefaultDatasetID specify the dataset to use for unqualified table names in the query. + // If DefaultProjectID is set, DefaultDatasetID must also be set. + DefaultProjectID string + DefaultDatasetID string + + // TableDefinitions describes data sources outside of BigQuery. + // The map keys may be used as table names in the query string. + // + // When a QueryConfig is returned from Job.Config, the map values + // are always of type *ExternalDataConfig. + TableDefinitions map[string]ExternalData + + // CreateDisposition specifies the circumstances under which the destination table will be created. + // The default is CreateIfNeeded. + CreateDisposition TableCreateDisposition + + // WriteDisposition specifies how existing data in the destination table is treated. + // The default is WriteEmpty. + WriteDisposition TableWriteDisposition + + // DisableQueryCache prevents results being fetched from the query cache. + // If this field is false, results are fetched from the cache if they are available. + // The query cache is a best-effort cache that is flushed whenever tables in the query are modified. + // Cached results are only available when TableID is unspecified in the query's destination Table. + // For more information, see https://cloud.google.com/bigquery/querying-data#querycaching + DisableQueryCache bool + + // DisableFlattenedResults prevents results being flattened. + // If this field is false, results from nested and repeated fields are flattened. + // DisableFlattenedResults implies AllowLargeResults + // For more information, see https://cloud.google.com/bigquery/docs/data#nested + DisableFlattenedResults bool + + // AllowLargeResults allows the query to produce arbitrarily large result tables. + // The destination must be a table. + // When using this option, queries will take longer to execute, even if the result set is small. + // For additional limitations, see https://cloud.google.com/bigquery/querying-data#largequeryresults + AllowLargeResults bool + + // Priority specifies the priority with which to schedule the query. + // The default priority is InteractivePriority. + // For more information, see https://cloud.google.com/bigquery/querying-data#batchqueries + Priority QueryPriority + + // MaxBillingTier sets the maximum billing tier for a Query. + // Queries that have resource usage beyond this tier will fail (without + // incurring a charge). If this field is zero, the project default will be used. + MaxBillingTier int + + // MaxBytesBilled limits the number of bytes billed for + // this job. Queries that would exceed this limit will fail (without incurring + // a charge). + // If this field is less than 1, the project default will be + // used. + MaxBytesBilled int64 + + // UseStandardSQL causes the query to use standard SQL. The default. + // Deprecated: use UseLegacySQL. + UseStandardSQL bool + + // UseLegacySQL causes the query to use legacy SQL. + UseLegacySQL bool + + // Parameters is a list of query parameters. The presence of parameters + // implies the use of standard SQL. + // If the query uses positional syntax ("?"), then no parameter may have a name. + // If the query uses named syntax ("@p"), then all parameters must have names. + // It is illegal to mix positional and named syntax. + Parameters []QueryParameter + + // TimePartitioning specifies time-based partitioning + // for the destination table. + TimePartitioning *TimePartitioning + + // RangePartitioning specifies integer range-based partitioning + // for the destination table. + RangePartitioning *RangePartitioning + + // Clustering specifies the data clustering configuration for the destination table. + Clustering *Clustering + + // The labels associated with this job. + Labels map[string]string + + // If true, don't actually run this job. A valid query will return a mostly + // empty response with some processing statistics, while an invalid query will + // return the same error it would if it wasn't a dry run. + // + // Query.Read will fail with dry-run queries. Call Query.Run instead, and then + // call LastStatus on the returned job to get statistics. Calling Status on a + // dry-run job will fail. + DryRun bool + + // Custom encryption configuration (e.g., Cloud KMS keys). + DestinationEncryptionConfig *EncryptionConfig + + // Allows the schema of the destination table to be updated as a side effect of + // the query job. + SchemaUpdateOptions []string + + // CreateSession will trigger creation of a new session when true. + CreateSession bool + + // ConnectionProperties are optional key-values settings. + ConnectionProperties []*ConnectionProperty + + // Sets a best-effort deadline on a specific job. If job execution exceeds this + // timeout, BigQuery may attempt to cancel this work automatically. + // + // This deadline cannot be adjusted or removed once the job is created. Consider + // using Job.Cancel in situations where you need more dynamic behavior. + // + // Experimental: this option is experimental and may be modified or removed in future versions, + // regardless of any other documented package stability guarantees. + JobTimeout time.Duration + + // Force usage of Storage API if client is available. For test scenarios + forceStorageAPI bool +} + +func (qc *QueryConfig) toBQ() (*bq.JobConfiguration, error) { + qconf := &bq.JobConfigurationQuery{ + Query: qc.Q, + CreateDisposition: string(qc.CreateDisposition), + WriteDisposition: string(qc.WriteDisposition), + AllowLargeResults: qc.AllowLargeResults, + Priority: string(qc.Priority), + MaximumBytesBilled: qc.MaxBytesBilled, + TimePartitioning: qc.TimePartitioning.toBQ(), + RangePartitioning: qc.RangePartitioning.toBQ(), + Clustering: qc.Clustering.toBQ(), + DestinationEncryptionConfiguration: qc.DestinationEncryptionConfig.toBQ(), + SchemaUpdateOptions: qc.SchemaUpdateOptions, + CreateSession: qc.CreateSession, + } + if len(qc.TableDefinitions) > 0 { + qconf.TableDefinitions = make(map[string]bq.ExternalDataConfiguration) + } + for name, data := range qc.TableDefinitions { + qconf.TableDefinitions[name] = data.toBQ() + } + if qc.DefaultProjectID != "" || qc.DefaultDatasetID != "" { + qconf.DefaultDataset = &bq.DatasetReference{ + DatasetId: qc.DefaultDatasetID, + ProjectId: qc.DefaultProjectID, + } + } + if tier := int64(qc.MaxBillingTier); tier > 0 { + qconf.MaximumBillingTier = &tier + } + f := false + if qc.DisableQueryCache { + qconf.UseQueryCache = &f + } + if qc.DisableFlattenedResults { + qconf.FlattenResults = &f + // DisableFlattenResults implies AllowLargeResults. + qconf.AllowLargeResults = true + } + if qc.UseStandardSQL && qc.UseLegacySQL { + return nil, errors.New("bigquery: cannot provide both UseStandardSQL and UseLegacySQL") + } + if len(qc.Parameters) > 0 && qc.UseLegacySQL { + return nil, errors.New("bigquery: cannot provide both Parameters (implying standard SQL) and UseLegacySQL") + } + ptrue := true + pfalse := false + if qc.UseLegacySQL { + qconf.UseLegacySql = &ptrue + } else { + qconf.UseLegacySql = &pfalse + } + if qc.Dst != nil && !qc.Dst.implicitTable() { + qconf.DestinationTable = qc.Dst.toBQ() + } + for _, p := range qc.Parameters { + qp, err := p.toBQ() + if err != nil { + return nil, err + } + qconf.QueryParameters = append(qconf.QueryParameters, qp) + } + if len(qc.ConnectionProperties) > 0 { + bqcp := make([]*bq.ConnectionProperty, len(qc.ConnectionProperties)) + for k, v := range qc.ConnectionProperties { + bqcp[k] = v.toBQ() + } + qconf.ConnectionProperties = bqcp + } + jc := &bq.JobConfiguration{ + Labels: qc.Labels, + DryRun: qc.DryRun, + Query: qconf, + } + if qc.JobTimeout > 0 { + jc.JobTimeoutMs = qc.JobTimeout.Milliseconds() + } + return jc, nil +} + +func bqToQueryConfig(q *bq.JobConfiguration, c *Client) (*QueryConfig, error) { + qq := q.Query + qc := &QueryConfig{ + Labels: q.Labels, + DryRun: q.DryRun, + JobTimeout: time.Duration(q.JobTimeoutMs) * time.Millisecond, + Q: qq.Query, + CreateDisposition: TableCreateDisposition(qq.CreateDisposition), + WriteDisposition: TableWriteDisposition(qq.WriteDisposition), + AllowLargeResults: qq.AllowLargeResults, + Priority: QueryPriority(qq.Priority), + MaxBytesBilled: qq.MaximumBytesBilled, + UseLegacySQL: qq.UseLegacySql == nil || *qq.UseLegacySql, + TimePartitioning: bqToTimePartitioning(qq.TimePartitioning), + RangePartitioning: bqToRangePartitioning(qq.RangePartitioning), + Clustering: bqToClustering(qq.Clustering), + DestinationEncryptionConfig: bqToEncryptionConfig(qq.DestinationEncryptionConfiguration), + SchemaUpdateOptions: qq.SchemaUpdateOptions, + CreateSession: qq.CreateSession, + } + qc.UseStandardSQL = !qc.UseLegacySQL + + if len(qq.TableDefinitions) > 0 { + qc.TableDefinitions = make(map[string]ExternalData) + } + for name, qedc := range qq.TableDefinitions { + edc, err := bqToExternalDataConfig(&qedc) + if err != nil { + return nil, err + } + qc.TableDefinitions[name] = edc + } + if qq.DefaultDataset != nil { + qc.DefaultProjectID = qq.DefaultDataset.ProjectId + qc.DefaultDatasetID = qq.DefaultDataset.DatasetId + } + if qq.MaximumBillingTier != nil { + qc.MaxBillingTier = int(*qq.MaximumBillingTier) + } + if qq.UseQueryCache != nil && !*qq.UseQueryCache { + qc.DisableQueryCache = true + } + if qq.FlattenResults != nil && !*qq.FlattenResults { + qc.DisableFlattenedResults = true + } + if qq.DestinationTable != nil { + qc.Dst = bqToTable(qq.DestinationTable, c) + } + for _, qp := range qq.QueryParameters { + p, err := bqToQueryParameter(qp) + if err != nil { + return nil, err + } + qc.Parameters = append(qc.Parameters, p) + } + if len(qq.ConnectionProperties) > 0 { + props := make([]*ConnectionProperty, len(qq.ConnectionProperties)) + for k, v := range qq.ConnectionProperties { + props[k] = bqToConnectionProperty(v) + } + qc.ConnectionProperties = props + } + return qc, nil +} + +// QueryPriority specifies a priority with which a query is to be executed. +type QueryPriority string + +const ( + // BatchPriority specifies that the query should be scheduled with the + // batch priority. BigQuery queues each batch query on your behalf, and + // starts the query as soon as idle resources are available, usually within + // a few minutes. If BigQuery hasn't started the query within 24 hours, + // BigQuery changes the job priority to interactive. Batch queries don't + // count towards your concurrent rate limit, which can make it easier to + // start many queries at once. + // + // More information can be found at https://cloud.google.com/bigquery/docs/running-queries#batchqueries. + BatchPriority QueryPriority = "BATCH" + // InteractivePriority specifies that the query should be scheduled with + // interactive priority, which means that the query is executed as soon as + // possible. Interactive queries count towards your concurrent rate limit + // and your daily limit. It is the default priority with which queries get + // executed. + // + // More information can be found at https://cloud.google.com/bigquery/docs/running-queries#queries. + InteractivePriority QueryPriority = "INTERACTIVE" +) + +// A Query queries data from a BigQuery table. Use Client.Query to create a Query. +type Query struct { + JobIDConfig + QueryConfig + client *Client +} + +// Query creates a query with string q. +// The returned Query may optionally be further configured before its Run method is called. +func (c *Client) Query(q string) *Query { + return &Query{ + client: c, + QueryConfig: QueryConfig{Q: q}, + } +} + +// Run initiates a query job. +func (q *Query) Run(ctx context.Context) (j *Job, err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Query.Run") + defer func() { trace.EndSpan(ctx, err) }() + + job, err := q.newJob() + if err != nil { + return nil, err + } + j, err = q.client.insertJob(ctx, job, nil) + if err != nil { + return nil, err + } + return j, nil +} + +func (q *Query) newJob() (*bq.Job, error) { + config, err := q.QueryConfig.toBQ() + if err != nil { + return nil, err + } + return &bq.Job{ + JobReference: q.JobIDConfig.createJobRef(q.client), + Configuration: config, + }, nil +} + +// Read submits a query for execution and returns the results via a RowIterator. +// If the request can be satisfied by running using the optimized query path, it +// is used in place of the jobs.insert path as this path does not expose a job +// object. +func (q *Query) Read(ctx context.Context) (it *RowIterator, err error) { + if q.QueryConfig.DryRun { + return nil, errors.New("bigquery: cannot evaluate Query.Read() for dry-run queries") + } + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Query.Run") + defer func() { trace.EndSpan(ctx, err) }() + queryRequest, err := q.probeFastPath() + if err != nil { + // Any error means we fallback to the older mechanism. + job, err := q.Run(ctx) + if err != nil { + return nil, err + } + return job.Read(ctx) + } + + // we have a config, run on fastPath. + resp, err := q.client.runQuery(ctx, queryRequest) + if err != nil { + return nil, err + } + + // construct a minimal job for backing the row iterator. + var minimalJob *Job + if resp.JobReference != nil { + minimalJob = &Job{ + c: q.client, + jobID: resp.JobReference.JobId, + location: resp.JobReference.Location, + projectID: resp.JobReference.ProjectId, + } + } + + if resp.JobComplete { + // If more pages are available, discard and use the Storage API instead + if resp.PageToken != "" && q.client.isStorageReadAvailable() { + it, err = newStorageRowIteratorFromJob(ctx, minimalJob) + if err == nil { + return it, nil + } + } + rowSource := &rowSource{ + j: minimalJob, + queryID: resp.QueryId, + // RowIterator can precache results from the iterator to save a lookup. + cachedRows: resp.Rows, + cachedSchema: resp.Schema, + cachedNextToken: resp.PageToken, + } + return newRowIterator(ctx, rowSource, fetchPage), nil + } + // We're on the fastPath, but we need to poll because the job is incomplete. + // Fallback to job-based Read(). + // + // (Issue 2937) In order to satisfy basic probing of the job in classic path, + // we need to supply additional config which is probed for presence, not contents. + // + minimalJob.config = &bq.JobConfiguration{ + Query: &bq.JobConfigurationQuery{}, + } + + return minimalJob.Read(ctx) +} + +// probeFastPath is used to attempt configuring a jobs.Query request based on a +// user's Query configuration. If all the options set on the job are supported on the +// faster query path, this method returns a QueryRequest suitable for execution. +func (q *Query) probeFastPath() (*bq.QueryRequest, error) { + if q.forceStorageAPI && q.client.isStorageReadAvailable() { + return nil, fmt.Errorf("force Storage API usage") + } + // This is a denylist of settings which prevent us from composing an equivalent + // bq.QueryRequest due to differences between configuration parameters accepted + // by jobs.insert vs jobs.query. + if q.QueryConfig.Dst != nil || + q.QueryConfig.TableDefinitions != nil || + q.QueryConfig.CreateDisposition != "" || + q.QueryConfig.WriteDisposition != "" || + !(q.QueryConfig.Priority == "" || q.QueryConfig.Priority == InteractivePriority) || + q.QueryConfig.UseLegacySQL || + q.QueryConfig.MaxBillingTier != 0 || + q.QueryConfig.TimePartitioning != nil || + q.QueryConfig.RangePartitioning != nil || + q.QueryConfig.Clustering != nil || + q.QueryConfig.DestinationEncryptionConfig != nil || + q.QueryConfig.SchemaUpdateOptions != nil || + q.QueryConfig.JobTimeout != 0 || + // User has defined the jobID generation behavior + q.JobIDConfig.JobID != "" { + return nil, fmt.Errorf("QueryConfig incompatible with fastPath") + } + pfalse := false + qRequest := &bq.QueryRequest{ + Query: q.QueryConfig.Q, + CreateSession: q.CreateSession, + Location: q.Location, + UseLegacySql: &pfalse, + MaximumBytesBilled: q.QueryConfig.MaxBytesBilled, + RequestId: uid.NewSpace("request", nil).New(), + Labels: q.Labels, + FormatOptions: &bq.DataFormatOptions{ + UseInt64Timestamp: true, + }, + } + if q.QueryConfig.DisableQueryCache { + qRequest.UseQueryCache = &pfalse + } + // Convert query parameters + for _, p := range q.QueryConfig.Parameters { + qp, err := p.toBQ() + if err != nil { + return nil, err + } + qRequest.QueryParameters = append(qRequest.QueryParameters, qp) + } + if q.QueryConfig.DefaultDatasetID != "" { + qRequest.DefaultDataset = &bq.DatasetReference{ + ProjectId: q.QueryConfig.DefaultProjectID, + DatasetId: q.QueryConfig.DefaultDatasetID, + } + } + if q.client.enableQueryPreview { + qRequest.JobCreationMode = "JOB_CREATION_OPTIONAL" + } + return qRequest, nil +} + +// ConnectionProperty represents a single key and value pair that can be sent alongside a query request or load job. +type ConnectionProperty struct { + // Name of the connection property to set. + Key string + // Value of the connection property. + Value string +} + +func (cp *ConnectionProperty) toBQ() *bq.ConnectionProperty { + if cp == nil { + return nil + } + return &bq.ConnectionProperty{ + Key: cp.Key, + Value: cp.Value, + } +} + +func bqToConnectionProperty(in *bq.ConnectionProperty) *ConnectionProperty { + if in == nil { + return nil + } + return &ConnectionProperty{ + Key: in.Key, + Value: in.Value, + } +} diff --git a/vendor/cloud.google.com/go/bigquery/random.go b/vendor/cloud.google.com/go/bigquery/random.go new file mode 100644 index 000000000..65f938434 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/random.go @@ -0,0 +1,56 @@ +// Copyright 2018 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "math/rand" + "os" + "sync" + "time" +) + +// Support for random values (typically job IDs and insert IDs). + +const alphanum = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" + +var ( + rngMu sync.Mutex + rng = rand.New(rand.NewSource(time.Now().UnixNano() ^ int64(os.Getpid()))) +) + +// For testing. +var randomIDFn = randomID + +// As of August 2017, the BigQuery service uses 27 alphanumeric characters for +// suffixes. +const randomIDLen = 27 + +func randomID() string { + // This is used for both job IDs and insert IDs. + var b [randomIDLen]byte + rngMu.Lock() + for i := 0; i < len(b); i++ { + b[i] = alphanum[rng.Intn(len(alphanum))] + } + rngMu.Unlock() + return string(b[:]) +} + +// Seed seeds this package's random number generator, used for generating job and +// insert IDs. Use Seed to obtain repeatable, deterministic behavior from bigquery +// clients. Seed should be called before any clients are created. +func Seed(s int64) { + rng = rand.New(rand.NewSource(s)) +} diff --git a/vendor/cloud.google.com/go/bigquery/routine.go b/vendor/cloud.google.com/go/bigquery/routine.go new file mode 100644 index 000000000..77fd5d90d --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/routine.go @@ -0,0 +1,542 @@ +// Copyright 2019 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "context" + "errors" + "fmt" + "strings" + "time" + + "cloud.google.com/go/internal/optional" + "cloud.google.com/go/internal/trace" + bq "google.golang.org/api/bigquery/v2" +) + +// Routine represents a reference to a BigQuery routine. There are multiple +// types of routines including stored procedures and scalar user-defined functions (UDFs). +// For more information, see the BigQuery documentation at https://cloud.google.com/bigquery/docs/ +type Routine struct { + ProjectID string + DatasetID string + RoutineID string + + c *Client +} + +func (r *Routine) toBQ() *bq.RoutineReference { + return &bq.RoutineReference{ + ProjectId: r.ProjectID, + DatasetId: r.DatasetID, + RoutineId: r.RoutineID, + } +} + +// Identifier returns the ID of the routine in the requested format. +// +// For Standard SQL format, the identifier will be quoted if the +// ProjectID contains dash (-) characters. +func (r *Routine) Identifier(f IdentifierFormat) (string, error) { + switch f { + case StandardSQLID: + if strings.Contains(r.ProjectID, "-") { + return fmt.Sprintf("`%s`.%s.%s", r.ProjectID, r.DatasetID, r.RoutineID), nil + } + return fmt.Sprintf("%s.%s.%s", r.ProjectID, r.DatasetID, r.RoutineID), nil + default: + return "", ErrUnknownIdentifierFormat + } +} + +// FullyQualifiedName returns an identifer for the routine in project.dataset.routine format. +func (r *Routine) FullyQualifiedName() string { + s, _ := r.Identifier(StandardSQLID) + return s +} + +// Create creates a Routine in the BigQuery service. +// Pass in a RoutineMetadata to define the routine. +func (r *Routine) Create(ctx context.Context, rm *RoutineMetadata) (err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Routine.Create") + defer func() { trace.EndSpan(ctx, err) }() + + routine, err := rm.toBQ() + if err != nil { + return err + } + routine.RoutineReference = &bq.RoutineReference{ + ProjectId: r.ProjectID, + DatasetId: r.DatasetID, + RoutineId: r.RoutineID, + } + req := r.c.bqs.Routines.Insert(r.ProjectID, r.DatasetID, routine).Context(ctx) + setClientHeader(req.Header()) + _, err = req.Do() + return err +} + +// Metadata fetches the metadata for a given Routine. +func (r *Routine) Metadata(ctx context.Context) (rm *RoutineMetadata, err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Routine.Metadata") + defer func() { trace.EndSpan(ctx, err) }() + + req := r.c.bqs.Routines.Get(r.ProjectID, r.DatasetID, r.RoutineID).Context(ctx) + setClientHeader(req.Header()) + var routine *bq.Routine + err = runWithRetry(ctx, func() (err error) { + ctx = trace.StartSpan(ctx, "bigquery.routines.get") + routine, err = req.Do() + trace.EndSpan(ctx, err) + return err + }) + if err != nil { + return nil, err + } + return bqToRoutineMetadata(routine) +} + +// Update modifies properties of a Routine using the API. +func (r *Routine) Update(ctx context.Context, upd *RoutineMetadataToUpdate, etag string) (rm *RoutineMetadata, err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Routine.Update") + defer func() { trace.EndSpan(ctx, err) }() + + bqr, err := upd.toBQ() + if err != nil { + return nil, err + } + //TODO: remove when routines update supports partial requests. + bqr.RoutineReference = &bq.RoutineReference{ + ProjectId: r.ProjectID, + DatasetId: r.DatasetID, + RoutineId: r.RoutineID, + } + + call := r.c.bqs.Routines.Update(r.ProjectID, r.DatasetID, r.RoutineID, bqr).Context(ctx) + setClientHeader(call.Header()) + if etag != "" { + call.Header().Set("If-Match", etag) + } + var res *bq.Routine + if err := runWithRetry(ctx, func() (err error) { + ctx = trace.StartSpan(ctx, "bigquery.routines.update") + res, err = call.Do() + trace.EndSpan(ctx, err) + return err + }); err != nil { + return nil, err + } + return bqToRoutineMetadata(res) +} + +// Delete removes a Routine from a dataset. +func (r *Routine) Delete(ctx context.Context) (err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Model.Delete") + defer func() { trace.EndSpan(ctx, err) }() + + req := r.c.bqs.Routines.Delete(r.ProjectID, r.DatasetID, r.RoutineID).Context(ctx) + setClientHeader(req.Header()) + return req.Do() +} + +// RoutineDeterminism specifies the level of determinism that javascript User Defined Functions +// exhibit. +type RoutineDeterminism string + +const ( + // Deterministic indicates that two calls with the same input to a UDF yield the same output. + Deterministic RoutineDeterminism = "DETERMINISTIC" + // NotDeterministic indicates that the output of the UDF is not guaranteed to yield the same + // output each time for a given set of inputs. + NotDeterministic RoutineDeterminism = "NOT_DETERMINISTIC" +) + +const ( + // ScalarFunctionRoutine scalar function routine type + ScalarFunctionRoutine = "SCALAR_FUNCTION" + // ProcedureRoutine procedure routine type + ProcedureRoutine = "PROCEDURE" + // TableValuedFunctionRoutine routine type for table valued functions + TableValuedFunctionRoutine = "TABLE_VALUED_FUNCTION" +) + +// RoutineMetadata represents details of a given BigQuery Routine. +type RoutineMetadata struct { + ETag string + // Type indicates the type of routine, such as SCALAR_FUNCTION, PROCEDURE, + // or TABLE_VALUED_FUNCTION. + Type string + CreationTime time.Time + Description string + // DeterminismLevel is only applicable to Javascript UDFs. + DeterminismLevel RoutineDeterminism + LastModifiedTime time.Time + // Language of the routine, such as SQL or JAVASCRIPT. + Language string + // The list of arguments for the the routine. + Arguments []*RoutineArgument + + // Information for a remote user-defined function. + RemoteFunctionOptions *RemoteFunctionOptions + + ReturnType *StandardSQLDataType + + // Set only if the routine type is TABLE_VALUED_FUNCTION. + ReturnTableType *StandardSQLTableType + // For javascript routines, this indicates the paths for imported libraries. + ImportedLibraries []string + // Body contains the routine's body. + // For functions, Body is the expression in the AS clause. + // + // For SQL functions, it is the substring inside the parentheses of a CREATE + // FUNCTION statement. + // + // For JAVASCRIPT function, it is the evaluated string in the AS clause of + // a CREATE FUNCTION statement. + Body string + + // For data governance use cases. If set to "DATA_MASKING", the function + // is validated and made available as a masking function. For more information, + // see: https://cloud.google.com/bigquery/docs/user-defined-functions#custom-mask + DataGovernanceType string +} + +// RemoteFunctionOptions contains information for a remote user-defined function. +type RemoteFunctionOptions struct { + + // Fully qualified name of the user-provided connection object which holds + // the authentication information to send requests to the remote service. + // Format: + // projects/{projectId}/locations/{locationId}/connections/{connectionId} + Connection string + + // Endpoint of the user-provided remote service (e.g. a function url in + // Google Cloud Function or Cloud Run ) + Endpoint string + + // Max number of rows in each batch sent to the remote service. + // If absent or if 0, it means no limit. + MaxBatchingRows int64 + + // User-defined context as a set of key/value pairs, + // which will be sent as function invocation context together with + // batched arguments in the requests to the remote service. The total + // number of bytes of keys and values must be less than 8KB. + UserDefinedContext map[string]string +} + +func bqToRemoteFunctionOptions(in *bq.RemoteFunctionOptions) (*RemoteFunctionOptions, error) { + if in == nil { + return nil, nil + } + rfo := &RemoteFunctionOptions{ + Connection: in.Connection, + Endpoint: in.Endpoint, + MaxBatchingRows: in.MaxBatchingRows, + } + if in.UserDefinedContext != nil { + rfo.UserDefinedContext = make(map[string]string) + for k, v := range in.UserDefinedContext { + rfo.UserDefinedContext[k] = v + } + } + return rfo, nil +} + +func (rfo *RemoteFunctionOptions) toBQ() (*bq.RemoteFunctionOptions, error) { + if rfo == nil { + return nil, nil + } + r := &bq.RemoteFunctionOptions{ + Connection: rfo.Connection, + Endpoint: rfo.Endpoint, + MaxBatchingRows: rfo.MaxBatchingRows, + } + if rfo.UserDefinedContext != nil { + r.UserDefinedContext = make(map[string]string) + for k, v := range rfo.UserDefinedContext { + r.UserDefinedContext[k] = v + } + } + return r, nil +} + +func (rm *RoutineMetadata) toBQ() (*bq.Routine, error) { + r := &bq.Routine{} + if rm == nil { + return r, nil + } + r.Description = rm.Description + r.DeterminismLevel = string(rm.DeterminismLevel) + r.Language = rm.Language + r.RoutineType = rm.Type + r.DefinitionBody = rm.Body + r.DataGovernanceType = rm.DataGovernanceType + rt, err := rm.ReturnType.toBQ() + if err != nil { + return nil, err + } + r.ReturnType = rt + if rm.ReturnTableType != nil { + tt, err := rm.ReturnTableType.toBQ() + if err != nil { + return nil, fmt.Errorf("couldn't convert return table type: %w", err) + } + r.ReturnTableType = tt + } + var args []*bq.Argument + for _, v := range rm.Arguments { + bqa, err := v.toBQ() + if err != nil { + return nil, err + } + args = append(args, bqa) + } + r.Arguments = args + r.ImportedLibraries = rm.ImportedLibraries + if rm.RemoteFunctionOptions != nil { + rfo, err := rm.RemoteFunctionOptions.toBQ() + if err != nil { + return nil, err + } + r.RemoteFunctionOptions = rfo + } + if !rm.CreationTime.IsZero() { + return nil, errors.New("cannot set CreationTime on create") + } + if !rm.LastModifiedTime.IsZero() { + return nil, errors.New("cannot set LastModifiedTime on create") + } + if rm.ETag != "" { + return nil, errors.New("cannot set ETag on create") + } + return r, nil +} + +// RoutineArgument represents an argument supplied to a routine such as a UDF or +// stored procedured. +type RoutineArgument struct { + // The name of this argument. Can be absent for function return argument. + Name string + // Kind indicates the kind of argument represented. + // Possible values: + // ARGUMENT_KIND_UNSPECIFIED + // FIXED_TYPE - The argument is a variable with fully specified + // type, which can be a struct or an array, but not a table. + // ANY_TYPE - The argument is any type, including struct or array, + // but not a table. + Kind string + // Mode is optional, and indicates whether an argument is input or output. + // Mode can only be set for procedures. + // + // Possible values: + // MODE_UNSPECIFIED + // IN - The argument is input-only. + // OUT - The argument is output-only. + // INOUT - The argument is both an input and an output. + Mode string + // DataType provides typing information. Unnecessary for ANY_TYPE Kind + // arguments. + DataType *StandardSQLDataType +} + +func (ra *RoutineArgument) toBQ() (*bq.Argument, error) { + if ra == nil { + return nil, nil + } + a := &bq.Argument{ + Name: ra.Name, + ArgumentKind: ra.Kind, + Mode: ra.Mode, + } + if ra.DataType != nil { + dt, err := ra.DataType.toBQ() + if err != nil { + return nil, err + } + a.DataType = dt + } + return a, nil +} + +func bqToRoutineArgument(bqa *bq.Argument) (*RoutineArgument, error) { + arg := &RoutineArgument{ + Name: bqa.Name, + Kind: bqa.ArgumentKind, + Mode: bqa.Mode, + } + dt, err := bqToStandardSQLDataType(bqa.DataType) + if err != nil { + return nil, err + } + arg.DataType = dt + return arg, nil +} + +func bqToArgs(in []*bq.Argument) ([]*RoutineArgument, error) { + var out []*RoutineArgument + for _, a := range in { + arg, err := bqToRoutineArgument(a) + if err != nil { + return nil, err + } + out = append(out, arg) + } + return out, nil +} + +func routineArgumentsToBQ(in []*RoutineArgument) ([]*bq.Argument, error) { + var out []*bq.Argument + for _, inarg := range in { + arg, err := inarg.toBQ() + if err != nil { + return nil, err + } + out = append(out, arg) + } + return out, nil +} + +// RoutineMetadataToUpdate governs updating a routine. +type RoutineMetadataToUpdate struct { + Arguments []*RoutineArgument + Description optional.String + DeterminismLevel optional.String + Type optional.String + Language optional.String + Body optional.String + ImportedLibraries []string + ReturnType *StandardSQLDataType + ReturnTableType *StandardSQLTableType + DataGovernanceType optional.String +} + +func (rm *RoutineMetadataToUpdate) toBQ() (*bq.Routine, error) { + r := &bq.Routine{} + forceSend := func(field string) { + r.ForceSendFields = append(r.ForceSendFields, field) + } + nullField := func(field string) { + r.NullFields = append(r.NullFields, field) + } + if rm.Description != nil { + r.Description = optional.ToString(rm.Description) + forceSend("Description") + } + if rm.DeterminismLevel != nil { + processed := false + // Allow either string or RoutineDeterminism, a type based on string. + if x, ok := rm.DeterminismLevel.(RoutineDeterminism); ok { + r.DeterminismLevel = string(x) + processed = true + } + if x, ok := rm.DeterminismLevel.(string); ok { + r.DeterminismLevel = x + processed = true + } + if !processed { + panic(fmt.Sprintf("DeterminismLevel should be either type string or RoutineDetermism in update, got %T", rm.DeterminismLevel)) + } + } + if rm.Arguments != nil { + if len(rm.Arguments) == 0 { + nullField("Arguments") + } else { + args, err := routineArgumentsToBQ(rm.Arguments) + if err != nil { + return nil, err + } + r.Arguments = args + forceSend("Arguments") + } + } + if rm.Type != nil { + r.RoutineType = optional.ToString(rm.Type) + forceSend("RoutineType") + } + if rm.Language != nil { + r.Language = optional.ToString(rm.Language) + forceSend("Language") + } + if rm.Body != nil { + r.DefinitionBody = optional.ToString(rm.Body) + forceSend("DefinitionBody") + } + if rm.ImportedLibraries != nil { + if len(rm.ImportedLibraries) == 0 { + nullField("ImportedLibraries") + } else { + r.ImportedLibraries = rm.ImportedLibraries + forceSend("ImportedLibraries") + } + } + if rm.ReturnType != nil { + dt, err := rm.ReturnType.toBQ() + if err != nil { + return nil, err + } + r.ReturnType = dt + forceSend("ReturnType") + } + if rm.ReturnTableType != nil { + tt, err := rm.ReturnTableType.toBQ() + if err != nil { + return nil, err + } + r.ReturnTableType = tt + forceSend("ReturnTableType") + } + if rm.DataGovernanceType != nil { + r.DataGovernanceType = optional.ToString(rm.DataGovernanceType) + forceSend("DataGovernanceType") + } + return r, nil +} + +func bqToRoutineMetadata(r *bq.Routine) (*RoutineMetadata, error) { + meta := &RoutineMetadata{ + ETag: r.Etag, + Type: r.RoutineType, + CreationTime: unixMillisToTime(r.CreationTime), + Description: r.Description, + DeterminismLevel: RoutineDeterminism(r.DeterminismLevel), + LastModifiedTime: unixMillisToTime(r.LastModifiedTime), + Language: r.Language, + ImportedLibraries: r.ImportedLibraries, + Body: r.DefinitionBody, + DataGovernanceType: r.DataGovernanceType, + } + args, err := bqToArgs(r.Arguments) + if err != nil { + return nil, err + } + meta.Arguments = args + ret, err := bqToStandardSQLDataType(r.ReturnType) + if err != nil { + return nil, err + } + meta.ReturnType = ret + rfo, err := bqToRemoteFunctionOptions(r.RemoteFunctionOptions) + if err != nil { + return nil, err + } + meta.RemoteFunctionOptions = rfo + tt, err := bqToStandardSQLTableType(r.ReturnTableType) + if err != nil { + return nil, err + } + meta.ReturnTableType = tt + return meta, nil +} diff --git a/vendor/cloud.google.com/go/bigquery/schema.go b/vendor/cloud.google.com/go/bigquery/schema.go new file mode 100644 index 000000000..17d4ab71d --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/schema.go @@ -0,0 +1,704 @@ +// Copyright 2015 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "encoding/json" + "errors" + "fmt" + "reflect" + "sync" + + bq "google.golang.org/api/bigquery/v2" +) + +// Schema describes the fields in a table or query result. +type Schema []*FieldSchema + +// Relax returns a version of the schema where no fields are marked +// as Required. +func (s Schema) Relax() Schema { + var out Schema + for _, v := range s { + relaxed := &FieldSchema{ + Name: v.Name, + Description: v.Description, + Repeated: v.Repeated, + Required: false, + Type: v.Type, + Schema: v.Schema.Relax(), + } + out = append(out, relaxed) + } + return out +} + +// ToJSONFields exposes the schema as a JSON array of +// TableFieldSchema objects: https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#TableFieldSchema +// +// Generally this isn't needed for direct usage of this library, but is +// provided for use cases where you're interacting with other tools +// that consume the underlying API representation directly such as the +// BQ CLI tool. +func (s Schema) ToJSONFields() ([]byte, error) { + var rawSchema []*bq.TableFieldSchema + for _, f := range s { + rawSchema = append(rawSchema, f.toBQ()) + } + // Use json.MarshalIndent to make the output more human-readable. + return json.MarshalIndent(rawSchema, "", " ") +} + +// FieldSchema describes a single field. +type FieldSchema struct { + // The field name. + // Must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), + // and must start with a letter or underscore. + // The maximum length is 128 characters. + Name string + + // A description of the field. The maximum length is 16,384 characters. + Description string + + // Whether the field may contain multiple values. + Repeated bool + // Whether the field is required. Ignored if Repeated is true. + Required bool + + // The field data type. If Type is Record, then this field contains a nested schema, + // which is described by Schema. + Type FieldType + + // Annotations for enforcing column-level security constraints. + PolicyTags *PolicyTagList + + // Describes the nested schema if Type is set to Record. + Schema Schema + + // Maximum length of the field for STRING or BYTES type. + // + // It is invalid to set value for types other than STRING or BYTES. + // + // For STRING type, this represents the maximum UTF-8 length of strings + // allowed in the field. For BYTES type, this represents the maximum + // number of bytes in the field. + MaxLength int64 + + // Precision can be used to constrain the maximum number of + // total digits allowed for NUMERIC or BIGNUMERIC types. + // + // It is invalid to set values for Precision for types other than + // NUMERIC or BIGNUMERIC. + // + // For NUMERIC type, acceptable values for Precision must + // be: 1 ≤ (Precision - Scale) ≤ 29. Values for Scale + // must be: 0 ≤ Scale ≤ 9. + // + // For BIGNUMERIC type, acceptable values for Precision must + // be: 1 ≤ (Precision - Scale) ≤ 38. Values for Scale + // must be: 0 ≤ Scale ≤ 38. + Precision int64 + + // Scale can be used to constrain the maximum number of digits + // in the fractional part of a NUMERIC or BIGNUMERIC type. + // + // If the Scale value is set, the Precision value must be set as well. + // + // It is invalid to set values for Scale for types other than + // NUMERIC or BIGNUMERIC. + // + // See the Precision field for additional guidance about valid values. + Scale int64 + + // DefaultValueExpression is used to specify the default value of a field + // using a SQL expression. It can only be set for top level fields (columns). + // + // You can use struct or array expression to specify default value for the + // entire struct or array. The valid SQL expressions are: + // + // - Literals for all data types, including STRUCT and ARRAY. + // - The following functions: + // - CURRENT_TIMESTAMP + // - CURRENT_TIME + // - CURRENT_DATE + // - CURRENT_DATETIME + // - GENERATE_UUID + // - RAND + // - SESSION_USER + // - ST_GEOGPOINT + // - Struct or array composed with the above allowed functions, for example: + // [CURRENT_DATE(), DATE '2020-01-01']" + DefaultValueExpression string + + // Collation can be set only when the type of field is STRING. + // The following values are supported: + // - 'und:ci': undetermined locale, case insensitive. + // - '': empty string. Default to case-sensitive behavior. + // More information: https://cloud.google.com/bigquery/docs/reference/standard-sql/collation-concepts + Collation string + + // Information about the range. + // If the type is RANGE, this field is required. + RangeElementType *RangeElementType +} + +func (fs *FieldSchema) toBQ() *bq.TableFieldSchema { + tfs := &bq.TableFieldSchema{ + Description: fs.Description, + Name: fs.Name, + Type: string(fs.Type), + PolicyTags: fs.PolicyTags.toBQ(), + MaxLength: fs.MaxLength, + Precision: fs.Precision, + Scale: fs.Scale, + DefaultValueExpression: fs.DefaultValueExpression, + Collation: string(fs.Collation), + RangeElementType: fs.RangeElementType.toBQ(), + } + + if fs.Repeated { + tfs.Mode = "REPEATED" + } else if fs.Required { + tfs.Mode = "REQUIRED" + } // else leave as default, which is interpreted as NULLABLE. + + for _, f := range fs.Schema { + tfs.Fields = append(tfs.Fields, f.toBQ()) + } + + return tfs +} + +// RangeElementType describes information about the range type. +type RangeElementType struct { + // The subtype of the RANGE, if the type of this field is RANGE. + // Possible values for the field element type of a RANGE include: + // DATE, DATETIME, or TIMESTAMP. + Type FieldType +} + +func (rt *RangeElementType) toBQ() *bq.TableFieldSchemaRangeElementType { + if rt == nil { + return nil + } + return &bq.TableFieldSchemaRangeElementType{ + Type: string(rt.Type), + } +} + +func bqToRangeElementType(rt *bq.TableFieldSchemaRangeElementType) *RangeElementType { + if rt == nil { + return nil + } + return &RangeElementType{ + Type: FieldType(rt.Type), + } +} + +// PolicyTagList represents the annotations on a schema column for enforcing column-level security. +// For more information, see https://cloud.google.com/bigquery/docs/column-level-security-intro +type PolicyTagList struct { + Names []string +} + +func (ptl *PolicyTagList) toBQ() *bq.TableFieldSchemaPolicyTags { + if ptl == nil { + return nil + } + return &bq.TableFieldSchemaPolicyTags{ + Names: ptl.Names, + } +} + +func bqToPolicyTagList(pt *bq.TableFieldSchemaPolicyTags) *PolicyTagList { + if pt == nil { + return nil + } + return &PolicyTagList{ + Names: pt.Names, + } +} + +func (s Schema) toBQ() *bq.TableSchema { + var fields []*bq.TableFieldSchema + for _, f := range s { + fields = append(fields, f.toBQ()) + } + return &bq.TableSchema{Fields: fields} +} + +func bqToFieldSchema(tfs *bq.TableFieldSchema) *FieldSchema { + fs := &FieldSchema{ + Description: tfs.Description, + Name: tfs.Name, + Repeated: tfs.Mode == "REPEATED", + Required: tfs.Mode == "REQUIRED", + Type: FieldType(tfs.Type), + PolicyTags: bqToPolicyTagList(tfs.PolicyTags), + MaxLength: tfs.MaxLength, + Precision: tfs.Precision, + Scale: tfs.Scale, + DefaultValueExpression: tfs.DefaultValueExpression, + Collation: tfs.Collation, + RangeElementType: bqToRangeElementType(tfs.RangeElementType), + } + + for _, f := range tfs.Fields { + fs.Schema = append(fs.Schema, bqToFieldSchema(f)) + } + return fs +} + +func bqToSchema(ts *bq.TableSchema) Schema { + if ts == nil { + return nil + } + var s Schema + for _, f := range ts.Fields { + s = append(s, bqToFieldSchema(f)) + } + return s +} + +// FieldType is the type of field. +type FieldType string + +const ( + // StringFieldType is a string field type. + StringFieldType FieldType = "STRING" + // BytesFieldType is a bytes field type. + BytesFieldType FieldType = "BYTES" + // IntegerFieldType is a integer field type. + IntegerFieldType FieldType = "INTEGER" + // FloatFieldType is a float field type. + FloatFieldType FieldType = "FLOAT" + // BooleanFieldType is a boolean field type. + BooleanFieldType FieldType = "BOOLEAN" + // TimestampFieldType is a timestamp field type. + TimestampFieldType FieldType = "TIMESTAMP" + // RecordFieldType is a record field type. It is typically used to create columns with repeated or nested data. + RecordFieldType FieldType = "RECORD" + // DateFieldType is a date field type. + DateFieldType FieldType = "DATE" + // TimeFieldType is a time field type. + TimeFieldType FieldType = "TIME" + // DateTimeFieldType is a datetime field type. + DateTimeFieldType FieldType = "DATETIME" + // NumericFieldType is a numeric field type. Numeric types include integer types, floating point types and the + // NUMERIC data type. + NumericFieldType FieldType = "NUMERIC" + // GeographyFieldType is a string field type. Geography types represent a set of points + // on the Earth's surface, represented in Well Known Text (WKT) format. + GeographyFieldType FieldType = "GEOGRAPHY" + // BigNumericFieldType is a numeric field type that supports values of larger precision + // and scale than the NumericFieldType. + BigNumericFieldType FieldType = "BIGNUMERIC" + // IntervalFieldType is a representation of a duration or an amount of time. + IntervalFieldType FieldType = "INTERVAL" + // JSONFieldType is a representation of a json object. + JSONFieldType FieldType = "JSON" + // RangeFieldType represents a continuous range of values. + RangeFieldType FieldType = "RANGE" +) + +var ( + errEmptyJSONSchema = errors.New("bigquery: empty JSON schema") + fieldTypes = map[FieldType]bool{ + StringFieldType: true, + BytesFieldType: true, + IntegerFieldType: true, + FloatFieldType: true, + BooleanFieldType: true, + TimestampFieldType: true, + RecordFieldType: true, + DateFieldType: true, + TimeFieldType: true, + DateTimeFieldType: true, + NumericFieldType: true, + GeographyFieldType: true, + BigNumericFieldType: true, + IntervalFieldType: true, + JSONFieldType: true, + RangeFieldType: true, + } + // The API will accept alias names for the types based on the Standard SQL type names. + fieldAliases = map[FieldType]FieldType{ + "BOOL": BooleanFieldType, + "FLOAT64": FloatFieldType, + "INT64": IntegerFieldType, + "STRUCT": RecordFieldType, + "DECIMAL": NumericFieldType, + "BIGDECIMAL": BigNumericFieldType, + } +) + +var typeOfByteSlice = reflect.TypeOf([]byte{}) + +// InferSchema tries to derive a BigQuery schema from the supplied struct value. +// Each exported struct field is mapped to a field in the schema. +// +// The following BigQuery types are inferred from the corresponding Go types. +// (This is the same mapping as that used for RowIterator.Next.) Fields inferred +// from these types are marked required (non-nullable). +// +// STRING string +// BOOL bool +// INTEGER int, int8, int16, int32, int64, uint8, uint16, uint32 +// FLOAT float32, float64 +// BYTES []byte +// TIMESTAMP time.Time +// DATE civil.Date +// TIME civil.Time +// DATETIME civil.DateTime +// NUMERIC *big.Rat +// +// The big.Rat type supports numbers of arbitrary size and precision. Values +// will be rounded to 9 digits after the decimal point before being transmitted +// to BigQuery. See https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#numeric-type +// for more on NUMERIC. +// +// A Go slice or array type is inferred to be a BigQuery repeated field of the +// element type. The element type must be one of the above listed types. +// +// Due to lack of unique native Go type for GEOGRAPHY, there is no schema +// inference to GEOGRAPHY at this time. +// +// Nullable fields are inferred from the NullXXX types, declared in this package: +// +// STRING NullString +// BOOL NullBool +// INTEGER NullInt64 +// FLOAT NullFloat64 +// TIMESTAMP NullTimestamp +// DATE NullDate +// TIME NullTime +// DATETIME NullDateTime +// GEOGRAPHY NullGeography +// +// For a nullable BYTES field, use the type []byte and tag the field "nullable" (see below). +// For a nullable NUMERIC field, use the type *big.Rat and tag the field "nullable". +// +// A struct field that is of struct type is inferred to be a required field of type +// RECORD with a schema inferred recursively. For backwards compatibility, a field of +// type pointer to struct is also inferred to be required. To get a nullable RECORD +// field, use the "nullable" tag (see below). +// +// InferSchema returns an error if any of the examined fields is of type uint, +// uint64, uintptr, map, interface, complex64, complex128, func, or chan. Future +// versions may handle these cases without error. +// +// Recursively defined structs are also disallowed. +// +// Struct fields may be tagged in a way similar to the encoding/json package. +// A tag of the form +// +// bigquery:"name" +// +// uses "name" instead of the struct field name as the BigQuery field name. +// A tag of the form +// +// bigquery:"-" +// +// omits the field from the inferred schema. +// The "nullable" option marks the field as nullable (not required). It is only +// needed for []byte, *big.Rat and pointer-to-struct fields, and cannot appear on other +// fields. In this example, the Go name of the field is retained: +// +// bigquery:",nullable" +func InferSchema(st interface{}) (Schema, error) { + return inferSchemaReflectCached(reflect.TypeOf(st)) +} + +var schemaCache sync.Map + +type cacheVal struct { + schema Schema + err error +} + +func inferSchemaReflectCached(t reflect.Type) (Schema, error) { + var cv cacheVal + v, ok := schemaCache.Load(t) + if ok { + cv = v.(cacheVal) + } else { + s, err := inferSchemaReflect(t) + cv = cacheVal{s, err} + schemaCache.Store(t, cv) + } + return cv.schema, cv.err +} + +func inferSchemaReflect(t reflect.Type) (Schema, error) { + rec, err := hasRecursiveType(t, nil) + if err != nil { + return nil, err + } + if rec { + return nil, fmt.Errorf("bigquery: schema inference for recursive type %s", t) + } + return inferStruct(t) +} + +func inferStruct(t reflect.Type) (Schema, error) { + switch t.Kind() { + case reflect.Ptr: + if t.Elem().Kind() != reflect.Struct { + return nil, noStructError{t} + } + t = t.Elem() + fallthrough + + case reflect.Struct: + return inferFields(t) + default: + return nil, noStructError{t} + } +} + +// inferFieldSchema infers the FieldSchema for a Go type +func inferFieldSchema(fieldName string, rt reflect.Type, nullable bool) (*FieldSchema, error) { + // Only []byte and struct pointers can be tagged nullable. + if nullable && !(rt == typeOfByteSlice || rt.Kind() == reflect.Ptr && rt.Elem().Kind() == reflect.Struct) { + return nil, badNullableError{fieldName, rt} + } + switch rt { + case typeOfByteSlice: + return &FieldSchema{Required: !nullable, Type: BytesFieldType}, nil + case typeOfGoTime: + return &FieldSchema{Required: true, Type: TimestampFieldType}, nil + case typeOfDate: + return &FieldSchema{Required: true, Type: DateFieldType}, nil + case typeOfTime: + return &FieldSchema{Required: true, Type: TimeFieldType}, nil + case typeOfDateTime: + return &FieldSchema{Required: true, Type: DateTimeFieldType}, nil + case typeOfRat: + // We automatically infer big.Rat values as NUMERIC as we cannot + // determine precision/scale from the type. Users who want the + // larger precision of BIGNUMERIC need to manipulate the inferred + // schema. + return &FieldSchema{Required: !nullable, Type: NumericFieldType}, nil + } + if ft := nullableFieldType(rt); ft != "" { + return &FieldSchema{Required: false, Type: ft}, nil + } + if isSupportedIntType(rt) || isSupportedUintType(rt) { + return &FieldSchema{Required: true, Type: IntegerFieldType}, nil + } + switch rt.Kind() { + case reflect.Slice, reflect.Array: + et := rt.Elem() + if et != typeOfByteSlice && (et.Kind() == reflect.Slice || et.Kind() == reflect.Array) { + // Multi dimensional slices/arrays are not supported by BigQuery + return nil, unsupportedFieldTypeError{fieldName, rt} + } + if nullableFieldType(et) != "" { + // Repeated nullable types are not supported by BigQuery. + return nil, unsupportedFieldTypeError{fieldName, rt} + } + f, err := inferFieldSchema(fieldName, et, false) + if err != nil { + return nil, err + } + f.Repeated = true + f.Required = false + return f, nil + case reflect.Ptr: + if rt.Elem().Kind() != reflect.Struct { + return nil, unsupportedFieldTypeError{fieldName, rt} + } + fallthrough + case reflect.Struct: + nested, err := inferStruct(rt) + if err != nil { + return nil, err + } + return &FieldSchema{Required: !nullable, Type: RecordFieldType, Schema: nested}, nil + case reflect.String: + return &FieldSchema{Required: !nullable, Type: StringFieldType}, nil + case reflect.Bool: + return &FieldSchema{Required: !nullable, Type: BooleanFieldType}, nil + case reflect.Float32, reflect.Float64: + return &FieldSchema{Required: !nullable, Type: FloatFieldType}, nil + default: + return nil, unsupportedFieldTypeError{fieldName, rt} + } +} + +// inferFields extracts all exported field types from struct type. +func inferFields(rt reflect.Type) (Schema, error) { + var s Schema + fields, err := fieldCache.Fields(rt) + if err != nil { + return nil, err + } + for _, field := range fields { + var nullable bool + for _, opt := range field.ParsedTag.([]string) { + if opt == nullableTagOption { + nullable = true + break + } + } + f, err := inferFieldSchema(field.Name, field.Type, nullable) + if err != nil { + return nil, err + } + f.Name = field.Name + s = append(s, f) + } + return s, nil +} + +// isSupportedIntType reports whether t is an int type that can be properly +// represented by the BigQuery INTEGER/INT64 type. +func isSupportedIntType(t reflect.Type) bool { + switch t.Kind() { + case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: + return true + default: + return false + } +} + +// isSupportedIntType reports whether t is a uint type that can be properly +// represented by the BigQuery INTEGER/INT64 type. +func isSupportedUintType(t reflect.Type) bool { + switch t.Kind() { + case reflect.Uint8, reflect.Uint16, reflect.Uint32: + return true + default: + return false + } +} + +// typeList is a linked list of reflect.Types. +type typeList struct { + t reflect.Type + next *typeList +} + +func (l *typeList) has(t reflect.Type) bool { + for l != nil { + if l.t == t { + return true + } + l = l.next + } + return false +} + +// hasRecursiveType reports whether t or any type inside t refers to itself, directly or indirectly, +// via exported fields. (Schema inference ignores unexported fields.) +func hasRecursiveType(t reflect.Type, seen *typeList) (bool, error) { + for t.Kind() == reflect.Ptr || t.Kind() == reflect.Slice || t.Kind() == reflect.Array { + t = t.Elem() + } + if t.Kind() != reflect.Struct { + return false, nil + } + if seen.has(t) { + return true, nil + } + fields, err := fieldCache.Fields(t) + if err != nil { + return false, err + } + seen = &typeList{t, seen} + // Because seen is a linked list, additions to it from one field's + // recursive call will not affect the value for subsequent fields' calls. + for _, field := range fields { + ok, err := hasRecursiveType(field.Type, seen) + if err != nil { + return false, err + } + if ok { + return true, nil + } + } + return false, nil +} + +// validateKnownType ensures a type is known (or alias of a known type). +func validateKnownType(in FieldType) (FieldType, error) { + if _, ok := fieldTypes[in]; !ok { + // not a defined type, check aliases. + if resolved, ok := fieldAliases[in]; ok { + return resolved, nil + } + return "", fmt.Errorf("unknown field type (%s)", in) + } + return in, nil +} + +// SchemaFromJSON takes a native JSON BigQuery table schema definition and converts it to +// a populated Schema. The native API definition is used by tools such as the BQ CLI and +// https://github.com/GoogleCloudPlatform/protoc-gen-bq-schema. +// +// The expected format is a JSON array of TableFieldSchema objects from the underlying API: +// https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#TableFieldSchema +func SchemaFromJSON(schemaJSON []byte) (Schema, error) { + + // Make sure we actually have some content: + if len(schemaJSON) == 0 { + return nil, errEmptyJSONSchema + } + + var rawSchema []*bq.TableFieldSchema + + if err := json.Unmarshal(schemaJSON, &rawSchema); err != nil { + return nil, err + } + + convertedSchema := Schema{} + for _, f := range rawSchema { + convField := bqToFieldSchema(f) + // Normalize the types. + validType, err := validateKnownType(convField.Type) + if err != nil { + return nil, err + } + convField.Type = validType + convertedSchema = append(convertedSchema, convField) + } + return convertedSchema, nil +} + +type noStructError struct { + typ reflect.Type +} + +func (e noStructError) Error() string { + return fmt.Sprintf("bigquery: can only infer schema from struct or pointer to struct, not %s", e.typ) +} + +type badNullableError struct { + name string + typ reflect.Type +} + +func (e badNullableError) Error() string { + return fmt.Sprintf(`bigquery: field %q of type %s: use "nullable" only for []byte and struct pointers; for all other types, use a NullXXX type`, e.name, e.typ) +} + +type unsupportedFieldTypeError struct { + name string + typ reflect.Type +} + +func (e unsupportedFieldTypeError) Error() string { + return fmt.Sprintf("bigquery: field %q: type %s is not supported", e.name, e.typ) +} diff --git a/vendor/cloud.google.com/go/bigquery/standardsql.go b/vendor/cloud.google.com/go/bigquery/standardsql.go new file mode 100644 index 000000000..7f8ca6e11 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/standardsql.go @@ -0,0 +1,231 @@ +// Copyright 2019 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "fmt" + + bq "google.golang.org/api/bigquery/v2" +) + +// StandardSQLDataType conveys type information using the Standard SQL type +// system. +type StandardSQLDataType struct { + // ArrayElementType indicates the type of an array's elements, when the + // TypeKind is ARRAY. + ArrayElementType *StandardSQLDataType + // StructType indicates the struct definition (fields), when the + // TypeKind is STRUCT. + StructType *StandardSQLStructType + // The top-level type of this type definition. + // Can be any standard SQL data type. For more information about BigQuery + // data types, see + // https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types + // + // Additional information is available in the REST documentation: + // https://cloud.google.com/bigquery/docs/reference/rest/v2/StandardSqlDataType + TypeKind string +} + +func (ssdt *StandardSQLDataType) toBQ() (*bq.StandardSqlDataType, error) { + if ssdt == nil { + return nil, nil + } + bqdt := &bq.StandardSqlDataType{ + TypeKind: ssdt.TypeKind, + } + if ssdt.ArrayElementType != nil { + dt, err := ssdt.ArrayElementType.toBQ() + if err != nil { + return nil, err + } + bqdt.ArrayElementType = dt + } + if ssdt.StructType != nil { + dt, err := ssdt.StructType.toBQ() + if err != nil { + return nil, err + } + bqdt.StructType = dt + } + return bqdt, nil +} + +func (ssdt StandardSQLDataType) toBQParamType() *bq.QueryParameterType { + if ssdt.ArrayElementType != nil { + return &bq.QueryParameterType{Type: "ARRAY", ArrayType: ssdt.ArrayElementType.toBQParamType()} + } + if ssdt.StructType != nil { + var fts []*bq.QueryParameterTypeStructTypes + for _, field := range ssdt.StructType.Fields { + fts = append(fts, &bq.QueryParameterTypeStructTypes{ + Name: field.Name, + Type: field.Type.toBQParamType(), + }) + } + return &bq.QueryParameterType{Type: "STRUCT", StructTypes: fts} + } + return &bq.QueryParameterType{Type: ssdt.TypeKind} +} + +func bqToStandardSQLDataType(bqdt *bq.StandardSqlDataType) (*StandardSQLDataType, error) { + if bqdt == nil { + return nil, nil + } + ssdt := &StandardSQLDataType{ + TypeKind: bqdt.TypeKind, + } + + if bqdt.ArrayElementType != nil { + dt, err := bqToStandardSQLDataType(bqdt.ArrayElementType) + if err != nil { + return nil, err + } + ssdt.ArrayElementType = dt + } + if bqdt.StructType != nil { + st, err := bqToStandardSQLStructType(bqdt.StructType) + if err != nil { + return nil, err + } + ssdt.StructType = st + } + return ssdt, nil +} + +// StandardSQLField represents a field using the Standard SQL data type system. +type StandardSQLField struct { + // The name of this field. Can be absent for struct fields. + Name string + // Data type for the field. + Type *StandardSQLDataType +} + +func (ssf *StandardSQLField) toBQ() (*bq.StandardSqlField, error) { + if ssf == nil { + return nil, nil + } + bqf := &bq.StandardSqlField{ + Name: ssf.Name, + } + if ssf.Type != nil { + dt, err := ssf.Type.toBQ() + if err != nil { + return nil, err + } + bqf.Type = dt + } + return bqf, nil +} + +func bqToStandardSQLField(bqf *bq.StandardSqlField) (*StandardSQLField, error) { + if bqf == nil { + return nil, nil + } + t, err := bqToStandardSQLDataType(bqf.Type) + if err != nil { + return nil, err + } + return &StandardSQLField{ + Name: bqf.Name, + Type: t, + }, nil +} + +// StandardSQLStructType represents a structure type, which is a list of Standard SQL fields. +// For more information, see: +// https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#struct-type +type StandardSQLStructType struct { + Fields []*StandardSQLField +} + +func (ssst *StandardSQLStructType) toBQ() (*bq.StandardSqlStructType, error) { + if ssst == nil { + return nil, nil + } + fields, err := standardSQLStructFieldsToBQ(ssst.Fields) + if err != nil { + return nil, err + } + return &bq.StandardSqlStructType{ + Fields: fields, + }, nil +} + +func bqToStandardSQLStructType(bqst *bq.StandardSqlStructType) (*StandardSQLStructType, error) { + if bqst == nil { + return nil, nil + } + var fields []*StandardSQLField + for _, v := range bqst.Fields { + f, err := bqToStandardSQLField(v) + if err != nil { + return nil, err + } + fields = append(fields, f) + } + return &StandardSQLStructType{ + Fields: fields, + }, nil +} + +func standardSQLStructFieldsToBQ(fields []*StandardSQLField) ([]*bq.StandardSqlField, error) { + var bqFields []*bq.StandardSqlField + for _, v := range fields { + bqf, err := v.toBQ() + if err != nil { + return nil, fmt.Errorf("error converting struct fields: %w", err) + } + bqFields = append(bqFields, bqf) + } + return bqFields, nil +} + +// StandardSQLTableType models a table-like resource, which has a set of columns. +type StandardSQLTableType struct { + + // The columns of the table. + Columns []*StandardSQLField +} + +func (sstt *StandardSQLTableType) toBQ() (*bq.StandardSqlTableType, error) { + if sstt == nil { + return nil, nil + } + out := &bq.StandardSqlTableType{} + for k, v := range sstt.Columns { + bq, err := v.toBQ() + if err != nil { + return nil, fmt.Errorf("error converting column %d: %v", k, err) + } + out.Columns = append(out.Columns, bq) + } + return out, nil +} + +func bqToStandardSQLTableType(in *bq.StandardSqlTableType) (*StandardSQLTableType, error) { + if in == nil { + return nil, nil + } + out := &StandardSQLTableType{} + for k, v := range in.Columns { + f, err := bqToStandardSQLField(v) + if err != nil { + return nil, fmt.Errorf("error converting column %d: %v", k, err) + } + out.Columns = append(out.Columns, f) + } + return out, nil +} diff --git a/vendor/cloud.google.com/go/bigquery/storage/apiv1/auxiliary.go b/vendor/cloud.google.com/go/bigquery/storage/apiv1/auxiliary.go new file mode 100644 index 000000000..8f7891d25 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/storage/apiv1/auxiliary.go @@ -0,0 +1,17 @@ +// Copyright 2024 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package storage diff --git a/vendor/cloud.google.com/go/bigquery/storage/apiv1/big_query_read_client.go b/vendor/cloud.google.com/go/bigquery/storage/apiv1/big_query_read_client.go new file mode 100644 index 000000000..dd7ffecc4 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/storage/apiv1/big_query_read_client.go @@ -0,0 +1,323 @@ +// Copyright 2024 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package storage + +import ( + "context" + "fmt" + "math" + "net/url" + "time" + + storagepb "cloud.google.com/go/bigquery/storage/apiv1/storagepb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/option" + "google.golang.org/api/option/internaloption" + gtransport "google.golang.org/api/transport/grpc" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" +) + +var newBigQueryReadClientHook clientHook + +// BigQueryReadCallOptions contains the retry settings for each method of BigQueryReadClient. +type BigQueryReadCallOptions struct { + CreateReadSession []gax.CallOption + ReadRows []gax.CallOption + SplitReadStream []gax.CallOption +} + +func defaultBigQueryReadGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("bigquerystorage.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("bigquerystorage.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("bigquerystorage.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://bigquerystorage.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultBigQueryReadCallOptions() *BigQueryReadCallOptions { + return &BigQueryReadCallOptions{ + CreateReadSession: []gax.CallOption{ + gax.WithTimeout(600000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.DeadlineExceeded, + codes.Unavailable, + }, gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 60000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ReadRows: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 60000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + SplitReadStream: []gax.CallOption{ + gax.WithTimeout(600000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.DeadlineExceeded, + codes.Unavailable, + }, gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 60000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + } +} + +// internalBigQueryReadClient is an interface that defines the methods available from BigQuery Storage API. +type internalBigQueryReadClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + CreateReadSession(context.Context, *storagepb.CreateReadSessionRequest, ...gax.CallOption) (*storagepb.ReadSession, error) + ReadRows(context.Context, *storagepb.ReadRowsRequest, ...gax.CallOption) (storagepb.BigQueryRead_ReadRowsClient, error) + SplitReadStream(context.Context, *storagepb.SplitReadStreamRequest, ...gax.CallOption) (*storagepb.SplitReadStreamResponse, error) +} + +// BigQueryReadClient is a client for interacting with BigQuery Storage API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// BigQuery Read API. +// +// The Read API can be used to read data from BigQuery. +type BigQueryReadClient struct { + // The internal transport-dependent client. + internalClient internalBigQueryReadClient + + // The call options for this service. + CallOptions *BigQueryReadCallOptions +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *BigQueryReadClient) Close() error { + return c.internalClient.Close() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *BigQueryReadClient) setGoogleClientInfo(keyval ...string) { + c.internalClient.setGoogleClientInfo(keyval...) +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *BigQueryReadClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// CreateReadSession creates a new read session. A read session divides the contents of a +// BigQuery table into one or more streams, which can then be used to read +// data from the table. The read session also specifies properties of the +// data to be read, such as a list of columns or a push-down filter describing +// the rows to be returned. +// +// A particular row can be read by at most one stream. When the caller has +// reached the end of each stream in the session, then all the data in the +// table has been read. +// +// Data is assigned to each stream such that roughly the same number of +// rows can be read from each stream. Because the server-side unit for +// assigning data is collections of rows, the API does not guarantee that +// each stream will return the same number or rows. Additionally, the +// limits are enforced based on the number of pre-filtered rows, so some +// filters can lead to lopsided assignments. +// +// Read sessions automatically expire 6 hours after they are created and do +// not require manual clean-up by the caller. +func (c *BigQueryReadClient) CreateReadSession(ctx context.Context, req *storagepb.CreateReadSessionRequest, opts ...gax.CallOption) (*storagepb.ReadSession, error) { + return c.internalClient.CreateReadSession(ctx, req, opts...) +} + +// ReadRows reads rows from the stream in the format prescribed by the ReadSession. +// Each response contains one or more table rows, up to a maximum of 100 MiB +// per response; read requests which attempt to read individual rows larger +// than 100 MiB will fail. +// +// Each request also returns a set of stream statistics reflecting the current +// state of the stream. +func (c *BigQueryReadClient) ReadRows(ctx context.Context, req *storagepb.ReadRowsRequest, opts ...gax.CallOption) (storagepb.BigQueryRead_ReadRowsClient, error) { + return c.internalClient.ReadRows(ctx, req, opts...) +} + +// SplitReadStream splits a given ReadStream into two ReadStream objects. These +// ReadStream objects are referred to as the primary and the residual +// streams of the split. The original ReadStream can still be read from in +// the same manner as before. Both of the returned ReadStream objects can +// also be read from, and the rows returned by both child streams will be +// the same as the rows read from the original stream. +// +// Moreover, the two child streams will be allocated back-to-back in the +// original ReadStream. Concretely, it is guaranteed that for streams +// original, primary, and residual, that original[0-j] = primary[0-j] and +// original[j-n] = residual[0-m] once the streams have been read to +// completion. +func (c *BigQueryReadClient) SplitReadStream(ctx context.Context, req *storagepb.SplitReadStreamRequest, opts ...gax.CallOption) (*storagepb.SplitReadStreamResponse, error) { + return c.internalClient.SplitReadStream(ctx, req, opts...) +} + +// bigQueryReadGRPCClient is a client for interacting with BigQuery Storage API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type bigQueryReadGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing BigQueryReadClient + CallOptions **BigQueryReadCallOptions + + // The gRPC API client. + bigQueryReadClient storagepb.BigQueryReadClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewBigQueryReadClient creates a new big query read client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// BigQuery Read API. +// +// The Read API can be used to read data from BigQuery. +func NewBigQueryReadClient(ctx context.Context, opts ...option.ClientOption) (*BigQueryReadClient, error) { + clientOpts := defaultBigQueryReadGRPCClientOptions() + if newBigQueryReadClientHook != nil { + hookOpts, err := newBigQueryReadClientHook(ctx, clientHookParams{}) + if err != nil { + return nil, err + } + clientOpts = append(clientOpts, hookOpts...) + } + + connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) + if err != nil { + return nil, err + } + client := BigQueryReadClient{CallOptions: defaultBigQueryReadCallOptions()} + + c := &bigQueryReadGRPCClient{ + connPool: connPool, + bigQueryReadClient: storagepb.NewBigQueryReadClient(connPool), + CallOptions: &client.CallOptions, + } + c.setGoogleClientInfo() + + client.internalClient = c + + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *bigQueryReadGRPCClient) Connection() *grpc.ClientConn { + return c.connPool.Conn() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *bigQueryReadGRPCClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) + c.xGoogHeaders = []string{"x-goog-api-client", gax.XGoogHeader(kv...)} +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *bigQueryReadGRPCClient) Close() error { + return c.connPool.Close() +} + +func (c *bigQueryReadGRPCClient) CreateReadSession(ctx context.Context, req *storagepb.CreateReadSessionRequest, opts ...gax.CallOption) (*storagepb.ReadSession, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "read_session.table", url.QueryEscape(req.GetReadSession().GetTable()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CreateReadSession[0:len((*c.CallOptions).CreateReadSession):len((*c.CallOptions).CreateReadSession)], opts...) + var resp *storagepb.ReadSession + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.bigQueryReadClient.CreateReadSession(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *bigQueryReadGRPCClient) ReadRows(ctx context.Context, req *storagepb.ReadRowsRequest, opts ...gax.CallOption) (storagepb.BigQueryRead_ReadRowsClient, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "read_stream", url.QueryEscape(req.GetReadStream()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ReadRows[0:len((*c.CallOptions).ReadRows):len((*c.CallOptions).ReadRows)], opts...) + var resp storagepb.BigQueryRead_ReadRowsClient + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.bigQueryReadClient.ReadRows(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *bigQueryReadGRPCClient) SplitReadStream(ctx context.Context, req *storagepb.SplitReadStreamRequest, opts ...gax.CallOption) (*storagepb.SplitReadStreamResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).SplitReadStream[0:len((*c.CallOptions).SplitReadStream):len((*c.CallOptions).SplitReadStream)], opts...) + var resp *storagepb.SplitReadStreamResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.bigQueryReadClient.SplitReadStream(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} diff --git a/vendor/cloud.google.com/go/bigquery/storage/apiv1/big_query_write_client.go b/vendor/cloud.google.com/go/bigquery/storage/apiv1/big_query_write_client.go new file mode 100644 index 000000000..cdacb42f6 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/storage/apiv1/big_query_write_client.go @@ -0,0 +1,458 @@ +// Copyright 2024 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package storage + +import ( + "context" + "fmt" + "math" + "net/url" + "time" + + storagepb "cloud.google.com/go/bigquery/storage/apiv1/storagepb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/option" + "google.golang.org/api/option/internaloption" + gtransport "google.golang.org/api/transport/grpc" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" +) + +var newBigQueryWriteClientHook clientHook + +// BigQueryWriteCallOptions contains the retry settings for each method of BigQueryWriteClient. +type BigQueryWriteCallOptions struct { + CreateWriteStream []gax.CallOption + AppendRows []gax.CallOption + GetWriteStream []gax.CallOption + FinalizeWriteStream []gax.CallOption + BatchCommitWriteStreams []gax.CallOption + FlushRows []gax.CallOption +} + +func defaultBigQueryWriteGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("bigquerystorage.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("bigquerystorage.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("bigquerystorage.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://bigquerystorage.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultBigQueryWriteCallOptions() *BigQueryWriteCallOptions { + return &BigQueryWriteCallOptions{ + CreateWriteStream: []gax.CallOption{ + gax.WithTimeout(1200000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.DeadlineExceeded, + codes.Unavailable, + codes.ResourceExhausted, + }, gax.Backoff{ + Initial: 10000 * time.Millisecond, + Max: 120000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + AppendRows: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 60000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetWriteStream: []gax.CallOption{ + gax.WithTimeout(600000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.DeadlineExceeded, + codes.Unavailable, + codes.ResourceExhausted, + }, gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 60000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + FinalizeWriteStream: []gax.CallOption{ + gax.WithTimeout(600000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.DeadlineExceeded, + codes.Unavailable, + codes.ResourceExhausted, + }, gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 60000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + BatchCommitWriteStreams: []gax.CallOption{ + gax.WithTimeout(600000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.DeadlineExceeded, + codes.Unavailable, + codes.ResourceExhausted, + }, gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 60000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + FlushRows: []gax.CallOption{ + gax.WithTimeout(600000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.DeadlineExceeded, + codes.Unavailable, + codes.ResourceExhausted, + }, gax.Backoff{ + Initial: 100 * time.Millisecond, + Max: 60000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + } +} + +// internalBigQueryWriteClient is an interface that defines the methods available from BigQuery Storage API. +type internalBigQueryWriteClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + CreateWriteStream(context.Context, *storagepb.CreateWriteStreamRequest, ...gax.CallOption) (*storagepb.WriteStream, error) + AppendRows(context.Context, ...gax.CallOption) (storagepb.BigQueryWrite_AppendRowsClient, error) + GetWriteStream(context.Context, *storagepb.GetWriteStreamRequest, ...gax.CallOption) (*storagepb.WriteStream, error) + FinalizeWriteStream(context.Context, *storagepb.FinalizeWriteStreamRequest, ...gax.CallOption) (*storagepb.FinalizeWriteStreamResponse, error) + BatchCommitWriteStreams(context.Context, *storagepb.BatchCommitWriteStreamsRequest, ...gax.CallOption) (*storagepb.BatchCommitWriteStreamsResponse, error) + FlushRows(context.Context, *storagepb.FlushRowsRequest, ...gax.CallOption) (*storagepb.FlushRowsResponse, error) +} + +// BigQueryWriteClient is a client for interacting with BigQuery Storage API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// BigQuery Write API. +// +// The Write API can be used to write data to BigQuery. +// +// For supplementary information about the Write API, see: +// https://cloud.google.com/bigquery/docs/write-api (at https://cloud.google.com/bigquery/docs/write-api) +type BigQueryWriteClient struct { + // The internal transport-dependent client. + internalClient internalBigQueryWriteClient + + // The call options for this service. + CallOptions *BigQueryWriteCallOptions +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *BigQueryWriteClient) Close() error { + return c.internalClient.Close() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *BigQueryWriteClient) setGoogleClientInfo(keyval ...string) { + c.internalClient.setGoogleClientInfo(keyval...) +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *BigQueryWriteClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// CreateWriteStream creates a write stream to the given table. +// Additionally, every table has a special stream named ‘_default’ +// to which data can be written. This stream doesn’t need to be created using +// CreateWriteStream. It is a stream that can be used simultaneously by any +// number of clients. Data written to this stream is considered committed as +// soon as an acknowledgement is received. +func (c *BigQueryWriteClient) CreateWriteStream(ctx context.Context, req *storagepb.CreateWriteStreamRequest, opts ...gax.CallOption) (*storagepb.WriteStream, error) { + return c.internalClient.CreateWriteStream(ctx, req, opts...) +} + +// AppendRows appends data to the given stream. +// +// If offset is specified, the offset is checked against the end of +// stream. The server returns OUT_OF_RANGE in AppendRowsResponse if an +// attempt is made to append to an offset beyond the current end of the stream +// or ALREADY_EXISTS if user provides an offset that has already been +// written to. User can retry with adjusted offset within the same RPC +// connection. If offset is not specified, append happens at the end of the +// stream. +// +// The response contains an optional offset at which the append +// happened. No offset information will be returned for appends to a +// default stream. +// +// Responses are received in the same order in which requests are sent. +// There will be one response for each successful inserted request. Responses +// may optionally embed error information if the originating AppendRequest was +// not successfully processed. +// +// The specifics of when successfully appended data is made visible to the +// table are governed by the type of stream: +// +// For COMMITTED streams (which includes the default stream), data is +// visible immediately upon successful append. +// +// For BUFFERED streams, data is made visible via a subsequent FlushRows +// rpc which advances a cursor to a newer offset in the stream. +// +// For PENDING streams, data is not made visible until the stream itself is +// finalized (via the FinalizeWriteStream rpc), and the stream is explicitly +// committed via the BatchCommitWriteStreams rpc. +func (c *BigQueryWriteClient) AppendRows(ctx context.Context, opts ...gax.CallOption) (storagepb.BigQueryWrite_AppendRowsClient, error) { + return c.internalClient.AppendRows(ctx, opts...) +} + +// GetWriteStream gets information about a write stream. +func (c *BigQueryWriteClient) GetWriteStream(ctx context.Context, req *storagepb.GetWriteStreamRequest, opts ...gax.CallOption) (*storagepb.WriteStream, error) { + return c.internalClient.GetWriteStream(ctx, req, opts...) +} + +// FinalizeWriteStream finalize a write stream so that no new data can be appended to the +// stream. Finalize is not supported on the ‘_default’ stream. +func (c *BigQueryWriteClient) FinalizeWriteStream(ctx context.Context, req *storagepb.FinalizeWriteStreamRequest, opts ...gax.CallOption) (*storagepb.FinalizeWriteStreamResponse, error) { + return c.internalClient.FinalizeWriteStream(ctx, req, opts...) +} + +// BatchCommitWriteStreams atomically commits a group of PENDING streams that belong to the same +// parent table. +// +// Streams must be finalized before commit and cannot be committed multiple +// times. Once a stream is committed, data in the stream becomes available +// for read operations. +func (c *BigQueryWriteClient) BatchCommitWriteStreams(ctx context.Context, req *storagepb.BatchCommitWriteStreamsRequest, opts ...gax.CallOption) (*storagepb.BatchCommitWriteStreamsResponse, error) { + return c.internalClient.BatchCommitWriteStreams(ctx, req, opts...) +} + +// FlushRows flushes rows to a BUFFERED stream. +// +// If users are appending rows to BUFFERED stream, flush operation is +// required in order for the rows to become available for reading. A +// Flush operation flushes up to any previously flushed offset in a BUFFERED +// stream, to the offset specified in the request. +// +// Flush is not supported on the _default stream, since it is not BUFFERED. +func (c *BigQueryWriteClient) FlushRows(ctx context.Context, req *storagepb.FlushRowsRequest, opts ...gax.CallOption) (*storagepb.FlushRowsResponse, error) { + return c.internalClient.FlushRows(ctx, req, opts...) +} + +// bigQueryWriteGRPCClient is a client for interacting with BigQuery Storage API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type bigQueryWriteGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing BigQueryWriteClient + CallOptions **BigQueryWriteCallOptions + + // The gRPC API client. + bigQueryWriteClient storagepb.BigQueryWriteClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewBigQueryWriteClient creates a new big query write client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// BigQuery Write API. +// +// The Write API can be used to write data to BigQuery. +// +// For supplementary information about the Write API, see: +// https://cloud.google.com/bigquery/docs/write-api (at https://cloud.google.com/bigquery/docs/write-api) +func NewBigQueryWriteClient(ctx context.Context, opts ...option.ClientOption) (*BigQueryWriteClient, error) { + clientOpts := defaultBigQueryWriteGRPCClientOptions() + if newBigQueryWriteClientHook != nil { + hookOpts, err := newBigQueryWriteClientHook(ctx, clientHookParams{}) + if err != nil { + return nil, err + } + clientOpts = append(clientOpts, hookOpts...) + } + + connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) + if err != nil { + return nil, err + } + client := BigQueryWriteClient{CallOptions: defaultBigQueryWriteCallOptions()} + + c := &bigQueryWriteGRPCClient{ + connPool: connPool, + bigQueryWriteClient: storagepb.NewBigQueryWriteClient(connPool), + CallOptions: &client.CallOptions, + } + c.setGoogleClientInfo() + + client.internalClient = c + + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *bigQueryWriteGRPCClient) Connection() *grpc.ClientConn { + return c.connPool.Conn() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *bigQueryWriteGRPCClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) + c.xGoogHeaders = []string{"x-goog-api-client", gax.XGoogHeader(kv...)} +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *bigQueryWriteGRPCClient) Close() error { + return c.connPool.Close() +} + +func (c *bigQueryWriteGRPCClient) CreateWriteStream(ctx context.Context, req *storagepb.CreateWriteStreamRequest, opts ...gax.CallOption) (*storagepb.WriteStream, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CreateWriteStream[0:len((*c.CallOptions).CreateWriteStream):len((*c.CallOptions).CreateWriteStream)], opts...) + var resp *storagepb.WriteStream + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.bigQueryWriteClient.CreateWriteStream(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *bigQueryWriteGRPCClient) AppendRows(ctx context.Context, opts ...gax.CallOption) (storagepb.BigQueryWrite_AppendRowsClient, error) { + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, c.xGoogHeaders...) + var resp storagepb.BigQueryWrite_AppendRowsClient + opts = append((*c.CallOptions).AppendRows[0:len((*c.CallOptions).AppendRows):len((*c.CallOptions).AppendRows)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.bigQueryWriteClient.AppendRows(ctx, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *bigQueryWriteGRPCClient) GetWriteStream(ctx context.Context, req *storagepb.GetWriteStreamRequest, opts ...gax.CallOption) (*storagepb.WriteStream, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetWriteStream[0:len((*c.CallOptions).GetWriteStream):len((*c.CallOptions).GetWriteStream)], opts...) + var resp *storagepb.WriteStream + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.bigQueryWriteClient.GetWriteStream(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *bigQueryWriteGRPCClient) FinalizeWriteStream(ctx context.Context, req *storagepb.FinalizeWriteStreamRequest, opts ...gax.CallOption) (*storagepb.FinalizeWriteStreamResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).FinalizeWriteStream[0:len((*c.CallOptions).FinalizeWriteStream):len((*c.CallOptions).FinalizeWriteStream)], opts...) + var resp *storagepb.FinalizeWriteStreamResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.bigQueryWriteClient.FinalizeWriteStream(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *bigQueryWriteGRPCClient) BatchCommitWriteStreams(ctx context.Context, req *storagepb.BatchCommitWriteStreamsRequest, opts ...gax.CallOption) (*storagepb.BatchCommitWriteStreamsResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).BatchCommitWriteStreams[0:len((*c.CallOptions).BatchCommitWriteStreams):len((*c.CallOptions).BatchCommitWriteStreams)], opts...) + var resp *storagepb.BatchCommitWriteStreamsResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.bigQueryWriteClient.BatchCommitWriteStreams(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *bigQueryWriteGRPCClient) FlushRows(ctx context.Context, req *storagepb.FlushRowsRequest, opts ...gax.CallOption) (*storagepb.FlushRowsResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "write_stream", url.QueryEscape(req.GetWriteStream()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).FlushRows[0:len((*c.CallOptions).FlushRows):len((*c.CallOptions).FlushRows)], opts...) + var resp *storagepb.FlushRowsResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.bigQueryWriteClient.FlushRows(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} diff --git a/vendor/cloud.google.com/go/bigquery/storage/apiv1/doc.go b/vendor/cloud.google.com/go/bigquery/storage/apiv1/doc.go new file mode 100644 index 000000000..271f43d9b --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/storage/apiv1/doc.go @@ -0,0 +1,121 @@ +// Copyright 2024 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// Package storage is an auto-generated package for the +// BigQuery Storage API. +// +// # General documentation +// +// For information that is relevant for all client libraries please reference +// https://pkg.go.dev/cloud.google.com/go#pkg-overview. Some information on this +// page includes: +// +// - [Authentication and Authorization] +// - [Timeouts and Cancellation] +// - [Testing against Client Libraries] +// - [Debugging Client Libraries] +// - [Inspecting errors] +// +// # Example usage +// +// To get started with this package, create a client. +// +// ctx := context.Background() +// // 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. +// // - It may require specifying regional endpoints when creating the service client as shown in: +// // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options +// c, err := storage.NewBigQueryReadClient(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// defer c.Close() +// +// The client will use your default application credentials. Clients should be reused instead of created as needed. +// The methods of Client are safe for concurrent use by multiple goroutines. +// The returned client must be Closed when it is done being used. +// +// # Using the Client +// +// The following is an example of making an API call with the newly created client. +// +// ctx := context.Background() +// // 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. +// // - It may require specifying regional endpoints when creating the service client as shown in: +// // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options +// c, err := storage.NewBigQueryReadClient(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// defer c.Close() +// +// req := &storagepb.CreateReadSessionRequest{ +// // TODO: Fill request struct fields. +// // See https://pkg.go.dev/cloud.google.com/go/bigquery/storage/apiv1/storagepb#CreateReadSessionRequest. +// } +// resp, err := c.CreateReadSession(ctx, req) +// if err != nil { +// // TODO: Handle error. +// } +// // TODO: Use resp. +// _ = resp +// +// # Use of Context +// +// The ctx passed to NewBigQueryReadClient is used for authentication requests and +// for creating the underlying connection, but is not used for subsequent calls. +// Individual methods on the client use the ctx given to them. +// +// To close the open connection, use the Close() method. +// +// [Authentication and Authorization]: https://pkg.go.dev/cloud.google.com/go#hdr-Authentication_and_Authorization +// [Timeouts and Cancellation]: https://pkg.go.dev/cloud.google.com/go#hdr-Timeouts_and_Cancellation +// [Testing against Client Libraries]: https://pkg.go.dev/cloud.google.com/go#hdr-Testing +// [Debugging Client Libraries]: https://pkg.go.dev/cloud.google.com/go#hdr-Debugging +// [Inspecting errors]: https://pkg.go.dev/cloud.google.com/go#hdr-Inspecting_errors +package storage // import "cloud.google.com/go/bigquery/storage/apiv1" + +import ( + "context" + + "google.golang.org/api/option" +) + +// For more information on implementing a client constructor hook, see +// https://github.com/googleapis/google-cloud-go/wiki/Customizing-constructors. +type clientHookParams struct{} +type clientHook func(context.Context, clientHookParams) ([]option.ClientOption, error) + +var versionClient string + +func getVersionClient() string { + if versionClient == "" { + return "UNKNOWN" + } + return versionClient +} + +// DefaultAuthScopes reports the default set of authentication scopes to use with this package. +func DefaultAuthScopes() []string { + return []string{ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/bigquery.insertdata", + "https://www.googleapis.com/auth/cloud-platform", + } +} diff --git a/vendor/cloud.google.com/go/bigquery/storage/apiv1/info.go b/vendor/cloud.google.com/go/bigquery/storage/apiv1/info.go new file mode 100644 index 000000000..7669185f6 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/storage/apiv1/info.go @@ -0,0 +1,33 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package storage + +// SetGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Also passes any +// provided key-value pairs. Intended for use by Google-written clients. +// +// Internal use only. +func (c *BigQueryWriteClient) SetGoogleClientInfo(keyval ...string) { + c.setGoogleClientInfo(keyval...) +} + +// SetGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Also passes any +// provided key-value pairs. Intended for use by Google-written clients. +// +// Internal use only. +func (c *BigQueryReadClient) SetGoogleClientInfo(keyval ...string) { + c.setGoogleClientInfo(keyval...) +} diff --git a/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/annotations.pb.go b/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/annotations.pb.go new file mode 100644 index 000000000..58b4a66a5 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/annotations.pb.go @@ -0,0 +1,119 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v4.25.2 +// source: google/cloud/bigquery/storage/v1/annotations.proto + +package storagepb + +import ( + reflect "reflect" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +var file_google_cloud_bigquery_storage_v1_annotations_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptorpb.FieldOptions)(nil), + ExtensionType: (*string)(nil), + Field: 454943157, + Name: "google.cloud.bigquery.storage.v1.column_name", + Tag: "bytes,454943157,opt,name=column_name", + Filename: "google/cloud/bigquery/storage/v1/annotations.proto", + }, +} + +// Extension fields to descriptorpb.FieldOptions. +var ( + // Setting the column_name extension allows users to reference + // bigquery column independently of the field name in the protocol buffer + // message. + // + // The intended use of this annotation is to reference a destination column + // named using characters unavailable for protobuf field names (e.g. unicode + // characters). + // + // More details about BigQuery naming limitations can be found here: + // https://cloud.google.com/bigquery/docs/schemas#column_names + // + // This extension is currently experimental. + // + // optional string column_name = 454943157; + E_ColumnName = &file_google_cloud_bigquery_storage_v1_annotations_proto_extTypes[0] +) + +var File_google_cloud_bigquery_storage_v1_annotations_proto protoreflect.FileDescriptor + +var file_google_cloud_bigquery_storage_v1_annotations_proto_rawDesc = []byte{ + 0x0a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x62, + 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, + 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x45, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xb5, 0xc3, 0xf7, 0xd8, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, + 0xc0, 0x01, 0x0a, 0x24, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, + 0x6f, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x70, 0x62, 0x3b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x62, 0xaa, 0x02, 0x20, 0x47, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x42, 0x69, 0x67, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x20, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x42, + 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x5c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5c, + 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_google_cloud_bigquery_storage_v1_annotations_proto_goTypes = []interface{}{ + (*descriptorpb.FieldOptions)(nil), // 0: google.protobuf.FieldOptions +} +var file_google_cloud_bigquery_storage_v1_annotations_proto_depIdxs = []int32{ + 0, // 0: google.cloud.bigquery.storage.v1.column_name:extendee -> google.protobuf.FieldOptions + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 0, // [0:1] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_google_cloud_bigquery_storage_v1_annotations_proto_init() } +func file_google_cloud_bigquery_storage_v1_annotations_proto_init() { + if File_google_cloud_bigquery_storage_v1_annotations_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_bigquery_storage_v1_annotations_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 1, + NumServices: 0, + }, + GoTypes: file_google_cloud_bigquery_storage_v1_annotations_proto_goTypes, + DependencyIndexes: file_google_cloud_bigquery_storage_v1_annotations_proto_depIdxs, + ExtensionInfos: file_google_cloud_bigquery_storage_v1_annotations_proto_extTypes, + }.Build() + File_google_cloud_bigquery_storage_v1_annotations_proto = out.File + file_google_cloud_bigquery_storage_v1_annotations_proto_rawDesc = nil + file_google_cloud_bigquery_storage_v1_annotations_proto_goTypes = nil + file_google_cloud_bigquery_storage_v1_annotations_proto_depIdxs = nil +} diff --git a/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/arrow.pb.go b/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/arrow.pb.go new file mode 100644 index 000000000..d60ddef96 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/arrow.pb.go @@ -0,0 +1,396 @@ +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v4.25.2 +// source: google/cloud/bigquery/storage/v1/arrow.proto + +package storagepb + +import ( + reflect "reflect" + sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Compression codec's supported by Arrow. +type ArrowSerializationOptions_CompressionCodec int32 + +const ( + // If unspecified no compression will be used. + ArrowSerializationOptions_COMPRESSION_UNSPECIFIED ArrowSerializationOptions_CompressionCodec = 0 + // LZ4 Frame (https://github.com/lz4/lz4/blob/dev/doc/lz4_Frame_format.md) + ArrowSerializationOptions_LZ4_FRAME ArrowSerializationOptions_CompressionCodec = 1 + // Zstandard compression. + ArrowSerializationOptions_ZSTD ArrowSerializationOptions_CompressionCodec = 2 +) + +// Enum value maps for ArrowSerializationOptions_CompressionCodec. +var ( + ArrowSerializationOptions_CompressionCodec_name = map[int32]string{ + 0: "COMPRESSION_UNSPECIFIED", + 1: "LZ4_FRAME", + 2: "ZSTD", + } + ArrowSerializationOptions_CompressionCodec_value = map[string]int32{ + "COMPRESSION_UNSPECIFIED": 0, + "LZ4_FRAME": 1, + "ZSTD": 2, + } +) + +func (x ArrowSerializationOptions_CompressionCodec) Enum() *ArrowSerializationOptions_CompressionCodec { + p := new(ArrowSerializationOptions_CompressionCodec) + *p = x + return p +} + +func (x ArrowSerializationOptions_CompressionCodec) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ArrowSerializationOptions_CompressionCodec) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_bigquery_storage_v1_arrow_proto_enumTypes[0].Descriptor() +} + +func (ArrowSerializationOptions_CompressionCodec) Type() protoreflect.EnumType { + return &file_google_cloud_bigquery_storage_v1_arrow_proto_enumTypes[0] +} + +func (x ArrowSerializationOptions_CompressionCodec) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ArrowSerializationOptions_CompressionCodec.Descriptor instead. +func (ArrowSerializationOptions_CompressionCodec) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_arrow_proto_rawDescGZIP(), []int{2, 0} +} + +// Arrow schema as specified in +// https://arrow.apache.org/docs/python/api/datatypes.html +// and serialized to bytes using IPC: +// https://arrow.apache.org/docs/format/Columnar.html#serialization-and-interprocess-communication-ipc +// +// See code samples on how this message can be deserialized. +type ArrowSchema struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // IPC serialized Arrow schema. + SerializedSchema []byte `protobuf:"bytes,1,opt,name=serialized_schema,json=serializedSchema,proto3" json:"serialized_schema,omitempty"` +} + +func (x *ArrowSchema) Reset() { + *x = ArrowSchema{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_arrow_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArrowSchema) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArrowSchema) ProtoMessage() {} + +func (x *ArrowSchema) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_arrow_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArrowSchema.ProtoReflect.Descriptor instead. +func (*ArrowSchema) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_arrow_proto_rawDescGZIP(), []int{0} +} + +func (x *ArrowSchema) GetSerializedSchema() []byte { + if x != nil { + return x.SerializedSchema + } + return nil +} + +// Arrow RecordBatch. +type ArrowRecordBatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // IPC-serialized Arrow RecordBatch. + SerializedRecordBatch []byte `protobuf:"bytes,1,opt,name=serialized_record_batch,json=serializedRecordBatch,proto3" json:"serialized_record_batch,omitempty"` + // [Deprecated] The count of rows in `serialized_record_batch`. + // Please use the format-independent ReadRowsResponse.row_count instead. + // + // Deprecated: Marked as deprecated in google/cloud/bigquery/storage/v1/arrow.proto. + RowCount int64 `protobuf:"varint,2,opt,name=row_count,json=rowCount,proto3" json:"row_count,omitempty"` +} + +func (x *ArrowRecordBatch) Reset() { + *x = ArrowRecordBatch{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_arrow_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArrowRecordBatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArrowRecordBatch) ProtoMessage() {} + +func (x *ArrowRecordBatch) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_arrow_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArrowRecordBatch.ProtoReflect.Descriptor instead. +func (*ArrowRecordBatch) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_arrow_proto_rawDescGZIP(), []int{1} +} + +func (x *ArrowRecordBatch) GetSerializedRecordBatch() []byte { + if x != nil { + return x.SerializedRecordBatch + } + return nil +} + +// Deprecated: Marked as deprecated in google/cloud/bigquery/storage/v1/arrow.proto. +func (x *ArrowRecordBatch) GetRowCount() int64 { + if x != nil { + return x.RowCount + } + return 0 +} + +// Contains options specific to Arrow Serialization. +type ArrowSerializationOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The compression codec to use for Arrow buffers in serialized record + // batches. + BufferCompression ArrowSerializationOptions_CompressionCodec `protobuf:"varint,2,opt,name=buffer_compression,json=bufferCompression,proto3,enum=google.cloud.bigquery.storage.v1.ArrowSerializationOptions_CompressionCodec" json:"buffer_compression,omitempty"` +} + +func (x *ArrowSerializationOptions) Reset() { + *x = ArrowSerializationOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_arrow_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArrowSerializationOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArrowSerializationOptions) ProtoMessage() {} + +func (x *ArrowSerializationOptions) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_arrow_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ArrowSerializationOptions.ProtoReflect.Descriptor instead. +func (*ArrowSerializationOptions) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_arrow_proto_rawDescGZIP(), []int{2} +} + +func (x *ArrowSerializationOptions) GetBufferCompression() ArrowSerializationOptions_CompressionCodec { + if x != nil { + return x.BufferCompression + } + return ArrowSerializationOptions_COMPRESSION_UNSPECIFIED +} + +var File_google_cloud_bigquery_storage_v1_arrow_proto protoreflect.FileDescriptor + +var file_google_cloud_bigquery_storage_v1_arrow_proto_rawDesc = []byte{ + 0x0a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x62, + 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, + 0x76, 0x31, 0x2f, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x22, 0x3a, 0x0a, 0x0b, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, + 0x2b, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x73, 0x65, 0x72, 0x69, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x6b, 0x0a, 0x10, + 0x41, 0x72, 0x72, 0x6f, 0x77, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x12, 0x36, 0x0a, 0x17, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x72, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x15, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1f, 0x0a, 0x09, 0x72, 0x6f, 0x77, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, + 0x08, 0x72, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe2, 0x01, 0x0a, 0x19, 0x41, 0x72, + 0x72, 0x6f, 0x77, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x7b, 0x0a, 0x12, 0x62, 0x75, 0x66, 0x66, 0x65, + 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x53, 0x65, 0x72, 0x69, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, + 0x63, 0x52, 0x11, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x48, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x4f, 0x4d, 0x50, + 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x5a, 0x34, 0x5f, 0x46, 0x52, 0x41, + 0x4d, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x53, 0x54, 0x44, 0x10, 0x02, 0x42, 0xba, + 0x01, 0x0a, 0x24, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x76, + 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x62, 0x3b, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x70, 0x62, 0xaa, 0x02, 0x20, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x20, 0x47, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x5c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5c, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_bigquery_storage_v1_arrow_proto_rawDescOnce sync.Once + file_google_cloud_bigquery_storage_v1_arrow_proto_rawDescData = file_google_cloud_bigquery_storage_v1_arrow_proto_rawDesc +) + +func file_google_cloud_bigquery_storage_v1_arrow_proto_rawDescGZIP() []byte { + file_google_cloud_bigquery_storage_v1_arrow_proto_rawDescOnce.Do(func() { + file_google_cloud_bigquery_storage_v1_arrow_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_bigquery_storage_v1_arrow_proto_rawDescData) + }) + return file_google_cloud_bigquery_storage_v1_arrow_proto_rawDescData +} + +var file_google_cloud_bigquery_storage_v1_arrow_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_bigquery_storage_v1_arrow_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_google_cloud_bigquery_storage_v1_arrow_proto_goTypes = []interface{}{ + (ArrowSerializationOptions_CompressionCodec)(0), // 0: google.cloud.bigquery.storage.v1.ArrowSerializationOptions.CompressionCodec + (*ArrowSchema)(nil), // 1: google.cloud.bigquery.storage.v1.ArrowSchema + (*ArrowRecordBatch)(nil), // 2: google.cloud.bigquery.storage.v1.ArrowRecordBatch + (*ArrowSerializationOptions)(nil), // 3: google.cloud.bigquery.storage.v1.ArrowSerializationOptions +} +var file_google_cloud_bigquery_storage_v1_arrow_proto_depIdxs = []int32{ + 0, // 0: google.cloud.bigquery.storage.v1.ArrowSerializationOptions.buffer_compression:type_name -> google.cloud.bigquery.storage.v1.ArrowSerializationOptions.CompressionCodec + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_google_cloud_bigquery_storage_v1_arrow_proto_init() } +func file_google_cloud_bigquery_storage_v1_arrow_proto_init() { + if File_google_cloud_bigquery_storage_v1_arrow_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_bigquery_storage_v1_arrow_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArrowSchema); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_arrow_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArrowRecordBatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_arrow_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArrowSerializationOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_bigquery_storage_v1_arrow_proto_rawDesc, + NumEnums: 1, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_bigquery_storage_v1_arrow_proto_goTypes, + DependencyIndexes: file_google_cloud_bigquery_storage_v1_arrow_proto_depIdxs, + EnumInfos: file_google_cloud_bigquery_storage_v1_arrow_proto_enumTypes, + MessageInfos: file_google_cloud_bigquery_storage_v1_arrow_proto_msgTypes, + }.Build() + File_google_cloud_bigquery_storage_v1_arrow_proto = out.File + file_google_cloud_bigquery_storage_v1_arrow_proto_rawDesc = nil + file_google_cloud_bigquery_storage_v1_arrow_proto_goTypes = nil + file_google_cloud_bigquery_storage_v1_arrow_proto_depIdxs = nil +} diff --git a/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/avro.pb.go b/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/avro.pb.go new file mode 100644 index 000000000..e712e1c10 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/avro.pb.go @@ -0,0 +1,332 @@ +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v4.25.2 +// source: google/cloud/bigquery/storage/v1/avro.proto + +package storagepb + +import ( + reflect "reflect" + sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Avro schema. +type AvroSchema struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Json serialized schema, as described at + // https://avro.apache.org/docs/1.8.1/spec.html. + Schema string `protobuf:"bytes,1,opt,name=schema,proto3" json:"schema,omitempty"` +} + +func (x *AvroSchema) Reset() { + *x = AvroSchema{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_avro_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AvroSchema) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AvroSchema) ProtoMessage() {} + +func (x *AvroSchema) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_avro_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AvroSchema.ProtoReflect.Descriptor instead. +func (*AvroSchema) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_avro_proto_rawDescGZIP(), []int{0} +} + +func (x *AvroSchema) GetSchema() string { + if x != nil { + return x.Schema + } + return "" +} + +// Avro rows. +type AvroRows struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Binary serialized rows in a block. + SerializedBinaryRows []byte `protobuf:"bytes,1,opt,name=serialized_binary_rows,json=serializedBinaryRows,proto3" json:"serialized_binary_rows,omitempty"` + // [Deprecated] The count of rows in the returning block. + // Please use the format-independent ReadRowsResponse.row_count instead. + // + // Deprecated: Marked as deprecated in google/cloud/bigquery/storage/v1/avro.proto. + RowCount int64 `protobuf:"varint,2,opt,name=row_count,json=rowCount,proto3" json:"row_count,omitempty"` +} + +func (x *AvroRows) Reset() { + *x = AvroRows{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_avro_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AvroRows) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AvroRows) ProtoMessage() {} + +func (x *AvroRows) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_avro_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AvroRows.ProtoReflect.Descriptor instead. +func (*AvroRows) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_avro_proto_rawDescGZIP(), []int{1} +} + +func (x *AvroRows) GetSerializedBinaryRows() []byte { + if x != nil { + return x.SerializedBinaryRows + } + return nil +} + +// Deprecated: Marked as deprecated in google/cloud/bigquery/storage/v1/avro.proto. +func (x *AvroRows) GetRowCount() int64 { + if x != nil { + return x.RowCount + } + return 0 +} + +// Contains options specific to Avro Serialization. +type AvroSerializationOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Enable displayName attribute in Avro schema. + // + // The Avro specification requires field names to be alphanumeric. By + // default, in cases when column names do not conform to these requirements + // (e.g. non-ascii unicode codepoints) and Avro is requested as an output + // format, the CreateReadSession call will fail. + // + // Setting this field to true, populates avro field names with a placeholder + // value and populates a "displayName" attribute for every avro field with the + // original column name. + EnableDisplayNameAttribute bool `protobuf:"varint,1,opt,name=enable_display_name_attribute,json=enableDisplayNameAttribute,proto3" json:"enable_display_name_attribute,omitempty"` +} + +func (x *AvroSerializationOptions) Reset() { + *x = AvroSerializationOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_avro_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AvroSerializationOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AvroSerializationOptions) ProtoMessage() {} + +func (x *AvroSerializationOptions) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_avro_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AvroSerializationOptions.ProtoReflect.Descriptor instead. +func (*AvroSerializationOptions) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_avro_proto_rawDescGZIP(), []int{2} +} + +func (x *AvroSerializationOptions) GetEnableDisplayNameAttribute() bool { + if x != nil { + return x.EnableDisplayNameAttribute + } + return false +} + +var File_google_cloud_bigquery_storage_v1_avro_proto protoreflect.FileDescriptor + +var file_google_cloud_bigquery_storage_v1_avro_proto_rawDesc = []byte{ + 0x0a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x62, + 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, + 0x76, 0x31, 0x2f, 0x61, 0x76, 0x72, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x22, + 0x24, 0x0a, 0x0a, 0x41, 0x76, 0x72, 0x6f, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x61, 0x0a, 0x08, 0x41, 0x76, 0x72, 0x6f, 0x52, 0x6f, 0x77, + 0x73, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, + 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x14, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x69, 0x6e, + 0x61, 0x72, 0x79, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1f, 0x0a, 0x09, 0x72, 0x6f, 0x77, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, + 0x72, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x5d, 0x0a, 0x18, 0x41, 0x76, 0x72, 0x6f, + 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x1d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0xb9, 0x01, 0x0a, 0x24, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x42, 0x09, 0x41, 0x76, 0x72, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x67, 0x6f, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x70, 0x62, 0x3b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x62, 0xaa, 0x02, 0x20, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x42, 0x69, 0x67, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x56, 0x31, + 0xca, 0x02, 0x20, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, + 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x5c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x5c, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_bigquery_storage_v1_avro_proto_rawDescOnce sync.Once + file_google_cloud_bigquery_storage_v1_avro_proto_rawDescData = file_google_cloud_bigquery_storage_v1_avro_proto_rawDesc +) + +func file_google_cloud_bigquery_storage_v1_avro_proto_rawDescGZIP() []byte { + file_google_cloud_bigquery_storage_v1_avro_proto_rawDescOnce.Do(func() { + file_google_cloud_bigquery_storage_v1_avro_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_bigquery_storage_v1_avro_proto_rawDescData) + }) + return file_google_cloud_bigquery_storage_v1_avro_proto_rawDescData +} + +var file_google_cloud_bigquery_storage_v1_avro_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_google_cloud_bigquery_storage_v1_avro_proto_goTypes = []interface{}{ + (*AvroSchema)(nil), // 0: google.cloud.bigquery.storage.v1.AvroSchema + (*AvroRows)(nil), // 1: google.cloud.bigquery.storage.v1.AvroRows + (*AvroSerializationOptions)(nil), // 2: google.cloud.bigquery.storage.v1.AvroSerializationOptions +} +var file_google_cloud_bigquery_storage_v1_avro_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_google_cloud_bigquery_storage_v1_avro_proto_init() } +func file_google_cloud_bigquery_storage_v1_avro_proto_init() { + if File_google_cloud_bigquery_storage_v1_avro_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_bigquery_storage_v1_avro_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AvroSchema); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_avro_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AvroRows); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_avro_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AvroSerializationOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_bigquery_storage_v1_avro_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_bigquery_storage_v1_avro_proto_goTypes, + DependencyIndexes: file_google_cloud_bigquery_storage_v1_avro_proto_depIdxs, + MessageInfos: file_google_cloud_bigquery_storage_v1_avro_proto_msgTypes, + }.Build() + File_google_cloud_bigquery_storage_v1_avro_proto = out.File + file_google_cloud_bigquery_storage_v1_avro_proto_rawDesc = nil + file_google_cloud_bigquery_storage_v1_avro_proto_goTypes = nil + file_google_cloud_bigquery_storage_v1_avro_proto_depIdxs = nil +} diff --git a/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/protobuf.pb.go b/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/protobuf.pb.go new file mode 100644 index 000000000..e1286ff3c --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/protobuf.pb.go @@ -0,0 +1,257 @@ +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v4.25.2 +// source: google/cloud/bigquery/storage/v1/protobuf.proto + +package storagepb + +import ( + reflect "reflect" + sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// ProtoSchema describes the schema of the serialized protocol buffer data rows. +type ProtoSchema struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Descriptor for input message. The provided descriptor must be self + // contained, such that data rows sent can be fully decoded using only the + // single descriptor. For data rows that are compositions of multiple + // independent messages, this means the descriptor may need to be transformed + // to only use nested types: + // https://developers.google.com/protocol-buffers/docs/proto#nested + // + // For additional information for how proto types and values map onto BigQuery + // see: https://cloud.google.com/bigquery/docs/write-api#data_type_conversions + ProtoDescriptor *descriptorpb.DescriptorProto `protobuf:"bytes,1,opt,name=proto_descriptor,json=protoDescriptor,proto3" json:"proto_descriptor,omitempty"` +} + +func (x *ProtoSchema) Reset() { + *x = ProtoSchema{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_protobuf_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProtoSchema) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProtoSchema) ProtoMessage() {} + +func (x *ProtoSchema) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_protobuf_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProtoSchema.ProtoReflect.Descriptor instead. +func (*ProtoSchema) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_protobuf_proto_rawDescGZIP(), []int{0} +} + +func (x *ProtoSchema) GetProtoDescriptor() *descriptorpb.DescriptorProto { + if x != nil { + return x.ProtoDescriptor + } + return nil +} + +type ProtoRows struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A sequence of rows serialized as a Protocol Buffer. + // + // See https://developers.google.com/protocol-buffers/docs/overview for more + // information on deserializing this field. + SerializedRows [][]byte `protobuf:"bytes,1,rep,name=serialized_rows,json=serializedRows,proto3" json:"serialized_rows,omitempty"` +} + +func (x *ProtoRows) Reset() { + *x = ProtoRows{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_protobuf_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProtoRows) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProtoRows) ProtoMessage() {} + +func (x *ProtoRows) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_protobuf_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProtoRows.ProtoReflect.Descriptor instead. +func (*ProtoRows) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_protobuf_proto_rawDescGZIP(), []int{1} +} + +func (x *ProtoRows) GetSerializedRows() [][]byte { + if x != nil { + return x.SerializedRows + } + return nil +} + +var File_google_cloud_bigquery_storage_v1_protobuf_proto protoreflect.FileDescriptor + +var file_google_cloud_bigquery_storage_v1_protobuf_proto_rawDesc = []byte{ + 0x0a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x62, + 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5a, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x12, 0x4b, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x5f, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x22, 0x34, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x27, + 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x77, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x42, 0xbd, 0x01, 0x0a, 0x24, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x42, 0x0d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x75, 0x66, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x62, 0x3b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, + 0x62, 0xaa, 0x02, 0x20, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x20, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x5c, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x5c, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x5c, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_bigquery_storage_v1_protobuf_proto_rawDescOnce sync.Once + file_google_cloud_bigquery_storage_v1_protobuf_proto_rawDescData = file_google_cloud_bigquery_storage_v1_protobuf_proto_rawDesc +) + +func file_google_cloud_bigquery_storage_v1_protobuf_proto_rawDescGZIP() []byte { + file_google_cloud_bigquery_storage_v1_protobuf_proto_rawDescOnce.Do(func() { + file_google_cloud_bigquery_storage_v1_protobuf_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_bigquery_storage_v1_protobuf_proto_rawDescData) + }) + return file_google_cloud_bigquery_storage_v1_protobuf_proto_rawDescData +} + +var file_google_cloud_bigquery_storage_v1_protobuf_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_google_cloud_bigquery_storage_v1_protobuf_proto_goTypes = []interface{}{ + (*ProtoSchema)(nil), // 0: google.cloud.bigquery.storage.v1.ProtoSchema + (*ProtoRows)(nil), // 1: google.cloud.bigquery.storage.v1.ProtoRows + (*descriptorpb.DescriptorProto)(nil), // 2: google.protobuf.DescriptorProto +} +var file_google_cloud_bigquery_storage_v1_protobuf_proto_depIdxs = []int32{ + 2, // 0: google.cloud.bigquery.storage.v1.ProtoSchema.proto_descriptor:type_name -> google.protobuf.DescriptorProto + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_google_cloud_bigquery_storage_v1_protobuf_proto_init() } +func file_google_cloud_bigquery_storage_v1_protobuf_proto_init() { + if File_google_cloud_bigquery_storage_v1_protobuf_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_bigquery_storage_v1_protobuf_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProtoSchema); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_protobuf_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProtoRows); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_bigquery_storage_v1_protobuf_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_bigquery_storage_v1_protobuf_proto_goTypes, + DependencyIndexes: file_google_cloud_bigquery_storage_v1_protobuf_proto_depIdxs, + MessageInfos: file_google_cloud_bigquery_storage_v1_protobuf_proto_msgTypes, + }.Build() + File_google_cloud_bigquery_storage_v1_protobuf_proto = out.File + file_google_cloud_bigquery_storage_v1_protobuf_proto_rawDesc = nil + file_google_cloud_bigquery_storage_v1_protobuf_proto_goTypes = nil + file_google_cloud_bigquery_storage_v1_protobuf_proto_depIdxs = nil +} diff --git a/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/storage.pb.go b/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/storage.pb.go new file mode 100644 index 000000000..3b5d82246 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/storage.pb.go @@ -0,0 +1,3496 @@ +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v4.25.2 +// source: google/cloud/bigquery/storage/v1/storage.proto + +package storagepb + +import ( + context "context" + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + status "google.golang.org/genproto/googleapis/rpc/status" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status1 "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// An enum to indicate how to interpret missing values of fields that are +// present in user schema but missing in rows. A missing value can represent a +// NULL or a column default value defined in BigQuery table schema. +type AppendRowsRequest_MissingValueInterpretation int32 + +const ( + // Invalid missing value interpretation. Requests with this value will be + // rejected. + AppendRowsRequest_MISSING_VALUE_INTERPRETATION_UNSPECIFIED AppendRowsRequest_MissingValueInterpretation = 0 + // Missing value is interpreted as NULL. + AppendRowsRequest_NULL_VALUE AppendRowsRequest_MissingValueInterpretation = 1 + // Missing value is interpreted as column default value if declared in the + // table schema, NULL otherwise. + AppendRowsRequest_DEFAULT_VALUE AppendRowsRequest_MissingValueInterpretation = 2 +) + +// Enum value maps for AppendRowsRequest_MissingValueInterpretation. +var ( + AppendRowsRequest_MissingValueInterpretation_name = map[int32]string{ + 0: "MISSING_VALUE_INTERPRETATION_UNSPECIFIED", + 1: "NULL_VALUE", + 2: "DEFAULT_VALUE", + } + AppendRowsRequest_MissingValueInterpretation_value = map[string]int32{ + "MISSING_VALUE_INTERPRETATION_UNSPECIFIED": 0, + "NULL_VALUE": 1, + "DEFAULT_VALUE": 2, + } +) + +func (x AppendRowsRequest_MissingValueInterpretation) Enum() *AppendRowsRequest_MissingValueInterpretation { + p := new(AppendRowsRequest_MissingValueInterpretation) + *p = x + return p +} + +func (x AppendRowsRequest_MissingValueInterpretation) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AppendRowsRequest_MissingValueInterpretation) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_bigquery_storage_v1_storage_proto_enumTypes[0].Descriptor() +} + +func (AppendRowsRequest_MissingValueInterpretation) Type() protoreflect.EnumType { + return &file_google_cloud_bigquery_storage_v1_storage_proto_enumTypes[0] +} + +func (x AppendRowsRequest_MissingValueInterpretation) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AppendRowsRequest_MissingValueInterpretation.Descriptor instead. +func (AppendRowsRequest_MissingValueInterpretation) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{8, 0} +} + +// Error code for `StorageError`. +type StorageError_StorageErrorCode int32 + +const ( + // Default error. + StorageError_STORAGE_ERROR_CODE_UNSPECIFIED StorageError_StorageErrorCode = 0 + // Table is not found in the system. + StorageError_TABLE_NOT_FOUND StorageError_StorageErrorCode = 1 + // Stream is already committed. + StorageError_STREAM_ALREADY_COMMITTED StorageError_StorageErrorCode = 2 + // Stream is not found. + StorageError_STREAM_NOT_FOUND StorageError_StorageErrorCode = 3 + // Invalid Stream type. + // For example, you try to commit a stream that is not pending. + StorageError_INVALID_STREAM_TYPE StorageError_StorageErrorCode = 4 + // Invalid Stream state. + // For example, you try to commit a stream that is not finalized or is + // garbaged. + StorageError_INVALID_STREAM_STATE StorageError_StorageErrorCode = 5 + // Stream is finalized. + StorageError_STREAM_FINALIZED StorageError_StorageErrorCode = 6 + // There is a schema mismatch and it is caused by user schema has extra + // field than bigquery schema. + StorageError_SCHEMA_MISMATCH_EXTRA_FIELDS StorageError_StorageErrorCode = 7 + // Offset already exists. + StorageError_OFFSET_ALREADY_EXISTS StorageError_StorageErrorCode = 8 + // Offset out of range. + StorageError_OFFSET_OUT_OF_RANGE StorageError_StorageErrorCode = 9 + // Customer-managed encryption key (CMEK) not provided for CMEK-enabled + // data. + StorageError_CMEK_NOT_PROVIDED StorageError_StorageErrorCode = 10 + // Customer-managed encryption key (CMEK) was incorrectly provided. + StorageError_INVALID_CMEK_PROVIDED StorageError_StorageErrorCode = 11 + // There is an encryption error while using customer-managed encryption key. + StorageError_CMEK_ENCRYPTION_ERROR StorageError_StorageErrorCode = 12 + // Key Management Service (KMS) service returned an error, which can be + // retried. + StorageError_KMS_SERVICE_ERROR StorageError_StorageErrorCode = 13 + // Permission denied while using customer-managed encryption key. + StorageError_KMS_PERMISSION_DENIED StorageError_StorageErrorCode = 14 +) + +// Enum value maps for StorageError_StorageErrorCode. +var ( + StorageError_StorageErrorCode_name = map[int32]string{ + 0: "STORAGE_ERROR_CODE_UNSPECIFIED", + 1: "TABLE_NOT_FOUND", + 2: "STREAM_ALREADY_COMMITTED", + 3: "STREAM_NOT_FOUND", + 4: "INVALID_STREAM_TYPE", + 5: "INVALID_STREAM_STATE", + 6: "STREAM_FINALIZED", + 7: "SCHEMA_MISMATCH_EXTRA_FIELDS", + 8: "OFFSET_ALREADY_EXISTS", + 9: "OFFSET_OUT_OF_RANGE", + 10: "CMEK_NOT_PROVIDED", + 11: "INVALID_CMEK_PROVIDED", + 12: "CMEK_ENCRYPTION_ERROR", + 13: "KMS_SERVICE_ERROR", + 14: "KMS_PERMISSION_DENIED", + } + StorageError_StorageErrorCode_value = map[string]int32{ + "STORAGE_ERROR_CODE_UNSPECIFIED": 0, + "TABLE_NOT_FOUND": 1, + "STREAM_ALREADY_COMMITTED": 2, + "STREAM_NOT_FOUND": 3, + "INVALID_STREAM_TYPE": 4, + "INVALID_STREAM_STATE": 5, + "STREAM_FINALIZED": 6, + "SCHEMA_MISMATCH_EXTRA_FIELDS": 7, + "OFFSET_ALREADY_EXISTS": 8, + "OFFSET_OUT_OF_RANGE": 9, + "CMEK_NOT_PROVIDED": 10, + "INVALID_CMEK_PROVIDED": 11, + "CMEK_ENCRYPTION_ERROR": 12, + "KMS_SERVICE_ERROR": 13, + "KMS_PERMISSION_DENIED": 14, + } +) + +func (x StorageError_StorageErrorCode) Enum() *StorageError_StorageErrorCode { + p := new(StorageError_StorageErrorCode) + *p = x + return p +} + +func (x StorageError_StorageErrorCode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (StorageError_StorageErrorCode) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_bigquery_storage_v1_storage_proto_enumTypes[1].Descriptor() +} + +func (StorageError_StorageErrorCode) Type() protoreflect.EnumType { + return &file_google_cloud_bigquery_storage_v1_storage_proto_enumTypes[1] +} + +func (x StorageError_StorageErrorCode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use StorageError_StorageErrorCode.Descriptor instead. +func (StorageError_StorageErrorCode) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{17, 0} +} + +// Error code for `RowError`. +type RowError_RowErrorCode int32 + +const ( + // Default error. + RowError_ROW_ERROR_CODE_UNSPECIFIED RowError_RowErrorCode = 0 + // One or more fields in the row has errors. + RowError_FIELDS_ERROR RowError_RowErrorCode = 1 +) + +// Enum value maps for RowError_RowErrorCode. +var ( + RowError_RowErrorCode_name = map[int32]string{ + 0: "ROW_ERROR_CODE_UNSPECIFIED", + 1: "FIELDS_ERROR", + } + RowError_RowErrorCode_value = map[string]int32{ + "ROW_ERROR_CODE_UNSPECIFIED": 0, + "FIELDS_ERROR": 1, + } +) + +func (x RowError_RowErrorCode) Enum() *RowError_RowErrorCode { + p := new(RowError_RowErrorCode) + *p = x + return p +} + +func (x RowError_RowErrorCode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RowError_RowErrorCode) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_bigquery_storage_v1_storage_proto_enumTypes[2].Descriptor() +} + +func (RowError_RowErrorCode) Type() protoreflect.EnumType { + return &file_google_cloud_bigquery_storage_v1_storage_proto_enumTypes[2] +} + +func (x RowError_RowErrorCode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RowError_RowErrorCode.Descriptor instead. +func (RowError_RowErrorCode) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{18, 0} +} + +// Request message for `CreateReadSession`. +type CreateReadSessionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The request project that owns the session, in the form of + // `projects/{project_id}`. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Session to be created. + ReadSession *ReadSession `protobuf:"bytes,2,opt,name=read_session,json=readSession,proto3" json:"read_session,omitempty"` + // Max initial number of streams. If unset or zero, the server will + // provide a value of streams so as to produce reasonable throughput. Must be + // non-negative. The number of streams may be lower than the requested number, + // depending on the amount parallelism that is reasonable for the table. + // There is a default system max limit of 1,000. + // + // This must be greater than or equal to preferred_min_stream_count. + // Typically, clients should either leave this unset to let the system to + // determine an upper bound OR set this a size for the maximum "units of work" + // it can gracefully handle. + MaxStreamCount int32 `protobuf:"varint,3,opt,name=max_stream_count,json=maxStreamCount,proto3" json:"max_stream_count,omitempty"` + // The minimum preferred stream count. This parameter can be used to inform + // the service that there is a desired lower bound on the number of streams. + // This is typically a target parallelism of the client (e.g. a Spark + // cluster with N-workers would set this to a low multiple of N to ensure + // good cluster utilization). + // + // The system will make a best effort to provide at least this number of + // streams, but in some cases might provide less. + PreferredMinStreamCount int32 `protobuf:"varint,4,opt,name=preferred_min_stream_count,json=preferredMinStreamCount,proto3" json:"preferred_min_stream_count,omitempty"` +} + +func (x *CreateReadSessionRequest) Reset() { + *x = CreateReadSessionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateReadSessionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateReadSessionRequest) ProtoMessage() {} + +func (x *CreateReadSessionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateReadSessionRequest.ProtoReflect.Descriptor instead. +func (*CreateReadSessionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{0} +} + +func (x *CreateReadSessionRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateReadSessionRequest) GetReadSession() *ReadSession { + if x != nil { + return x.ReadSession + } + return nil +} + +func (x *CreateReadSessionRequest) GetMaxStreamCount() int32 { + if x != nil { + return x.MaxStreamCount + } + return 0 +} + +func (x *CreateReadSessionRequest) GetPreferredMinStreamCount() int32 { + if x != nil { + return x.PreferredMinStreamCount + } + return 0 +} + +// Request message for `ReadRows`. +type ReadRowsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Stream to read rows from. + ReadStream string `protobuf:"bytes,1,opt,name=read_stream,json=readStream,proto3" json:"read_stream,omitempty"` + // 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. + Offset int64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` +} + +func (x *ReadRowsRequest) Reset() { + *x = ReadRowsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReadRowsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReadRowsRequest) ProtoMessage() {} + +func (x *ReadRowsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReadRowsRequest.ProtoReflect.Descriptor instead. +func (*ReadRowsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{1} +} + +func (x *ReadRowsRequest) GetReadStream() string { + if x != nil { + return x.ReadStream + } + return "" +} + +func (x *ReadRowsRequest) GetOffset() int64 { + if x != nil { + return x.Offset + } + return 0 +} + +// Information on if the current connection is being throttled. +type ThrottleState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // How much this connection is being throttled. Zero means no throttling, + // 100 means fully throttled. + ThrottlePercent int32 `protobuf:"varint,1,opt,name=throttle_percent,json=throttlePercent,proto3" json:"throttle_percent,omitempty"` +} + +func (x *ThrottleState) Reset() { + *x = ThrottleState{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ThrottleState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ThrottleState) ProtoMessage() {} + +func (x *ThrottleState) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ThrottleState.ProtoReflect.Descriptor instead. +func (*ThrottleState) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{2} +} + +func (x *ThrottleState) GetThrottlePercent() int32 { + if x != nil { + return x.ThrottlePercent + } + return 0 +} + +// Estimated stream statistics for a given read Stream. +type StreamStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Represents the progress of the current stream. + Progress *StreamStats_Progress `protobuf:"bytes,2,opt,name=progress,proto3" json:"progress,omitempty"` +} + +func (x *StreamStats) Reset() { + *x = StreamStats{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamStats) ProtoMessage() {} + +func (x *StreamStats) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StreamStats.ProtoReflect.Descriptor instead. +func (*StreamStats) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{3} +} + +func (x *StreamStats) GetProgress() *StreamStats_Progress { + if x != nil { + return x.Progress + } + return nil +} + +// Response from calling `ReadRows` may include row data, progress and +// throttling information. +type ReadRowsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Row data is returned in format specified during session creation. + // + // Types that are assignable to Rows: + // + // *ReadRowsResponse_AvroRows + // *ReadRowsResponse_ArrowRecordBatch + Rows isReadRowsResponse_Rows `protobuf_oneof:"rows"` + // Number of serialized rows in the rows block. + RowCount int64 `protobuf:"varint,6,opt,name=row_count,json=rowCount,proto3" json:"row_count,omitempty"` + // Statistics for the stream. + Stats *StreamStats `protobuf:"bytes,2,opt,name=stats,proto3" json:"stats,omitempty"` + // Throttling state. If unset, the latest response still describes + // the current throttling status. + ThrottleState *ThrottleState `protobuf:"bytes,5,opt,name=throttle_state,json=throttleState,proto3" json:"throttle_state,omitempty"` + // The schema for the read. If read_options.selected_fields is set, the + // schema may be different from the table schema as it will only contain + // the selected fields. This schema is equivalent to the one returned by + // CreateSession. This field is only populated in the first ReadRowsResponse + // RPC. + // + // Types that are assignable to Schema: + // + // *ReadRowsResponse_AvroSchema + // *ReadRowsResponse_ArrowSchema + Schema isReadRowsResponse_Schema `protobuf_oneof:"schema"` + // Optional. If the row data in this ReadRowsResponse is compressed, then + // uncompressed byte size is the original size of the uncompressed row data. + // If it is set to a value greater than 0, then decompress into a buffer of + // size uncompressed_byte_size using the compression codec that was requested + // during session creation time and which is specified in + // TableReadOptions.response_compression_codec in ReadSession. + // This value is not set if no response_compression_codec was not requested + // and it is -1 if the requested compression would not have reduced the size + // of this ReadRowsResponse's row data. This attempts to match Apache Arrow's + // behavior described here https://github.com/apache/arrow/issues/15102 where + // the uncompressed length may be set to -1 to indicate that the data that + // 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. + UncompressedByteSize *int64 `protobuf:"varint,9,opt,name=uncompressed_byte_size,json=uncompressedByteSize,proto3,oneof" json:"uncompressed_byte_size,omitempty"` +} + +func (x *ReadRowsResponse) Reset() { + *x = ReadRowsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReadRowsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReadRowsResponse) ProtoMessage() {} + +func (x *ReadRowsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReadRowsResponse.ProtoReflect.Descriptor instead. +func (*ReadRowsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{4} +} + +func (m *ReadRowsResponse) GetRows() isReadRowsResponse_Rows { + if m != nil { + return m.Rows + } + return nil +} + +func (x *ReadRowsResponse) GetAvroRows() *AvroRows { + if x, ok := x.GetRows().(*ReadRowsResponse_AvroRows); ok { + return x.AvroRows + } + return nil +} + +func (x *ReadRowsResponse) GetArrowRecordBatch() *ArrowRecordBatch { + if x, ok := x.GetRows().(*ReadRowsResponse_ArrowRecordBatch); ok { + return x.ArrowRecordBatch + } + return nil +} + +func (x *ReadRowsResponse) GetRowCount() int64 { + if x != nil { + return x.RowCount + } + return 0 +} + +func (x *ReadRowsResponse) GetStats() *StreamStats { + if x != nil { + return x.Stats + } + return nil +} + +func (x *ReadRowsResponse) GetThrottleState() *ThrottleState { + if x != nil { + return x.ThrottleState + } + return nil +} + +func (m *ReadRowsResponse) GetSchema() isReadRowsResponse_Schema { + if m != nil { + return m.Schema + } + return nil +} + +func (x *ReadRowsResponse) GetAvroSchema() *AvroSchema { + if x, ok := x.GetSchema().(*ReadRowsResponse_AvroSchema); ok { + return x.AvroSchema + } + return nil +} + +func (x *ReadRowsResponse) GetArrowSchema() *ArrowSchema { + if x, ok := x.GetSchema().(*ReadRowsResponse_ArrowSchema); ok { + return x.ArrowSchema + } + return nil +} + +func (x *ReadRowsResponse) GetUncompressedByteSize() int64 { + if x != nil && x.UncompressedByteSize != nil { + return *x.UncompressedByteSize + } + return 0 +} + +type isReadRowsResponse_Rows interface { + isReadRowsResponse_Rows() +} + +type ReadRowsResponse_AvroRows struct { + // Serialized row data in AVRO format. + AvroRows *AvroRows `protobuf:"bytes,3,opt,name=avro_rows,json=avroRows,proto3,oneof"` +} + +type ReadRowsResponse_ArrowRecordBatch struct { + // Serialized row data in Arrow RecordBatch format. + ArrowRecordBatch *ArrowRecordBatch `protobuf:"bytes,4,opt,name=arrow_record_batch,json=arrowRecordBatch,proto3,oneof"` +} + +func (*ReadRowsResponse_AvroRows) isReadRowsResponse_Rows() {} + +func (*ReadRowsResponse_ArrowRecordBatch) isReadRowsResponse_Rows() {} + +type isReadRowsResponse_Schema interface { + isReadRowsResponse_Schema() +} + +type ReadRowsResponse_AvroSchema struct { + // Output only. Avro schema. + AvroSchema *AvroSchema `protobuf:"bytes,7,opt,name=avro_schema,json=avroSchema,proto3,oneof"` +} + +type ReadRowsResponse_ArrowSchema struct { + // Output only. Arrow schema. + ArrowSchema *ArrowSchema `protobuf:"bytes,8,opt,name=arrow_schema,json=arrowSchema,proto3,oneof"` +} + +func (*ReadRowsResponse_AvroSchema) isReadRowsResponse_Schema() {} + +func (*ReadRowsResponse_ArrowSchema) isReadRowsResponse_Schema() {} + +// Request message for `SplitReadStream`. +type SplitReadStreamRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the stream to split. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // A value in the range (0.0, 1.0) that specifies the fractional point at + // which the original stream should be split. The actual split point is + // evaluated on pre-filtered rows, so if a filter is provided, then there is + // no guarantee that the division of the rows between the new child streams + // will be proportional to this fractional value. Additionally, because the + // server-side unit for assigning data is collections of rows, this fraction + // will always map to a data storage boundary on the server side. + Fraction float64 `protobuf:"fixed64,2,opt,name=fraction,proto3" json:"fraction,omitempty"` +} + +func (x *SplitReadStreamRequest) Reset() { + *x = SplitReadStreamRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SplitReadStreamRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SplitReadStreamRequest) ProtoMessage() {} + +func (x *SplitReadStreamRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SplitReadStreamRequest.ProtoReflect.Descriptor instead. +func (*SplitReadStreamRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{5} +} + +func (x *SplitReadStreamRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *SplitReadStreamRequest) GetFraction() float64 { + if x != nil { + return x.Fraction + } + return 0 +} + +// Response message for `SplitReadStream`. +type SplitReadStreamResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Primary stream, which contains the beginning portion of + // |original_stream|. An empty value indicates that the original stream can no + // longer be split. + PrimaryStream *ReadStream `protobuf:"bytes,1,opt,name=primary_stream,json=primaryStream,proto3" json:"primary_stream,omitempty"` + // Remainder stream, which contains the tail of |original_stream|. An empty + // value indicates that the original stream can no longer be split. + RemainderStream *ReadStream `protobuf:"bytes,2,opt,name=remainder_stream,json=remainderStream,proto3" json:"remainder_stream,omitempty"` +} + +func (x *SplitReadStreamResponse) Reset() { + *x = SplitReadStreamResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SplitReadStreamResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SplitReadStreamResponse) ProtoMessage() {} + +func (x *SplitReadStreamResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SplitReadStreamResponse.ProtoReflect.Descriptor instead. +func (*SplitReadStreamResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{6} +} + +func (x *SplitReadStreamResponse) GetPrimaryStream() *ReadStream { + if x != nil { + return x.PrimaryStream + } + return nil +} + +func (x *SplitReadStreamResponse) GetRemainderStream() *ReadStream { + if x != nil { + return x.RemainderStream + } + return nil +} + +// Request message for `CreateWriteStream`. +type CreateWriteStreamRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Reference to the table to which the stream belongs, in the format + // of `projects/{project}/datasets/{dataset}/tables/{table}`. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Stream to be created. + WriteStream *WriteStream `protobuf:"bytes,2,opt,name=write_stream,json=writeStream,proto3" json:"write_stream,omitempty"` +} + +func (x *CreateWriteStreamRequest) Reset() { + *x = CreateWriteStreamRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateWriteStreamRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateWriteStreamRequest) ProtoMessage() {} + +func (x *CreateWriteStreamRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateWriteStreamRequest.ProtoReflect.Descriptor instead. +func (*CreateWriteStreamRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{7} +} + +func (x *CreateWriteStreamRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateWriteStreamRequest) GetWriteStream() *WriteStream { + if x != nil { + return x.WriteStream + } + return nil +} + +// Request message for `AppendRows`. +// +// Because AppendRows is a bidirectional streaming RPC, certain parts of the +// 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. +// Requests larger than this return an error, typically `INVALID_ARGUMENT`. +type AppendRowsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The write_stream identifies the append operation. It must be + // provided in the following scenarios: + // + // * In the first request to an AppendRows connection. + // + // * In all subsequent requests to an AppendRows connection, if you use the + // same connection to write to multiple tables or change the input schema for + // default streams. + // + // For explicitly created write streams, the format is: + // + // * `projects/{project}/datasets/{dataset}/tables/{table}/streams/{id}` + // + // For the special default stream, the format is: + // + // * `projects/{project}/datasets/{dataset}/tables/{table}/streams/_default`. + // + // An example of a possible sequence of requests with write_stream fields + // within a single connection: + // + // * r1: {write_stream: stream_name_1} + // + // * r2: {write_stream: /*omit*/} + // + // * r3: {write_stream: /*omit*/} + // + // * r4: {write_stream: stream_name_2} + // + // * r5: {write_stream: stream_name_2} + // + // The destination changed in request_4, so the write_stream field must be + // populated in all subsequent requests in this stream. + WriteStream string `protobuf:"bytes,1,opt,name=write_stream,json=writeStream,proto3" json:"write_stream,omitempty"` + // If present, the write is only performed if the next append offset is same + // as the provided value. If not present, the write is performed at the + // current end of stream. Specifying a value for this field is not allowed + // when calling AppendRows for the '_default' stream. + Offset *wrapperspb.Int64Value `protobuf:"bytes,2,opt,name=offset,proto3" json:"offset,omitempty"` + // Input rows. The `writer_schema` field must be specified at the initial + // request and currently, it will be ignored if specified in following + // requests. Following requests must have data in the same format as the + // initial request. + // + // Types that are assignable to Rows: + // + // *AppendRowsRequest_ProtoRows + Rows isAppendRowsRequest_Rows `protobuf_oneof:"rows"` + // Id set by client to annotate its identity. Only initial request setting is + // respected. + TraceId string `protobuf:"bytes,6,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"` + // A map to indicate how to interpret missing value for some fields. Missing + // values are fields present in user schema but missing in rows. The key is + // the field name. The value is the interpretation of missing values for the + // field. + // + // For example, a map {'foo': NULL_VALUE, 'bar': DEFAULT_VALUE} means all + // missing values in field foo are interpreted as NULL, all missing values in + // field bar are interpreted as the default value of field bar in table + // schema. + // + // If a field is not in this map and has missing values, the missing values + // in this field are interpreted as NULL. + // + // This field only applies to the current request, it won't affect other + // requests on the connection. + // + // Currently, field name can only be top-level column name, can't be a struct + // field path like 'foo.bar'. + MissingValueInterpretations map[string]AppendRowsRequest_MissingValueInterpretation `protobuf:"bytes,7,rep,name=missing_value_interpretations,json=missingValueInterpretations,proto3" json:"missing_value_interpretations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=google.cloud.bigquery.storage.v1.AppendRowsRequest_MissingValueInterpretation"` + // Optional. Default missing value interpretation for all columns in the + // table. When a value is specified on an `AppendRowsRequest`, it is applied + // to all requests on the connection from that point forward, until a + // subsequent `AppendRowsRequest` sets it to a different value. + // `missing_value_interpretation` can override + // `default_missing_value_interpretation`. For example, if you want to write + // `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. + DefaultMissingValueInterpretation AppendRowsRequest_MissingValueInterpretation `protobuf:"varint,8,opt,name=default_missing_value_interpretation,json=defaultMissingValueInterpretation,proto3,enum=google.cloud.bigquery.storage.v1.AppendRowsRequest_MissingValueInterpretation" json:"default_missing_value_interpretation,omitempty"` +} + +func (x *AppendRowsRequest) Reset() { + *x = AppendRowsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppendRowsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppendRowsRequest) ProtoMessage() {} + +func (x *AppendRowsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AppendRowsRequest.ProtoReflect.Descriptor instead. +func (*AppendRowsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{8} +} + +func (x *AppendRowsRequest) GetWriteStream() string { + if x != nil { + return x.WriteStream + } + return "" +} + +func (x *AppendRowsRequest) GetOffset() *wrapperspb.Int64Value { + if x != nil { + return x.Offset + } + return nil +} + +func (m *AppendRowsRequest) GetRows() isAppendRowsRequest_Rows { + if m != nil { + return m.Rows + } + return nil +} + +func (x *AppendRowsRequest) GetProtoRows() *AppendRowsRequest_ProtoData { + if x, ok := x.GetRows().(*AppendRowsRequest_ProtoRows); ok { + return x.ProtoRows + } + return nil +} + +func (x *AppendRowsRequest) GetTraceId() string { + if x != nil { + return x.TraceId + } + return "" +} + +func (x *AppendRowsRequest) GetMissingValueInterpretations() map[string]AppendRowsRequest_MissingValueInterpretation { + if x != nil { + return x.MissingValueInterpretations + } + return nil +} + +func (x *AppendRowsRequest) GetDefaultMissingValueInterpretation() AppendRowsRequest_MissingValueInterpretation { + if x != nil { + return x.DefaultMissingValueInterpretation + } + return AppendRowsRequest_MISSING_VALUE_INTERPRETATION_UNSPECIFIED +} + +type isAppendRowsRequest_Rows interface { + isAppendRowsRequest_Rows() +} + +type AppendRowsRequest_ProtoRows struct { + // Rows in proto format. + ProtoRows *AppendRowsRequest_ProtoData `protobuf:"bytes,4,opt,name=proto_rows,json=protoRows,proto3,oneof"` +} + +func (*AppendRowsRequest_ProtoRows) isAppendRowsRequest_Rows() {} + +// Response message for `AppendRows`. +type AppendRowsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Response: + // + // *AppendRowsResponse_AppendResult_ + // *AppendRowsResponse_Error + Response isAppendRowsResponse_Response `protobuf_oneof:"response"` + // If backend detects a schema update, pass it to user so that user can + // use it to input new type of message. It will be empty when no schema + // updates have occurred. + UpdatedSchema *TableSchema `protobuf:"bytes,3,opt,name=updated_schema,json=updatedSchema,proto3" json:"updated_schema,omitempty"` + // If a request failed due to corrupted rows, no rows in the batch will be + // appended. The API will return row level error info, so that the caller can + // remove the bad rows and retry the request. + RowErrors []*RowError `protobuf:"bytes,4,rep,name=row_errors,json=rowErrors,proto3" json:"row_errors,omitempty"` + // The target of the append operation. Matches the write_stream in the + // corresponding request. + WriteStream string `protobuf:"bytes,5,opt,name=write_stream,json=writeStream,proto3" json:"write_stream,omitempty"` +} + +func (x *AppendRowsResponse) Reset() { + *x = AppendRowsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppendRowsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppendRowsResponse) ProtoMessage() {} + +func (x *AppendRowsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AppendRowsResponse.ProtoReflect.Descriptor instead. +func (*AppendRowsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{9} +} + +func (m *AppendRowsResponse) GetResponse() isAppendRowsResponse_Response { + if m != nil { + return m.Response + } + return nil +} + +func (x *AppendRowsResponse) GetAppendResult() *AppendRowsResponse_AppendResult { + if x, ok := x.GetResponse().(*AppendRowsResponse_AppendResult_); ok { + return x.AppendResult + } + return nil +} + +func (x *AppendRowsResponse) GetError() *status.Status { + if x, ok := x.GetResponse().(*AppendRowsResponse_Error); ok { + return x.Error + } + return nil +} + +func (x *AppendRowsResponse) GetUpdatedSchema() *TableSchema { + if x != nil { + return x.UpdatedSchema + } + return nil +} + +func (x *AppendRowsResponse) GetRowErrors() []*RowError { + if x != nil { + return x.RowErrors + } + return nil +} + +func (x *AppendRowsResponse) GetWriteStream() string { + if x != nil { + return x.WriteStream + } + return "" +} + +type isAppendRowsResponse_Response interface { + isAppendRowsResponse_Response() +} + +type AppendRowsResponse_AppendResult_ struct { + // Result if the append is successful. + AppendResult *AppendRowsResponse_AppendResult `protobuf:"bytes,1,opt,name=append_result,json=appendResult,proto3,oneof"` +} + +type AppendRowsResponse_Error struct { + // Error returned when problems were encountered. If present, + // it indicates rows were not accepted into the system. + // Users can retry or continue with other append requests within the + // same connection. + // + // Additional information about error signalling: + // + // ALREADY_EXISTS: Happens when an append specified an offset, and the + // backend already has received data at this offset. Typically encountered + // in retry scenarios, and can be ignored. + // + // OUT_OF_RANGE: Returned when the specified offset in the stream is beyond + // the current end of the stream. + // + // INVALID_ARGUMENT: Indicates a malformed request or data. + // + // ABORTED: Request processing is aborted because of prior failures. The + // request can be retried if previous failure is addressed. + // + // INTERNAL: Indicates server side error(s) that can be retried. + Error *status.Status `protobuf:"bytes,2,opt,name=error,proto3,oneof"` +} + +func (*AppendRowsResponse_AppendResult_) isAppendRowsResponse_Response() {} + +func (*AppendRowsResponse_Error) isAppendRowsResponse_Response() {} + +// Request message for `GetWriteStreamRequest`. +type GetWriteStreamRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the stream to get, in the form of + // `projects/{project}/datasets/{dataset}/tables/{table}/streams/{stream}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Indicates whether to get full or partial view of the WriteStream. If + // not set, view returned will be basic. + View WriteStreamView `protobuf:"varint,3,opt,name=view,proto3,enum=google.cloud.bigquery.storage.v1.WriteStreamView" json:"view,omitempty"` +} + +func (x *GetWriteStreamRequest) Reset() { + *x = GetWriteStreamRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetWriteStreamRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWriteStreamRequest) ProtoMessage() {} + +func (x *GetWriteStreamRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetWriteStreamRequest.ProtoReflect.Descriptor instead. +func (*GetWriteStreamRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{10} +} + +func (x *GetWriteStreamRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *GetWriteStreamRequest) GetView() WriteStreamView { + if x != nil { + return x.View + } + return WriteStreamView_WRITE_STREAM_VIEW_UNSPECIFIED +} + +// Request message for `BatchCommitWriteStreams`. +type BatchCommitWriteStreamsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent table that all the streams should belong to, in the form + // of `projects/{project}/datasets/{dataset}/tables/{table}`. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The group of streams that will be committed atomically. + WriteStreams []string `protobuf:"bytes,2,rep,name=write_streams,json=writeStreams,proto3" json:"write_streams,omitempty"` +} + +func (x *BatchCommitWriteStreamsRequest) Reset() { + *x = BatchCommitWriteStreamsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchCommitWriteStreamsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchCommitWriteStreamsRequest) ProtoMessage() {} + +func (x *BatchCommitWriteStreamsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchCommitWriteStreamsRequest.ProtoReflect.Descriptor instead. +func (*BatchCommitWriteStreamsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{11} +} + +func (x *BatchCommitWriteStreamsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *BatchCommitWriteStreamsRequest) GetWriteStreams() []string { + if x != nil { + return x.WriteStreams + } + return nil +} + +// Response message for `BatchCommitWriteStreams`. +type BatchCommitWriteStreamsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The time at which streams were committed in microseconds granularity. + // This field will only exist when there are no stream errors. + // **Note** if this field is not set, it means the commit was not successful. + CommitTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=commit_time,json=commitTime,proto3" json:"commit_time,omitempty"` + // Stream level error if commit failed. Only streams with error will be in + // the list. + // If empty, there is no error and all streams are committed successfully. + // If non empty, certain streams have errors and ZERO stream is committed due + // to atomicity guarantee. + StreamErrors []*StorageError `protobuf:"bytes,2,rep,name=stream_errors,json=streamErrors,proto3" json:"stream_errors,omitempty"` +} + +func (x *BatchCommitWriteStreamsResponse) Reset() { + *x = BatchCommitWriteStreamsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchCommitWriteStreamsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchCommitWriteStreamsResponse) ProtoMessage() {} + +func (x *BatchCommitWriteStreamsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchCommitWriteStreamsResponse.ProtoReflect.Descriptor instead. +func (*BatchCommitWriteStreamsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{12} +} + +func (x *BatchCommitWriteStreamsResponse) GetCommitTime() *timestamppb.Timestamp { + if x != nil { + return x.CommitTime + } + return nil +} + +func (x *BatchCommitWriteStreamsResponse) GetStreamErrors() []*StorageError { + if x != nil { + return x.StreamErrors + } + return nil +} + +// Request message for invoking `FinalizeWriteStream`. +type FinalizeWriteStreamRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the stream to finalize, in the form of + // `projects/{project}/datasets/{dataset}/tables/{table}/streams/{stream}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *FinalizeWriteStreamRequest) Reset() { + *x = FinalizeWriteStreamRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FinalizeWriteStreamRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FinalizeWriteStreamRequest) ProtoMessage() {} + +func (x *FinalizeWriteStreamRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FinalizeWriteStreamRequest.ProtoReflect.Descriptor instead. +func (*FinalizeWriteStreamRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{13} +} + +func (x *FinalizeWriteStreamRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Response message for `FinalizeWriteStream`. +type FinalizeWriteStreamResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Number of rows in the finalized stream. + RowCount int64 `protobuf:"varint,1,opt,name=row_count,json=rowCount,proto3" json:"row_count,omitempty"` +} + +func (x *FinalizeWriteStreamResponse) Reset() { + *x = FinalizeWriteStreamResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FinalizeWriteStreamResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FinalizeWriteStreamResponse) ProtoMessage() {} + +func (x *FinalizeWriteStreamResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FinalizeWriteStreamResponse.ProtoReflect.Descriptor instead. +func (*FinalizeWriteStreamResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{14} +} + +func (x *FinalizeWriteStreamResponse) GetRowCount() int64 { + if x != nil { + return x.RowCount + } + return 0 +} + +// Request message for `FlushRows`. +type FlushRowsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The stream that is the target of the flush operation. + WriteStream string `protobuf:"bytes,1,opt,name=write_stream,json=writeStream,proto3" json:"write_stream,omitempty"` + // Ending offset of the flush operation. Rows before this offset(including + // this offset) will be flushed. + Offset *wrapperspb.Int64Value `protobuf:"bytes,2,opt,name=offset,proto3" json:"offset,omitempty"` +} + +func (x *FlushRowsRequest) Reset() { + *x = FlushRowsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FlushRowsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FlushRowsRequest) ProtoMessage() {} + +func (x *FlushRowsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FlushRowsRequest.ProtoReflect.Descriptor instead. +func (*FlushRowsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{15} +} + +func (x *FlushRowsRequest) GetWriteStream() string { + if x != nil { + return x.WriteStream + } + return "" +} + +func (x *FlushRowsRequest) GetOffset() *wrapperspb.Int64Value { + if x != nil { + return x.Offset + } + return nil +} + +// Respond message for `FlushRows`. +type FlushRowsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The rows before this offset (including this offset) are flushed. + Offset int64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` +} + +func (x *FlushRowsResponse) Reset() { + *x = FlushRowsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FlushRowsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FlushRowsResponse) ProtoMessage() {} + +func (x *FlushRowsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FlushRowsResponse.ProtoReflect.Descriptor instead. +func (*FlushRowsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{16} +} + +func (x *FlushRowsResponse) GetOffset() int64 { + if x != nil { + return x.Offset + } + return 0 +} + +// Structured custom BigQuery Storage error message. The error can be attached +// as error details in the returned rpc Status. In particular, the use of error +// codes allows more structured error handling, and reduces the need to evaluate +// unstructured error text strings. +type StorageError struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // BigQuery Storage specific error code. + Code StorageError_StorageErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=google.cloud.bigquery.storage.v1.StorageError_StorageErrorCode" json:"code,omitempty"` + // Name of the failed entity. + Entity string `protobuf:"bytes,2,opt,name=entity,proto3" json:"entity,omitempty"` + // Message that describes the error. + ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` +} + +func (x *StorageError) Reset() { + *x = StorageError{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StorageError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StorageError) ProtoMessage() {} + +func (x *StorageError) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StorageError.ProtoReflect.Descriptor instead. +func (*StorageError) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{17} +} + +func (x *StorageError) GetCode() StorageError_StorageErrorCode { + if x != nil { + return x.Code + } + return StorageError_STORAGE_ERROR_CODE_UNSPECIFIED +} + +func (x *StorageError) GetEntity() string { + if x != nil { + return x.Entity + } + return "" +} + +func (x *StorageError) GetErrorMessage() string { + if x != nil { + return x.ErrorMessage + } + return "" +} + +// The message that presents row level error info in a request. +type RowError struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Index of the malformed row in the request. + Index int64 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` + // Structured error reason for a row error. + Code RowError_RowErrorCode `protobuf:"varint,2,opt,name=code,proto3,enum=google.cloud.bigquery.storage.v1.RowError_RowErrorCode" json:"code,omitempty"` + // Description of the issue encountered when processing the row. + Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *RowError) Reset() { + *x = RowError{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RowError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RowError) ProtoMessage() {} + +func (x *RowError) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RowError.ProtoReflect.Descriptor instead. +func (*RowError) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{18} +} + +func (x *RowError) GetIndex() int64 { + if x != nil { + return x.Index + } + return 0 +} + +func (x *RowError) GetCode() RowError_RowErrorCode { + if x != nil { + return x.Code + } + return RowError_ROW_ERROR_CODE_UNSPECIFIED +} + +func (x *RowError) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +type StreamStats_Progress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The fraction of rows assigned to the stream that have been processed by + // the server so far, not including the rows in the current response + // message. + // + // This value, along with `at_response_end`, can be used to interpolate + // the progress made as the rows in the message are being processed using + // the following formula: `at_response_start + (at_response_end - + // at_response_start) * rows_processed_from_response / rows_in_response`. + // + // Note that if a filter is provided, the `at_response_end` value of the + // previous response may not necessarily be equal to the + // `at_response_start` value of the current response. + AtResponseStart float64 `protobuf:"fixed64,1,opt,name=at_response_start,json=atResponseStart,proto3" json:"at_response_start,omitempty"` + // Similar to `at_response_start`, except that this value includes the + // rows in the current response. + AtResponseEnd float64 `protobuf:"fixed64,2,opt,name=at_response_end,json=atResponseEnd,proto3" json:"at_response_end,omitempty"` +} + +func (x *StreamStats_Progress) Reset() { + *x = StreamStats_Progress{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamStats_Progress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamStats_Progress) ProtoMessage() {} + +func (x *StreamStats_Progress) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StreamStats_Progress.ProtoReflect.Descriptor instead. +func (*StreamStats_Progress) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{3, 0} +} + +func (x *StreamStats_Progress) GetAtResponseStart() float64 { + if x != nil { + return x.AtResponseStart + } + return 0 +} + +func (x *StreamStats_Progress) GetAtResponseEnd() float64 { + if x != nil { + return x.AtResponseEnd + } + return 0 +} + +// ProtoData contains the data rows and schema when constructing append +// requests. +type AppendRowsRequest_ProtoData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The protocol buffer schema used to serialize the data. Provide this value + // whenever: + // + // * You send the first request of an RPC connection. + // + // * You change the input schema. + // + // * You specify a new destination table. + WriterSchema *ProtoSchema `protobuf:"bytes,1,opt,name=writer_schema,json=writerSchema,proto3" json:"writer_schema,omitempty"` + // Serialized row data in protobuf message format. + // Currently, the backend expects the serialized rows to adhere to + // proto2 semantics when appending rows, particularly with respect to + // how default values are encoded. + Rows *ProtoRows `protobuf:"bytes,2,opt,name=rows,proto3" json:"rows,omitempty"` +} + +func (x *AppendRowsRequest_ProtoData) Reset() { + *x = AppendRowsRequest_ProtoData{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppendRowsRequest_ProtoData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppendRowsRequest_ProtoData) ProtoMessage() {} + +func (x *AppendRowsRequest_ProtoData) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AppendRowsRequest_ProtoData.ProtoReflect.Descriptor instead. +func (*AppendRowsRequest_ProtoData) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{8, 0} +} + +func (x *AppendRowsRequest_ProtoData) GetWriterSchema() *ProtoSchema { + if x != nil { + return x.WriterSchema + } + return nil +} + +func (x *AppendRowsRequest_ProtoData) GetRows() *ProtoRows { + if x != nil { + return x.Rows + } + return nil +} + +// AppendResult is returned for successful append requests. +type AppendRowsResponse_AppendResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The row offset at which the last append occurred. The offset will not be + // set if appending using default streams. + Offset *wrapperspb.Int64Value `protobuf:"bytes,1,opt,name=offset,proto3" json:"offset,omitempty"` +} + +func (x *AppendRowsResponse_AppendResult) Reset() { + *x = AppendRowsResponse_AppendResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppendRowsResponse_AppendResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppendRowsResponse_AppendResult) ProtoMessage() {} + +func (x *AppendRowsResponse_AppendResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AppendRowsResponse_AppendResult.ProtoReflect.Descriptor instead. +func (*AppendRowsResponse_AppendResult) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP(), []int{9, 0} +} + +func (x *AppendRowsResponse_AppendResult) GetOffset() *wrapperspb.Int64Value { + if x != nil { + return x.Offset + } + return nil +} + +var File_google_cloud_bigquery_storage_v1_storage_proto protoreflect.FileDescriptor + +var file_google_cloud_bigquery_storage_v1_storage_proto_rawDesc = []byte{ + 0x0a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x62, + 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, + 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, + 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, + 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x76, 0x72, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x62, + 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, + 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x62, + 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, + 0x76, 0x31, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa5, 0x02, 0x0a, 0x18, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x12, 0x55, 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x72, 0x65, + 0x61, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, + 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, + 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, + 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x7d, 0x0a, 0x0f, 0x52, 0x65, 0x61, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x52, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2b, + 0x0a, 0x29, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x52, 0x65, 0x61, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x0a, 0x72, 0x65, 0x61, + 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, + 0x3a, 0x0a, 0x0d, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x29, 0x0a, 0x10, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x74, 0x68, 0x72, 0x6f, + 0x74, 0x74, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x22, 0xc1, 0x01, 0x0a, 0x0b, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x08, 0x70, + 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x50, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x1a, + 0x5e, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x61, + 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x74, 0x5f, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x0d, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x6e, 0x64, 0x22, + 0x97, 0x05, 0x0a, 0x10, 0x52, 0x65, 0x61, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x09, 0x61, 0x76, 0x72, 0x6f, 0x5f, 0x72, 0x6f, 0x77, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x76, 0x72, 0x6f, 0x52, + 0x6f, 0x77, 0x73, 0x48, 0x00, 0x52, 0x08, 0x61, 0x76, 0x72, 0x6f, 0x52, 0x6f, 0x77, 0x73, 0x12, + 0x62, 0x0a, 0x12, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x72, 0x72, 0x6f, 0x77, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x48, + 0x00, 0x52, 0x10, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x72, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x43, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, + 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x12, 0x56, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, + 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, + 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, + 0x0b, 0x61, 0x76, 0x72, 0x6f, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x76, 0x72, 0x6f, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x0a, 0x61, 0x76, 0x72, 0x6f, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x12, 0x57, 0x0a, 0x0c, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x72, + 0x6f, 0x77, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, + 0x0b, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x3e, 0x0a, 0x16, + 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x48, 0x02, 0x52, 0x14, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, + 0x64, 0x42, 0x79, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, + 0x72, 0x6f, 0x77, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x42, 0x19, + 0x0a, 0x17, 0x5f, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x7b, 0x0a, 0x16, 0x53, 0x70, 0x6c, + 0x69, 0x74, 0x52, 0x65, 0x61, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x31, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2b, 0x0a, 0x29, 0x62, 0x69, 0x67, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x61, 0x64, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x66, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc7, 0x01, 0x0a, 0x17, 0x53, 0x70, 0x6c, 0x69, 0x74, + 0x52, 0x65, 0x61, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x61, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x57, 0x0a, 0x10, 0x72, 0x65, 0x6d, 0x61, 0x69, + 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, + 0x0f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x22, 0xb0, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x55, 0x0a, 0x0c, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x77, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x22, 0x97, 0x08, 0x0a, 0x11, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x6f, + 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x0c, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x32, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2c, 0x0a, 0x2a, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x52, 0x0b, 0x77, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x12, 0x33, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x5e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x5f, 0x72, + 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, + 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, + 0x12, 0x98, 0x01, 0x0a, 0x1d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x54, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x65, + 0x6e, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x69, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x70, + 0x72, 0x65, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x1b, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x72, 0x65, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xa4, 0x01, 0x0a, 0x24, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4e, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, + 0x70, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x72, 0x65, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x21, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x1a, 0xa0, 0x01, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x52, 0x0a, 0x0d, 0x77, 0x72, 0x69, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x72, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x12, 0x3f, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x6f, 0x77, 0x73, 0x52, + 0x04, 0x72, 0x6f, 0x77, 0x73, 0x1a, 0x9e, 0x01, 0x0a, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x64, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4e, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6d, 0x0a, 0x1a, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x28, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x5f, + 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x50, 0x52, 0x45, 0x54, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x55, 0x4c, 0x4c, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, + 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x56, 0x41, + 0x4c, 0x55, 0x45, 0x10, 0x02, 0x42, 0x06, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x22, 0xbf, 0x03, + 0x0a, 0x12, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0d, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, + 0x52, 0x0c, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2a, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x54, 0x0a, 0x0e, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x52, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x12, 0x49, 0x0a, 0x0a, 0x72, 0x6f, 0x77, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x52, 0x09, 0x72, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x77, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x1a, 0x43, + 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x33, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xa6, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x32, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2c, 0x0a, + 0x2a, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x45, 0x0a, 0x04, 0x76, 0x69, 0x65, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, + 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x56, 0x69, + 0x65, 0x77, 0x52, 0x04, 0x76, 0x69, 0x65, 0x77, 0x22, 0x89, 0x01, 0x0a, 0x1e, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x1f, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0c, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x64, 0x0a, 0x1a, 0x46, 0x69, + 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x32, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2c, 0x0a, 0x2a, + 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x3a, 0x0a, 0x1b, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x08, 0x72, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9e, 0x01, 0x0a, + 0x10, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x55, 0x0a, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x32, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2c, 0x0a, + 0x2a, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x0b, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x33, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x2b, 0x0a, + 0x11, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0xc0, 0x04, 0x0a, 0x0c, 0x53, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x53, 0x0a, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x9d, 0x03, + 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x53, + 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x43, 0x4f, + 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x52, + 0x45, 0x41, 0x4d, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x03, 0x12, + 0x17, 0x0a, 0x13, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, + 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x4e, 0x56, 0x41, + 0x4c, 0x49, 0x44, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x46, 0x49, 0x4e, + 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x06, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x43, 0x48, 0x45, + 0x4d, 0x41, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x58, 0x54, 0x52, + 0x41, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x53, 0x10, 0x07, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x46, + 0x46, 0x53, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x45, 0x58, 0x49, + 0x53, 0x54, 0x53, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x46, 0x46, 0x53, 0x45, 0x54, 0x5f, + 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x09, 0x12, 0x15, + 0x0a, 0x11, 0x43, 0x4d, 0x45, 0x4b, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, + 0x44, 0x45, 0x44, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, + 0x5f, 0x43, 0x4d, 0x45, 0x4b, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x44, 0x10, 0x0b, + 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4d, 0x45, 0x4b, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x0c, 0x12, 0x15, 0x0a, 0x11, 0x4b, + 0x4d, 0x53, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x10, 0x0d, 0x12, 0x19, 0x0a, 0x15, 0x4b, 0x4d, 0x53, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, + 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x0e, 0x22, 0xc9, 0x01, + 0x0a, 0x08, 0x52, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x4b, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, + 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x6f, 0x77, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x52, 0x6f, 0x77, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x40, 0x0a, 0x0c, 0x52, 0x6f, 0x77, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x4f, 0x57, 0x5f, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x49, 0x45, 0x4c, 0x44, + 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x32, 0x92, 0x06, 0x0a, 0x0c, 0x42, 0x69, + 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x61, 0x64, 0x12, 0xe9, 0x01, 0x0a, 0x11, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x64, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x61, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x69, 0xda, 0x41, 0x24, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2c, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x3a, 0x01, 0x2a, 0x22, 0x37, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xcf, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x61, 0x64, 0x52, + 0x6f, 0x77, 0x73, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x6f, + 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5a, 0xda, 0x41, 0x12, 0x72, + 0x65, 0x61, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2c, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, + 0x61, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0x30, 0x01, 0x12, 0xc6, 0x01, 0x0a, 0x0f, 0x53, 0x70, 0x6c, + 0x69, 0x74, 0x52, 0x65, 0x61, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x38, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x70, 0x6c, 0x69, 0x74, 0x52, 0x65, 0x61, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x52, + 0x65, 0x61, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x2a, + 0x7d, 0x1a, 0x7b, 0xca, 0x41, 0x1e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x57, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, + 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2c, + 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x32, 0xbc, + 0x0b, 0x0a, 0x0d, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x12, 0xd7, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x22, 0x57, 0xda, 0x41, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x3a, + 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, 0x2b, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd2, 0x01, 0x0a, 0x0a, 0x41, + 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, + 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, + 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, 0xda, 0x41, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x3a, 0x01, 0x2a, 0x22, 0x3b, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2f, 0x2a, + 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0x28, 0x01, 0x30, 0x01, 0x12, + 0xbf, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, 0x45, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x3a, 0x01, 0x2a, 0x22, 0x33, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x2a, + 0x7d, 0x12, 0xd9, 0x01, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x3a, 0x01, 0x2a, 0x22, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, + 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xdc, 0x01, + 0x0a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, + 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, + 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xcb, 0x01, 0x0a, + 0x09, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6c, + 0x75, 0x73, 0x68, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, + 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x55, 0xda, 0x41, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x3a, 0x01, 0x2a, 0x22, 0x3b, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x2f, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0x1a, 0xb0, 0x01, 0xca, 0x41, 0x1e, + 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, + 0x8b, 0x01, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, + 0x68, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73, + 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x2e, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x68, + 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x94, 0x02, + 0xea, 0x41, 0x55, 0x0a, 0x1d, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x34, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, + 0x7b, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x7d, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x2f, 0x7b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x7d, 0x0a, 0x24, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0c, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x6f, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x70, 0x62, 0x3b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x62, 0xaa, 0x02, + 0x20, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x42, 0x69, + 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x56, + 0x31, 0xca, 0x02, 0x20, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x5c, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x5c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x5c, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_bigquery_storage_v1_storage_proto_rawDescOnce sync.Once + file_google_cloud_bigquery_storage_v1_storage_proto_rawDescData = file_google_cloud_bigquery_storage_v1_storage_proto_rawDesc +) + +func file_google_cloud_bigquery_storage_v1_storage_proto_rawDescGZIP() []byte { + file_google_cloud_bigquery_storage_v1_storage_proto_rawDescOnce.Do(func() { + file_google_cloud_bigquery_storage_v1_storage_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_bigquery_storage_v1_storage_proto_rawDescData) + }) + return file_google_cloud_bigquery_storage_v1_storage_proto_rawDescData +} + +var file_google_cloud_bigquery_storage_v1_storage_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_google_cloud_bigquery_storage_v1_storage_proto_goTypes = []interface{}{ + (AppendRowsRequest_MissingValueInterpretation)(0), // 0: google.cloud.bigquery.storage.v1.AppendRowsRequest.MissingValueInterpretation + (StorageError_StorageErrorCode)(0), // 1: google.cloud.bigquery.storage.v1.StorageError.StorageErrorCode + (RowError_RowErrorCode)(0), // 2: google.cloud.bigquery.storage.v1.RowError.RowErrorCode + (*CreateReadSessionRequest)(nil), // 3: google.cloud.bigquery.storage.v1.CreateReadSessionRequest + (*ReadRowsRequest)(nil), // 4: google.cloud.bigquery.storage.v1.ReadRowsRequest + (*ThrottleState)(nil), // 5: google.cloud.bigquery.storage.v1.ThrottleState + (*StreamStats)(nil), // 6: google.cloud.bigquery.storage.v1.StreamStats + (*ReadRowsResponse)(nil), // 7: google.cloud.bigquery.storage.v1.ReadRowsResponse + (*SplitReadStreamRequest)(nil), // 8: google.cloud.bigquery.storage.v1.SplitReadStreamRequest + (*SplitReadStreamResponse)(nil), // 9: google.cloud.bigquery.storage.v1.SplitReadStreamResponse + (*CreateWriteStreamRequest)(nil), // 10: google.cloud.bigquery.storage.v1.CreateWriteStreamRequest + (*AppendRowsRequest)(nil), // 11: google.cloud.bigquery.storage.v1.AppendRowsRequest + (*AppendRowsResponse)(nil), // 12: google.cloud.bigquery.storage.v1.AppendRowsResponse + (*GetWriteStreamRequest)(nil), // 13: google.cloud.bigquery.storage.v1.GetWriteStreamRequest + (*BatchCommitWriteStreamsRequest)(nil), // 14: google.cloud.bigquery.storage.v1.BatchCommitWriteStreamsRequest + (*BatchCommitWriteStreamsResponse)(nil), // 15: google.cloud.bigquery.storage.v1.BatchCommitWriteStreamsResponse + (*FinalizeWriteStreamRequest)(nil), // 16: google.cloud.bigquery.storage.v1.FinalizeWriteStreamRequest + (*FinalizeWriteStreamResponse)(nil), // 17: google.cloud.bigquery.storage.v1.FinalizeWriteStreamResponse + (*FlushRowsRequest)(nil), // 18: google.cloud.bigquery.storage.v1.FlushRowsRequest + (*FlushRowsResponse)(nil), // 19: google.cloud.bigquery.storage.v1.FlushRowsResponse + (*StorageError)(nil), // 20: google.cloud.bigquery.storage.v1.StorageError + (*RowError)(nil), // 21: google.cloud.bigquery.storage.v1.RowError + (*StreamStats_Progress)(nil), // 22: google.cloud.bigquery.storage.v1.StreamStats.Progress + (*AppendRowsRequest_ProtoData)(nil), // 23: google.cloud.bigquery.storage.v1.AppendRowsRequest.ProtoData + nil, // 24: google.cloud.bigquery.storage.v1.AppendRowsRequest.MissingValueInterpretationsEntry + (*AppendRowsResponse_AppendResult)(nil), // 25: google.cloud.bigquery.storage.v1.AppendRowsResponse.AppendResult + (*ReadSession)(nil), // 26: google.cloud.bigquery.storage.v1.ReadSession + (*AvroRows)(nil), // 27: google.cloud.bigquery.storage.v1.AvroRows + (*ArrowRecordBatch)(nil), // 28: google.cloud.bigquery.storage.v1.ArrowRecordBatch + (*AvroSchema)(nil), // 29: google.cloud.bigquery.storage.v1.AvroSchema + (*ArrowSchema)(nil), // 30: google.cloud.bigquery.storage.v1.ArrowSchema + (*ReadStream)(nil), // 31: google.cloud.bigquery.storage.v1.ReadStream + (*WriteStream)(nil), // 32: google.cloud.bigquery.storage.v1.WriteStream + (*wrapperspb.Int64Value)(nil), // 33: google.protobuf.Int64Value + (*status.Status)(nil), // 34: google.rpc.Status + (*TableSchema)(nil), // 35: google.cloud.bigquery.storage.v1.TableSchema + (WriteStreamView)(0), // 36: google.cloud.bigquery.storage.v1.WriteStreamView + (*timestamppb.Timestamp)(nil), // 37: google.protobuf.Timestamp + (*ProtoSchema)(nil), // 38: google.cloud.bigquery.storage.v1.ProtoSchema + (*ProtoRows)(nil), // 39: google.cloud.bigquery.storage.v1.ProtoRows +} +var file_google_cloud_bigquery_storage_v1_storage_proto_depIdxs = []int32{ + 26, // 0: google.cloud.bigquery.storage.v1.CreateReadSessionRequest.read_session:type_name -> google.cloud.bigquery.storage.v1.ReadSession + 22, // 1: google.cloud.bigquery.storage.v1.StreamStats.progress:type_name -> google.cloud.bigquery.storage.v1.StreamStats.Progress + 27, // 2: google.cloud.bigquery.storage.v1.ReadRowsResponse.avro_rows:type_name -> google.cloud.bigquery.storage.v1.AvroRows + 28, // 3: google.cloud.bigquery.storage.v1.ReadRowsResponse.arrow_record_batch:type_name -> google.cloud.bigquery.storage.v1.ArrowRecordBatch + 6, // 4: google.cloud.bigquery.storage.v1.ReadRowsResponse.stats:type_name -> google.cloud.bigquery.storage.v1.StreamStats + 5, // 5: google.cloud.bigquery.storage.v1.ReadRowsResponse.throttle_state:type_name -> google.cloud.bigquery.storage.v1.ThrottleState + 29, // 6: google.cloud.bigquery.storage.v1.ReadRowsResponse.avro_schema:type_name -> google.cloud.bigquery.storage.v1.AvroSchema + 30, // 7: google.cloud.bigquery.storage.v1.ReadRowsResponse.arrow_schema:type_name -> google.cloud.bigquery.storage.v1.ArrowSchema + 31, // 8: google.cloud.bigquery.storage.v1.SplitReadStreamResponse.primary_stream:type_name -> google.cloud.bigquery.storage.v1.ReadStream + 31, // 9: google.cloud.bigquery.storage.v1.SplitReadStreamResponse.remainder_stream:type_name -> google.cloud.bigquery.storage.v1.ReadStream + 32, // 10: google.cloud.bigquery.storage.v1.CreateWriteStreamRequest.write_stream:type_name -> google.cloud.bigquery.storage.v1.WriteStream + 33, // 11: google.cloud.bigquery.storage.v1.AppendRowsRequest.offset:type_name -> google.protobuf.Int64Value + 23, // 12: google.cloud.bigquery.storage.v1.AppendRowsRequest.proto_rows:type_name -> google.cloud.bigquery.storage.v1.AppendRowsRequest.ProtoData + 24, // 13: google.cloud.bigquery.storage.v1.AppendRowsRequest.missing_value_interpretations:type_name -> google.cloud.bigquery.storage.v1.AppendRowsRequest.MissingValueInterpretationsEntry + 0, // 14: google.cloud.bigquery.storage.v1.AppendRowsRequest.default_missing_value_interpretation:type_name -> google.cloud.bigquery.storage.v1.AppendRowsRequest.MissingValueInterpretation + 25, // 15: google.cloud.bigquery.storage.v1.AppendRowsResponse.append_result:type_name -> google.cloud.bigquery.storage.v1.AppendRowsResponse.AppendResult + 34, // 16: google.cloud.bigquery.storage.v1.AppendRowsResponse.error:type_name -> google.rpc.Status + 35, // 17: google.cloud.bigquery.storage.v1.AppendRowsResponse.updated_schema:type_name -> google.cloud.bigquery.storage.v1.TableSchema + 21, // 18: google.cloud.bigquery.storage.v1.AppendRowsResponse.row_errors:type_name -> google.cloud.bigquery.storage.v1.RowError + 36, // 19: google.cloud.bigquery.storage.v1.GetWriteStreamRequest.view:type_name -> google.cloud.bigquery.storage.v1.WriteStreamView + 37, // 20: google.cloud.bigquery.storage.v1.BatchCommitWriteStreamsResponse.commit_time:type_name -> google.protobuf.Timestamp + 20, // 21: google.cloud.bigquery.storage.v1.BatchCommitWriteStreamsResponse.stream_errors:type_name -> google.cloud.bigquery.storage.v1.StorageError + 33, // 22: google.cloud.bigquery.storage.v1.FlushRowsRequest.offset:type_name -> google.protobuf.Int64Value + 1, // 23: google.cloud.bigquery.storage.v1.StorageError.code:type_name -> google.cloud.bigquery.storage.v1.StorageError.StorageErrorCode + 2, // 24: google.cloud.bigquery.storage.v1.RowError.code:type_name -> google.cloud.bigquery.storage.v1.RowError.RowErrorCode + 38, // 25: google.cloud.bigquery.storage.v1.AppendRowsRequest.ProtoData.writer_schema:type_name -> google.cloud.bigquery.storage.v1.ProtoSchema + 39, // 26: google.cloud.bigquery.storage.v1.AppendRowsRequest.ProtoData.rows:type_name -> google.cloud.bigquery.storage.v1.ProtoRows + 0, // 27: google.cloud.bigquery.storage.v1.AppendRowsRequest.MissingValueInterpretationsEntry.value:type_name -> google.cloud.bigquery.storage.v1.AppendRowsRequest.MissingValueInterpretation + 33, // 28: google.cloud.bigquery.storage.v1.AppendRowsResponse.AppendResult.offset:type_name -> google.protobuf.Int64Value + 3, // 29: google.cloud.bigquery.storage.v1.BigQueryRead.CreateReadSession:input_type -> google.cloud.bigquery.storage.v1.CreateReadSessionRequest + 4, // 30: google.cloud.bigquery.storage.v1.BigQueryRead.ReadRows:input_type -> google.cloud.bigquery.storage.v1.ReadRowsRequest + 8, // 31: google.cloud.bigquery.storage.v1.BigQueryRead.SplitReadStream:input_type -> google.cloud.bigquery.storage.v1.SplitReadStreamRequest + 10, // 32: google.cloud.bigquery.storage.v1.BigQueryWrite.CreateWriteStream:input_type -> google.cloud.bigquery.storage.v1.CreateWriteStreamRequest + 11, // 33: google.cloud.bigquery.storage.v1.BigQueryWrite.AppendRows:input_type -> google.cloud.bigquery.storage.v1.AppendRowsRequest + 13, // 34: google.cloud.bigquery.storage.v1.BigQueryWrite.GetWriteStream:input_type -> google.cloud.bigquery.storage.v1.GetWriteStreamRequest + 16, // 35: google.cloud.bigquery.storage.v1.BigQueryWrite.FinalizeWriteStream:input_type -> google.cloud.bigquery.storage.v1.FinalizeWriteStreamRequest + 14, // 36: google.cloud.bigquery.storage.v1.BigQueryWrite.BatchCommitWriteStreams:input_type -> google.cloud.bigquery.storage.v1.BatchCommitWriteStreamsRequest + 18, // 37: google.cloud.bigquery.storage.v1.BigQueryWrite.FlushRows:input_type -> google.cloud.bigquery.storage.v1.FlushRowsRequest + 26, // 38: google.cloud.bigquery.storage.v1.BigQueryRead.CreateReadSession:output_type -> google.cloud.bigquery.storage.v1.ReadSession + 7, // 39: google.cloud.bigquery.storage.v1.BigQueryRead.ReadRows:output_type -> google.cloud.bigquery.storage.v1.ReadRowsResponse + 9, // 40: google.cloud.bigquery.storage.v1.BigQueryRead.SplitReadStream:output_type -> google.cloud.bigquery.storage.v1.SplitReadStreamResponse + 32, // 41: google.cloud.bigquery.storage.v1.BigQueryWrite.CreateWriteStream:output_type -> google.cloud.bigquery.storage.v1.WriteStream + 12, // 42: google.cloud.bigquery.storage.v1.BigQueryWrite.AppendRows:output_type -> google.cloud.bigquery.storage.v1.AppendRowsResponse + 32, // 43: google.cloud.bigquery.storage.v1.BigQueryWrite.GetWriteStream:output_type -> google.cloud.bigquery.storage.v1.WriteStream + 17, // 44: google.cloud.bigquery.storage.v1.BigQueryWrite.FinalizeWriteStream:output_type -> google.cloud.bigquery.storage.v1.FinalizeWriteStreamResponse + 15, // 45: google.cloud.bigquery.storage.v1.BigQueryWrite.BatchCommitWriteStreams:output_type -> google.cloud.bigquery.storage.v1.BatchCommitWriteStreamsResponse + 19, // 46: google.cloud.bigquery.storage.v1.BigQueryWrite.FlushRows:output_type -> google.cloud.bigquery.storage.v1.FlushRowsResponse + 38, // [38:47] is the sub-list for method output_type + 29, // [29:38] is the sub-list for method input_type + 29, // [29:29] is the sub-list for extension type_name + 29, // [29:29] is the sub-list for extension extendee + 0, // [0:29] is the sub-list for field type_name +} + +func init() { file_google_cloud_bigquery_storage_v1_storage_proto_init() } +func file_google_cloud_bigquery_storage_v1_storage_proto_init() { + if File_google_cloud_bigquery_storage_v1_storage_proto != nil { + return + } + file_google_cloud_bigquery_storage_v1_arrow_proto_init() + file_google_cloud_bigquery_storage_v1_avro_proto_init() + file_google_cloud_bigquery_storage_v1_protobuf_proto_init() + file_google_cloud_bigquery_storage_v1_stream_proto_init() + file_google_cloud_bigquery_storage_v1_table_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateReadSessionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReadRowsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ThrottleState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReadRowsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SplitReadStreamRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SplitReadStreamResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateWriteStreamRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppendRowsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppendRowsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetWriteStreamRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchCommitWriteStreamsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchCommitWriteStreamsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FinalizeWriteStreamRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FinalizeWriteStreamResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlushRowsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlushRowsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StorageError); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RowError); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamStats_Progress); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppendRowsRequest_ProtoData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppendRowsResponse_AppendResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[4].OneofWrappers = []interface{}{ + (*ReadRowsResponse_AvroRows)(nil), + (*ReadRowsResponse_ArrowRecordBatch)(nil), + (*ReadRowsResponse_AvroSchema)(nil), + (*ReadRowsResponse_ArrowSchema)(nil), + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[8].OneofWrappers = []interface{}{ + (*AppendRowsRequest_ProtoRows)(nil), + } + file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes[9].OneofWrappers = []interface{}{ + (*AppendRowsResponse_AppendResult_)(nil), + (*AppendRowsResponse_Error)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_bigquery_storage_v1_storage_proto_rawDesc, + NumEnums: 3, + NumMessages: 23, + NumExtensions: 0, + NumServices: 2, + }, + GoTypes: file_google_cloud_bigquery_storage_v1_storage_proto_goTypes, + DependencyIndexes: file_google_cloud_bigquery_storage_v1_storage_proto_depIdxs, + EnumInfos: file_google_cloud_bigquery_storage_v1_storage_proto_enumTypes, + MessageInfos: file_google_cloud_bigquery_storage_v1_storage_proto_msgTypes, + }.Build() + File_google_cloud_bigquery_storage_v1_storage_proto = out.File + file_google_cloud_bigquery_storage_v1_storage_proto_rawDesc = nil + file_google_cloud_bigquery_storage_v1_storage_proto_goTypes = nil + file_google_cloud_bigquery_storage_v1_storage_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// BigQueryReadClient is the client API for BigQueryRead service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type BigQueryReadClient interface { + // Creates a new read session. A read session divides the contents of a + // BigQuery table into one or more streams, which can then be used to read + // data from the table. The read session also specifies properties of the + // data to be read, such as a list of columns or a push-down filter describing + // the rows to be returned. + // + // A particular row can be read by at most one stream. When the caller has + // reached the end of each stream in the session, then all the data in the + // table has been read. + // + // Data is assigned to each stream such that roughly the same number of + // rows can be read from each stream. Because the server-side unit for + // assigning data is collections of rows, the API does not guarantee that + // each stream will return the same number or rows. Additionally, the + // limits are enforced based on the number of pre-filtered rows, so some + // filters can lead to lopsided assignments. + // + // Read sessions automatically expire 6 hours after they are created and do + // not require manual clean-up by the caller. + CreateReadSession(ctx context.Context, in *CreateReadSessionRequest, opts ...grpc.CallOption) (*ReadSession, error) + // Reads rows from the stream in the format prescribed by the ReadSession. + // Each response contains one or more table rows, up to a maximum of 100 MiB + // per response; read requests which attempt to read individual rows larger + // than 100 MiB will fail. + // + // Each request also returns a set of stream statistics reflecting the current + // state of the stream. + ReadRows(ctx context.Context, in *ReadRowsRequest, opts ...grpc.CallOption) (BigQueryRead_ReadRowsClient, error) + // Splits a given `ReadStream` into two `ReadStream` objects. These + // `ReadStream` objects are referred to as the primary and the residual + // streams of the split. The original `ReadStream` can still be read from in + // the same manner as before. Both of the returned `ReadStream` objects can + // also be read from, and the rows returned by both child streams will be + // the same as the rows read from the original stream. + // + // Moreover, the two child streams will be allocated back-to-back in the + // original `ReadStream`. Concretely, it is guaranteed that for streams + // original, primary, and residual, that original[0-j] = primary[0-j] and + // original[j-n] = residual[0-m] once the streams have been read to + // completion. + SplitReadStream(ctx context.Context, in *SplitReadStreamRequest, opts ...grpc.CallOption) (*SplitReadStreamResponse, error) +} + +type bigQueryReadClient struct { + cc grpc.ClientConnInterface +} + +func NewBigQueryReadClient(cc grpc.ClientConnInterface) BigQueryReadClient { + return &bigQueryReadClient{cc} +} + +func (c *bigQueryReadClient) CreateReadSession(ctx context.Context, in *CreateReadSessionRequest, opts ...grpc.CallOption) (*ReadSession, error) { + out := new(ReadSession) + err := c.cc.Invoke(ctx, "/google.cloud.bigquery.storage.v1.BigQueryRead/CreateReadSession", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *bigQueryReadClient) ReadRows(ctx context.Context, in *ReadRowsRequest, opts ...grpc.CallOption) (BigQueryRead_ReadRowsClient, error) { + stream, err := c.cc.NewStream(ctx, &_BigQueryRead_serviceDesc.Streams[0], "/google.cloud.bigquery.storage.v1.BigQueryRead/ReadRows", opts...) + if err != nil { + return nil, err + } + x := &bigQueryReadReadRowsClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type BigQueryRead_ReadRowsClient interface { + Recv() (*ReadRowsResponse, error) + grpc.ClientStream +} + +type bigQueryReadReadRowsClient struct { + grpc.ClientStream +} + +func (x *bigQueryReadReadRowsClient) Recv() (*ReadRowsResponse, error) { + m := new(ReadRowsResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *bigQueryReadClient) SplitReadStream(ctx context.Context, in *SplitReadStreamRequest, opts ...grpc.CallOption) (*SplitReadStreamResponse, error) { + out := new(SplitReadStreamResponse) + err := c.cc.Invoke(ctx, "/google.cloud.bigquery.storage.v1.BigQueryRead/SplitReadStream", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// BigQueryReadServer is the server API for BigQueryRead service. +type BigQueryReadServer interface { + // Creates a new read session. A read session divides the contents of a + // BigQuery table into one or more streams, which can then be used to read + // data from the table. The read session also specifies properties of the + // data to be read, such as a list of columns or a push-down filter describing + // the rows to be returned. + // + // A particular row can be read by at most one stream. When the caller has + // reached the end of each stream in the session, then all the data in the + // table has been read. + // + // Data is assigned to each stream such that roughly the same number of + // rows can be read from each stream. Because the server-side unit for + // assigning data is collections of rows, the API does not guarantee that + // each stream will return the same number or rows. Additionally, the + // limits are enforced based on the number of pre-filtered rows, so some + // filters can lead to lopsided assignments. + // + // Read sessions automatically expire 6 hours after they are created and do + // not require manual clean-up by the caller. + CreateReadSession(context.Context, *CreateReadSessionRequest) (*ReadSession, error) + // Reads rows from the stream in the format prescribed by the ReadSession. + // Each response contains one or more table rows, up to a maximum of 100 MiB + // per response; read requests which attempt to read individual rows larger + // than 100 MiB will fail. + // + // Each request also returns a set of stream statistics reflecting the current + // state of the stream. + ReadRows(*ReadRowsRequest, BigQueryRead_ReadRowsServer) error + // Splits a given `ReadStream` into two `ReadStream` objects. These + // `ReadStream` objects are referred to as the primary and the residual + // streams of the split. The original `ReadStream` can still be read from in + // the same manner as before. Both of the returned `ReadStream` objects can + // also be read from, and the rows returned by both child streams will be + // the same as the rows read from the original stream. + // + // Moreover, the two child streams will be allocated back-to-back in the + // original `ReadStream`. Concretely, it is guaranteed that for streams + // original, primary, and residual, that original[0-j] = primary[0-j] and + // original[j-n] = residual[0-m] once the streams have been read to + // completion. + SplitReadStream(context.Context, *SplitReadStreamRequest) (*SplitReadStreamResponse, error) +} + +// UnimplementedBigQueryReadServer can be embedded to have forward compatible implementations. +type UnimplementedBigQueryReadServer struct { +} + +func (*UnimplementedBigQueryReadServer) CreateReadSession(context.Context, *CreateReadSessionRequest) (*ReadSession, error) { + return nil, status1.Errorf(codes.Unimplemented, "method CreateReadSession not implemented") +} +func (*UnimplementedBigQueryReadServer) ReadRows(*ReadRowsRequest, BigQueryRead_ReadRowsServer) error { + return status1.Errorf(codes.Unimplemented, "method ReadRows not implemented") +} +func (*UnimplementedBigQueryReadServer) SplitReadStream(context.Context, *SplitReadStreamRequest) (*SplitReadStreamResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method SplitReadStream not implemented") +} + +func RegisterBigQueryReadServer(s *grpc.Server, srv BigQueryReadServer) { + s.RegisterService(&_BigQueryRead_serviceDesc, srv) +} + +func _BigQueryRead_CreateReadSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateReadSessionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BigQueryReadServer).CreateReadSession(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.bigquery.storage.v1.BigQueryRead/CreateReadSession", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BigQueryReadServer).CreateReadSession(ctx, req.(*CreateReadSessionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _BigQueryRead_ReadRows_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(ReadRowsRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(BigQueryReadServer).ReadRows(m, &bigQueryReadReadRowsServer{stream}) +} + +type BigQueryRead_ReadRowsServer interface { + Send(*ReadRowsResponse) error + grpc.ServerStream +} + +type bigQueryReadReadRowsServer struct { + grpc.ServerStream +} + +func (x *bigQueryReadReadRowsServer) Send(m *ReadRowsResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _BigQueryRead_SplitReadStream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SplitReadStreamRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BigQueryReadServer).SplitReadStream(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.bigquery.storage.v1.BigQueryRead/SplitReadStream", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BigQueryReadServer).SplitReadStream(ctx, req.(*SplitReadStreamRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _BigQueryRead_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.bigquery.storage.v1.BigQueryRead", + HandlerType: (*BigQueryReadServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateReadSession", + Handler: _BigQueryRead_CreateReadSession_Handler, + }, + { + MethodName: "SplitReadStream", + Handler: _BigQueryRead_SplitReadStream_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "ReadRows", + Handler: _BigQueryRead_ReadRows_Handler, + ServerStreams: true, + }, + }, + Metadata: "google/cloud/bigquery/storage/v1/storage.proto", +} + +// BigQueryWriteClient is the client API for BigQueryWrite service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type BigQueryWriteClient interface { + // Creates a write stream to the given table. + // Additionally, every table has a special stream named '_default' + // to which data can be written. This stream doesn't need to be created using + // CreateWriteStream. It is a stream that can be used simultaneously by any + // number of clients. Data written to this stream is considered committed as + // soon as an acknowledgement is received. + CreateWriteStream(ctx context.Context, in *CreateWriteStreamRequest, opts ...grpc.CallOption) (*WriteStream, error) + // Appends data to the given stream. + // + // If `offset` is specified, the `offset` is checked against the end of + // stream. The server returns `OUT_OF_RANGE` in `AppendRowsResponse` if an + // attempt is made to append to an offset beyond the current end of the stream + // or `ALREADY_EXISTS` if user provides an `offset` that has already been + // written to. User can retry with adjusted offset within the same RPC + // connection. If `offset` is not specified, append happens at the end of the + // stream. + // + // The response contains an optional offset at which the append + // happened. No offset information will be returned for appends to a + // default stream. + // + // Responses are received in the same order in which requests are sent. + // There will be one response for each successful inserted request. Responses + // may optionally embed error information if the originating AppendRequest was + // not successfully processed. + // + // The specifics of when successfully appended data is made visible to the + // table are governed by the type of stream: + // + // * For COMMITTED streams (which includes the default stream), data is + // visible immediately upon successful append. + // + // * For BUFFERED streams, data is made visible via a subsequent `FlushRows` + // rpc which advances a cursor to a newer offset in the stream. + // + // * For PENDING streams, data is not made visible until the stream itself is + // finalized (via the `FinalizeWriteStream` rpc), and the stream is explicitly + // committed via the `BatchCommitWriteStreams` rpc. + AppendRows(ctx context.Context, opts ...grpc.CallOption) (BigQueryWrite_AppendRowsClient, error) + // Gets information about a write stream. + GetWriteStream(ctx context.Context, in *GetWriteStreamRequest, opts ...grpc.CallOption) (*WriteStream, error) + // Finalize a write stream so that no new data can be appended to the + // stream. Finalize is not supported on the '_default' stream. + FinalizeWriteStream(ctx context.Context, in *FinalizeWriteStreamRequest, opts ...grpc.CallOption) (*FinalizeWriteStreamResponse, error) + // Atomically commits a group of `PENDING` streams that belong to the same + // `parent` table. + // + // Streams must be finalized before commit and cannot be committed multiple + // times. Once a stream is committed, data in the stream becomes available + // for read operations. + BatchCommitWriteStreams(ctx context.Context, in *BatchCommitWriteStreamsRequest, opts ...grpc.CallOption) (*BatchCommitWriteStreamsResponse, error) + // Flushes rows to a BUFFERED stream. + // + // If users are appending rows to BUFFERED stream, flush operation is + // required in order for the rows to become available for reading. A + // Flush operation flushes up to any previously flushed offset in a BUFFERED + // stream, to the offset specified in the request. + // + // Flush is not supported on the _default stream, since it is not BUFFERED. + FlushRows(ctx context.Context, in *FlushRowsRequest, opts ...grpc.CallOption) (*FlushRowsResponse, error) +} + +type bigQueryWriteClient struct { + cc grpc.ClientConnInterface +} + +func NewBigQueryWriteClient(cc grpc.ClientConnInterface) BigQueryWriteClient { + return &bigQueryWriteClient{cc} +} + +func (c *bigQueryWriteClient) CreateWriteStream(ctx context.Context, in *CreateWriteStreamRequest, opts ...grpc.CallOption) (*WriteStream, error) { + out := new(WriteStream) + err := c.cc.Invoke(ctx, "/google.cloud.bigquery.storage.v1.BigQueryWrite/CreateWriteStream", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *bigQueryWriteClient) AppendRows(ctx context.Context, opts ...grpc.CallOption) (BigQueryWrite_AppendRowsClient, error) { + stream, err := c.cc.NewStream(ctx, &_BigQueryWrite_serviceDesc.Streams[0], "/google.cloud.bigquery.storage.v1.BigQueryWrite/AppendRows", opts...) + if err != nil { + return nil, err + } + x := &bigQueryWriteAppendRowsClient{stream} + return x, nil +} + +type BigQueryWrite_AppendRowsClient interface { + Send(*AppendRowsRequest) error + Recv() (*AppendRowsResponse, error) + grpc.ClientStream +} + +type bigQueryWriteAppendRowsClient struct { + grpc.ClientStream +} + +func (x *bigQueryWriteAppendRowsClient) Send(m *AppendRowsRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *bigQueryWriteAppendRowsClient) Recv() (*AppendRowsResponse, error) { + m := new(AppendRowsResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *bigQueryWriteClient) GetWriteStream(ctx context.Context, in *GetWriteStreamRequest, opts ...grpc.CallOption) (*WriteStream, error) { + out := new(WriteStream) + err := c.cc.Invoke(ctx, "/google.cloud.bigquery.storage.v1.BigQueryWrite/GetWriteStream", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *bigQueryWriteClient) FinalizeWriteStream(ctx context.Context, in *FinalizeWriteStreamRequest, opts ...grpc.CallOption) (*FinalizeWriteStreamResponse, error) { + out := new(FinalizeWriteStreamResponse) + err := c.cc.Invoke(ctx, "/google.cloud.bigquery.storage.v1.BigQueryWrite/FinalizeWriteStream", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *bigQueryWriteClient) BatchCommitWriteStreams(ctx context.Context, in *BatchCommitWriteStreamsRequest, opts ...grpc.CallOption) (*BatchCommitWriteStreamsResponse, error) { + out := new(BatchCommitWriteStreamsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.bigquery.storage.v1.BigQueryWrite/BatchCommitWriteStreams", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *bigQueryWriteClient) FlushRows(ctx context.Context, in *FlushRowsRequest, opts ...grpc.CallOption) (*FlushRowsResponse, error) { + out := new(FlushRowsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.bigquery.storage.v1.BigQueryWrite/FlushRows", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// BigQueryWriteServer is the server API for BigQueryWrite service. +type BigQueryWriteServer interface { + // Creates a write stream to the given table. + // Additionally, every table has a special stream named '_default' + // to which data can be written. This stream doesn't need to be created using + // CreateWriteStream. It is a stream that can be used simultaneously by any + // number of clients. Data written to this stream is considered committed as + // soon as an acknowledgement is received. + CreateWriteStream(context.Context, *CreateWriteStreamRequest) (*WriteStream, error) + // Appends data to the given stream. + // + // If `offset` is specified, the `offset` is checked against the end of + // stream. The server returns `OUT_OF_RANGE` in `AppendRowsResponse` if an + // attempt is made to append to an offset beyond the current end of the stream + // or `ALREADY_EXISTS` if user provides an `offset` that has already been + // written to. User can retry with adjusted offset within the same RPC + // connection. If `offset` is not specified, append happens at the end of the + // stream. + // + // The response contains an optional offset at which the append + // happened. No offset information will be returned for appends to a + // default stream. + // + // Responses are received in the same order in which requests are sent. + // There will be one response for each successful inserted request. Responses + // may optionally embed error information if the originating AppendRequest was + // not successfully processed. + // + // The specifics of when successfully appended data is made visible to the + // table are governed by the type of stream: + // + // * For COMMITTED streams (which includes the default stream), data is + // visible immediately upon successful append. + // + // * For BUFFERED streams, data is made visible via a subsequent `FlushRows` + // rpc which advances a cursor to a newer offset in the stream. + // + // * For PENDING streams, data is not made visible until the stream itself is + // finalized (via the `FinalizeWriteStream` rpc), and the stream is explicitly + // committed via the `BatchCommitWriteStreams` rpc. + AppendRows(BigQueryWrite_AppendRowsServer) error + // Gets information about a write stream. + GetWriteStream(context.Context, *GetWriteStreamRequest) (*WriteStream, error) + // Finalize a write stream so that no new data can be appended to the + // stream. Finalize is not supported on the '_default' stream. + FinalizeWriteStream(context.Context, *FinalizeWriteStreamRequest) (*FinalizeWriteStreamResponse, error) + // Atomically commits a group of `PENDING` streams that belong to the same + // `parent` table. + // + // Streams must be finalized before commit and cannot be committed multiple + // times. Once a stream is committed, data in the stream becomes available + // for read operations. + BatchCommitWriteStreams(context.Context, *BatchCommitWriteStreamsRequest) (*BatchCommitWriteStreamsResponse, error) + // Flushes rows to a BUFFERED stream. + // + // If users are appending rows to BUFFERED stream, flush operation is + // required in order for the rows to become available for reading. A + // Flush operation flushes up to any previously flushed offset in a BUFFERED + // stream, to the offset specified in the request. + // + // Flush is not supported on the _default stream, since it is not BUFFERED. + FlushRows(context.Context, *FlushRowsRequest) (*FlushRowsResponse, error) +} + +// UnimplementedBigQueryWriteServer can be embedded to have forward compatible implementations. +type UnimplementedBigQueryWriteServer struct { +} + +func (*UnimplementedBigQueryWriteServer) CreateWriteStream(context.Context, *CreateWriteStreamRequest) (*WriteStream, error) { + return nil, status1.Errorf(codes.Unimplemented, "method CreateWriteStream not implemented") +} +func (*UnimplementedBigQueryWriteServer) AppendRows(BigQueryWrite_AppendRowsServer) error { + return status1.Errorf(codes.Unimplemented, "method AppendRows not implemented") +} +func (*UnimplementedBigQueryWriteServer) GetWriteStream(context.Context, *GetWriteStreamRequest) (*WriteStream, error) { + return nil, status1.Errorf(codes.Unimplemented, "method GetWriteStream not implemented") +} +func (*UnimplementedBigQueryWriteServer) FinalizeWriteStream(context.Context, *FinalizeWriteStreamRequest) (*FinalizeWriteStreamResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method FinalizeWriteStream not implemented") +} +func (*UnimplementedBigQueryWriteServer) BatchCommitWriteStreams(context.Context, *BatchCommitWriteStreamsRequest) (*BatchCommitWriteStreamsResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method BatchCommitWriteStreams not implemented") +} +func (*UnimplementedBigQueryWriteServer) FlushRows(context.Context, *FlushRowsRequest) (*FlushRowsResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method FlushRows not implemented") +} + +func RegisterBigQueryWriteServer(s *grpc.Server, srv BigQueryWriteServer) { + s.RegisterService(&_BigQueryWrite_serviceDesc, srv) +} + +func _BigQueryWrite_CreateWriteStream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateWriteStreamRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BigQueryWriteServer).CreateWriteStream(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.bigquery.storage.v1.BigQueryWrite/CreateWriteStream", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BigQueryWriteServer).CreateWriteStream(ctx, req.(*CreateWriteStreamRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _BigQueryWrite_AppendRows_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(BigQueryWriteServer).AppendRows(&bigQueryWriteAppendRowsServer{stream}) +} + +type BigQueryWrite_AppendRowsServer interface { + Send(*AppendRowsResponse) error + Recv() (*AppendRowsRequest, error) + grpc.ServerStream +} + +type bigQueryWriteAppendRowsServer struct { + grpc.ServerStream +} + +func (x *bigQueryWriteAppendRowsServer) Send(m *AppendRowsResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *bigQueryWriteAppendRowsServer) Recv() (*AppendRowsRequest, error) { + m := new(AppendRowsRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _BigQueryWrite_GetWriteStream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetWriteStreamRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BigQueryWriteServer).GetWriteStream(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.bigquery.storage.v1.BigQueryWrite/GetWriteStream", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BigQueryWriteServer).GetWriteStream(ctx, req.(*GetWriteStreamRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _BigQueryWrite_FinalizeWriteStream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FinalizeWriteStreamRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BigQueryWriteServer).FinalizeWriteStream(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.bigquery.storage.v1.BigQueryWrite/FinalizeWriteStream", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BigQueryWriteServer).FinalizeWriteStream(ctx, req.(*FinalizeWriteStreamRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _BigQueryWrite_BatchCommitWriteStreams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchCommitWriteStreamsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BigQueryWriteServer).BatchCommitWriteStreams(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.bigquery.storage.v1.BigQueryWrite/BatchCommitWriteStreams", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BigQueryWriteServer).BatchCommitWriteStreams(ctx, req.(*BatchCommitWriteStreamsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _BigQueryWrite_FlushRows_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FlushRowsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BigQueryWriteServer).FlushRows(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.bigquery.storage.v1.BigQueryWrite/FlushRows", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BigQueryWriteServer).FlushRows(ctx, req.(*FlushRowsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _BigQueryWrite_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.bigquery.storage.v1.BigQueryWrite", + HandlerType: (*BigQueryWriteServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateWriteStream", + Handler: _BigQueryWrite_CreateWriteStream_Handler, + }, + { + MethodName: "GetWriteStream", + Handler: _BigQueryWrite_GetWriteStream_Handler, + }, + { + MethodName: "FinalizeWriteStream", + Handler: _BigQueryWrite_FinalizeWriteStream_Handler, + }, + { + MethodName: "BatchCommitWriteStreams", + Handler: _BigQueryWrite_BatchCommitWriteStreams_Handler, + }, + { + MethodName: "FlushRows", + Handler: _BigQueryWrite_FlushRows_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "AppendRows", + Handler: _BigQueryWrite_AppendRows_Handler, + ServerStreams: true, + ClientStreams: true, + }, + }, + Metadata: "google/cloud/bigquery/storage/v1/storage.proto", +} diff --git a/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/stream.pb.go b/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/stream.pb.go new file mode 100644 index 000000000..682979f03 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/stream.pb.go @@ -0,0 +1,1303 @@ +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v4.25.2 +// source: google/cloud/bigquery/storage/v1/stream.proto + +package storagepb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Data format for input or output data. +type DataFormat int32 + +const ( + // Data format is unspecified. + DataFormat_DATA_FORMAT_UNSPECIFIED DataFormat = 0 + // Avro is a standard open source row based file format. + // See https://avro.apache.org/ for more details. + DataFormat_AVRO DataFormat = 1 + // Arrow is a standard open source column-based message format. + // See https://arrow.apache.org/ for more details. + DataFormat_ARROW DataFormat = 2 +) + +// Enum value maps for DataFormat. +var ( + DataFormat_name = map[int32]string{ + 0: "DATA_FORMAT_UNSPECIFIED", + 1: "AVRO", + 2: "ARROW", + } + DataFormat_value = map[string]int32{ + "DATA_FORMAT_UNSPECIFIED": 0, + "AVRO": 1, + "ARROW": 2, + } +) + +func (x DataFormat) Enum() *DataFormat { + p := new(DataFormat) + *p = x + return p +} + +func (x DataFormat) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DataFormat) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_bigquery_storage_v1_stream_proto_enumTypes[0].Descriptor() +} + +func (DataFormat) Type() protoreflect.EnumType { + return &file_google_cloud_bigquery_storage_v1_stream_proto_enumTypes[0] +} + +func (x DataFormat) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DataFormat.Descriptor instead. +func (DataFormat) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_stream_proto_rawDescGZIP(), []int{0} +} + +// WriteStreamView is a view enum that controls what details about a write +// stream should be returned. +type WriteStreamView int32 + +const ( + // The default / unset value. + WriteStreamView_WRITE_STREAM_VIEW_UNSPECIFIED WriteStreamView = 0 + // The BASIC projection returns basic metadata about a write stream. The + // basic view does not include schema information. This is the default view + // returned by GetWriteStream. + WriteStreamView_BASIC WriteStreamView = 1 + // The FULL projection returns all available write stream metadata, including + // the schema. CreateWriteStream returns the full projection of write stream + // metadata. + WriteStreamView_FULL WriteStreamView = 2 +) + +// Enum value maps for WriteStreamView. +var ( + WriteStreamView_name = map[int32]string{ + 0: "WRITE_STREAM_VIEW_UNSPECIFIED", + 1: "BASIC", + 2: "FULL", + } + WriteStreamView_value = map[string]int32{ + "WRITE_STREAM_VIEW_UNSPECIFIED": 0, + "BASIC": 1, + "FULL": 2, + } +) + +func (x WriteStreamView) Enum() *WriteStreamView { + p := new(WriteStreamView) + *p = x + return p +} + +func (x WriteStreamView) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WriteStreamView) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_bigquery_storage_v1_stream_proto_enumTypes[1].Descriptor() +} + +func (WriteStreamView) Type() protoreflect.EnumType { + return &file_google_cloud_bigquery_storage_v1_stream_proto_enumTypes[1] +} + +func (x WriteStreamView) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WriteStreamView.Descriptor instead. +func (WriteStreamView) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_stream_proto_rawDescGZIP(), []int{1} +} + +// Specifies which compression codec to attempt on the entire serialized +// response payload (either Arrow record batch or Avro rows). This is +// not to be confused with the Apache Arrow native compression codecs +// specified in ArrowSerializationOptions. For performance reasons, when +// creating a read session requesting Arrow responses, setting both native +// Arrow compression and application-level response compression will not be +// allowed - choose, at most, one kind of compression. +type ReadSession_TableReadOptions_ResponseCompressionCodec int32 + +const ( + // Default is no compression. + ReadSession_TableReadOptions_RESPONSE_COMPRESSION_CODEC_UNSPECIFIED ReadSession_TableReadOptions_ResponseCompressionCodec = 0 + // Use raw LZ4 compression. + ReadSession_TableReadOptions_RESPONSE_COMPRESSION_CODEC_LZ4 ReadSession_TableReadOptions_ResponseCompressionCodec = 2 +) + +// Enum value maps for ReadSession_TableReadOptions_ResponseCompressionCodec. +var ( + ReadSession_TableReadOptions_ResponseCompressionCodec_name = map[int32]string{ + 0: "RESPONSE_COMPRESSION_CODEC_UNSPECIFIED", + 2: "RESPONSE_COMPRESSION_CODEC_LZ4", + } + ReadSession_TableReadOptions_ResponseCompressionCodec_value = map[string]int32{ + "RESPONSE_COMPRESSION_CODEC_UNSPECIFIED": 0, + "RESPONSE_COMPRESSION_CODEC_LZ4": 2, + } +) + +func (x ReadSession_TableReadOptions_ResponseCompressionCodec) Enum() *ReadSession_TableReadOptions_ResponseCompressionCodec { + p := new(ReadSession_TableReadOptions_ResponseCompressionCodec) + *p = x + return p +} + +func (x ReadSession_TableReadOptions_ResponseCompressionCodec) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ReadSession_TableReadOptions_ResponseCompressionCodec) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_bigquery_storage_v1_stream_proto_enumTypes[2].Descriptor() +} + +func (ReadSession_TableReadOptions_ResponseCompressionCodec) Type() protoreflect.EnumType { + return &file_google_cloud_bigquery_storage_v1_stream_proto_enumTypes[2] +} + +func (x ReadSession_TableReadOptions_ResponseCompressionCodec) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ReadSession_TableReadOptions_ResponseCompressionCodec.Descriptor instead. +func (ReadSession_TableReadOptions_ResponseCompressionCodec) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_stream_proto_rawDescGZIP(), []int{0, 1, 0} +} + +// Type enum of the stream. +type WriteStream_Type int32 + +const ( + // Unknown type. + WriteStream_TYPE_UNSPECIFIED WriteStream_Type = 0 + // Data will commit automatically and appear as soon as the write is + // acknowledged. + WriteStream_COMMITTED WriteStream_Type = 1 + // Data is invisible until the stream is committed. + WriteStream_PENDING WriteStream_Type = 2 + // Data is only visible up to the offset to which it was flushed. + WriteStream_BUFFERED WriteStream_Type = 3 +) + +// Enum value maps for WriteStream_Type. +var ( + WriteStream_Type_name = map[int32]string{ + 0: "TYPE_UNSPECIFIED", + 1: "COMMITTED", + 2: "PENDING", + 3: "BUFFERED", + } + WriteStream_Type_value = map[string]int32{ + "TYPE_UNSPECIFIED": 0, + "COMMITTED": 1, + "PENDING": 2, + "BUFFERED": 3, + } +) + +func (x WriteStream_Type) Enum() *WriteStream_Type { + p := new(WriteStream_Type) + *p = x + return p +} + +func (x WriteStream_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WriteStream_Type) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_bigquery_storage_v1_stream_proto_enumTypes[3].Descriptor() +} + +func (WriteStream_Type) Type() protoreflect.EnumType { + return &file_google_cloud_bigquery_storage_v1_stream_proto_enumTypes[3] +} + +func (x WriteStream_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WriteStream_Type.Descriptor instead. +func (WriteStream_Type) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_stream_proto_rawDescGZIP(), []int{2, 0} +} + +// Mode enum of the stream. +type WriteStream_WriteMode int32 + +const ( + // Unknown type. + WriteStream_WRITE_MODE_UNSPECIFIED WriteStream_WriteMode = 0 + // Insert new records into the table. + // It is the default value if customers do not specify it. + WriteStream_INSERT WriteStream_WriteMode = 1 +) + +// Enum value maps for WriteStream_WriteMode. +var ( + WriteStream_WriteMode_name = map[int32]string{ + 0: "WRITE_MODE_UNSPECIFIED", + 1: "INSERT", + } + WriteStream_WriteMode_value = map[string]int32{ + "WRITE_MODE_UNSPECIFIED": 0, + "INSERT": 1, + } +) + +func (x WriteStream_WriteMode) Enum() *WriteStream_WriteMode { + p := new(WriteStream_WriteMode) + *p = x + return p +} + +func (x WriteStream_WriteMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WriteStream_WriteMode) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_bigquery_storage_v1_stream_proto_enumTypes[4].Descriptor() +} + +func (WriteStream_WriteMode) Type() protoreflect.EnumType { + return &file_google_cloud_bigquery_storage_v1_stream_proto_enumTypes[4] +} + +func (x WriteStream_WriteMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WriteStream_WriteMode.Descriptor instead. +func (WriteStream_WriteMode) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_stream_proto_rawDescGZIP(), []int{2, 1} +} + +// Information about the ReadSession. +type ReadSession struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Unique identifier for the session, in the form + // `projects/{project_id}/locations/{location}/sessions/{session_id}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. Time at which the session becomes invalid. After this time, + // subsequent requests to read this Session will return errors. The + // expire_time is automatically assigned and currently cannot be specified or + // updated. + ExpireTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"` + // Immutable. Data format of the output data. DATA_FORMAT_UNSPECIFIED not + // supported. + DataFormat DataFormat `protobuf:"varint,3,opt,name=data_format,json=dataFormat,proto3,enum=google.cloud.bigquery.storage.v1.DataFormat" json:"data_format,omitempty"` + // The schema for the read. If read_options.selected_fields is set, the + // schema may be different from the table schema as it will only contain + // the selected fields. + // + // Types that are assignable to Schema: + // + // *ReadSession_AvroSchema + // *ReadSession_ArrowSchema + Schema isReadSession_Schema `protobuf_oneof:"schema"` + // Immutable. Table that this ReadSession is reading from, in the form + // `projects/{project_id}/datasets/{dataset_id}/tables/{table_id}` + Table string `protobuf:"bytes,6,opt,name=table,proto3" json:"table,omitempty"` + // Optional. Any modifiers which are applied when reading from the specified + // table. + TableModifiers *ReadSession_TableModifiers `protobuf:"bytes,7,opt,name=table_modifiers,json=tableModifiers,proto3" json:"table_modifiers,omitempty"` + // Optional. Read options for this session (e.g. column selection, filters). + ReadOptions *ReadSession_TableReadOptions `protobuf:"bytes,8,opt,name=read_options,json=readOptions,proto3" json:"read_options,omitempty"` + // Output only. A list of streams created with the session. + // + // At least one stream is created with the session. In the future, larger + // request_stream_count values *may* result in this list being unpopulated, + // in that case, the user will need to use a List method to get the streams + // instead, which is not yet available. + Streams []*ReadStream `protobuf:"bytes,10,rep,name=streams,proto3" json:"streams,omitempty"` + // Output only. An estimate on the number of bytes this session will scan when + // all streams are completely consumed. This estimate is based on + // metadata from the table which might be incomplete or stale. + EstimatedTotalBytesScanned int64 `protobuf:"varint,12,opt,name=estimated_total_bytes_scanned,json=estimatedTotalBytesScanned,proto3" json:"estimated_total_bytes_scanned,omitempty"` + // Output only. A pre-projected estimate of the total physical size of files + // (in bytes) that this session will scan when all streams are consumed. This + // estimate is independent of the selected columns and can be based on + // incomplete or stale metadata from the table. This field is only set for + // BigLake tables. + EstimatedTotalPhysicalFileSize int64 `protobuf:"varint,15,opt,name=estimated_total_physical_file_size,json=estimatedTotalPhysicalFileSize,proto3" json:"estimated_total_physical_file_size,omitempty"` + // Output only. An estimate on the number of rows present in this session's + // streams. This estimate is based on metadata from the table which might be + // incomplete or stale. + EstimatedRowCount int64 `protobuf:"varint,14,opt,name=estimated_row_count,json=estimatedRowCount,proto3" json:"estimated_row_count,omitempty"` + // Optional. ID set by client to annotate a session identity. This does not + // need to be strictly unique, but instead the same ID should be used to group + // logically connected sessions (e.g. All using the same ID for all sessions + // needed to complete a Spark SQL query is reasonable). + // + // Maximum length is 256 bytes. + TraceId string `protobuf:"bytes,13,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"` +} + +func (x *ReadSession) Reset() { + *x = ReadSession{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReadSession) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReadSession) ProtoMessage() {} + +func (x *ReadSession) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReadSession.ProtoReflect.Descriptor instead. +func (*ReadSession) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_stream_proto_rawDescGZIP(), []int{0} +} + +func (x *ReadSession) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ReadSession) GetExpireTime() *timestamppb.Timestamp { + if x != nil { + return x.ExpireTime + } + return nil +} + +func (x *ReadSession) GetDataFormat() DataFormat { + if x != nil { + return x.DataFormat + } + return DataFormat_DATA_FORMAT_UNSPECIFIED +} + +func (m *ReadSession) GetSchema() isReadSession_Schema { + if m != nil { + return m.Schema + } + return nil +} + +func (x *ReadSession) GetAvroSchema() *AvroSchema { + if x, ok := x.GetSchema().(*ReadSession_AvroSchema); ok { + return x.AvroSchema + } + return nil +} + +func (x *ReadSession) GetArrowSchema() *ArrowSchema { + if x, ok := x.GetSchema().(*ReadSession_ArrowSchema); ok { + return x.ArrowSchema + } + return nil +} + +func (x *ReadSession) GetTable() string { + if x != nil { + return x.Table + } + return "" +} + +func (x *ReadSession) GetTableModifiers() *ReadSession_TableModifiers { + if x != nil { + return x.TableModifiers + } + return nil +} + +func (x *ReadSession) GetReadOptions() *ReadSession_TableReadOptions { + if x != nil { + return x.ReadOptions + } + return nil +} + +func (x *ReadSession) GetStreams() []*ReadStream { + if x != nil { + return x.Streams + } + return nil +} + +func (x *ReadSession) GetEstimatedTotalBytesScanned() int64 { + if x != nil { + return x.EstimatedTotalBytesScanned + } + return 0 +} + +func (x *ReadSession) GetEstimatedTotalPhysicalFileSize() int64 { + if x != nil { + return x.EstimatedTotalPhysicalFileSize + } + return 0 +} + +func (x *ReadSession) GetEstimatedRowCount() int64 { + if x != nil { + return x.EstimatedRowCount + } + return 0 +} + +func (x *ReadSession) GetTraceId() string { + if x != nil { + return x.TraceId + } + return "" +} + +type isReadSession_Schema interface { + isReadSession_Schema() +} + +type ReadSession_AvroSchema struct { + // Output only. Avro schema. + AvroSchema *AvroSchema `protobuf:"bytes,4,opt,name=avro_schema,json=avroSchema,proto3,oneof"` +} + +type ReadSession_ArrowSchema struct { + // Output only. Arrow schema. + ArrowSchema *ArrowSchema `protobuf:"bytes,5,opt,name=arrow_schema,json=arrowSchema,proto3,oneof"` +} + +func (*ReadSession_AvroSchema) isReadSession_Schema() {} + +func (*ReadSession_ArrowSchema) isReadSession_Schema() {} + +// Information about a single stream that gets data out of the storage system. +// Most of the information about `ReadStream` instances is aggregated, making +// `ReadStream` lightweight. +type ReadStream struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Name of the stream, in the form + // `projects/{project_id}/locations/{location}/sessions/{session_id}/streams/{stream_id}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *ReadStream) Reset() { + *x = ReadStream{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReadStream) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReadStream) ProtoMessage() {} + +func (x *ReadStream) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReadStream.ProtoReflect.Descriptor instead. +func (*ReadStream) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_stream_proto_rawDescGZIP(), []int{1} +} + +func (x *ReadStream) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Information about a single stream that gets data inside the storage system. +type WriteStream struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Name of the stream, in the form + // `projects/{project}/datasets/{dataset}/tables/{table}/streams/{stream}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Immutable. Type of the stream. + Type WriteStream_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.bigquery.storage.v1.WriteStream_Type" json:"type,omitempty"` + // Output only. Create time of the stream. For the _default stream, this is + // the creation_time of the table. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. Commit time of the stream. + // If a stream is of `COMMITTED` type, then it will have a commit_time same as + // `create_time`. If the stream is of `PENDING` type, empty commit_time + // means it is not committed. + CommitTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=commit_time,json=commitTime,proto3" json:"commit_time,omitempty"` + // Output only. The schema of the destination table. It is only returned in + // `CreateWriteStream` response. Caller should generate data that's + // compatible with this schema to send in initial `AppendRowsRequest`. + // The table schema could go out of date during the life time of the stream. + TableSchema *TableSchema `protobuf:"bytes,5,opt,name=table_schema,json=tableSchema,proto3" json:"table_schema,omitempty"` + // Immutable. Mode of the stream. + WriteMode WriteStream_WriteMode `protobuf:"varint,7,opt,name=write_mode,json=writeMode,proto3,enum=google.cloud.bigquery.storage.v1.WriteStream_WriteMode" json:"write_mode,omitempty"` + // Immutable. The geographic location where the stream's dataset resides. See + // https://cloud.google.com/bigquery/docs/locations for supported + // locations. + Location string `protobuf:"bytes,8,opt,name=location,proto3" json:"location,omitempty"` +} + +func (x *WriteStream) Reset() { + *x = WriteStream{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WriteStream) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WriteStream) ProtoMessage() {} + +func (x *WriteStream) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WriteStream.ProtoReflect.Descriptor instead. +func (*WriteStream) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_stream_proto_rawDescGZIP(), []int{2} +} + +func (x *WriteStream) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *WriteStream) GetType() WriteStream_Type { + if x != nil { + return x.Type + } + return WriteStream_TYPE_UNSPECIFIED +} + +func (x *WriteStream) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *WriteStream) GetCommitTime() *timestamppb.Timestamp { + if x != nil { + return x.CommitTime + } + return nil +} + +func (x *WriteStream) GetTableSchema() *TableSchema { + if x != nil { + return x.TableSchema + } + return nil +} + +func (x *WriteStream) GetWriteMode() WriteStream_WriteMode { + if x != nil { + return x.WriteMode + } + return WriteStream_WRITE_MODE_UNSPECIFIED +} + +func (x *WriteStream) GetLocation() string { + if x != nil { + return x.Location + } + return "" +} + +// Additional attributes when reading a table. +type ReadSession_TableModifiers struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The snapshot time of the table. If not set, interpreted as now. + SnapshotTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=snapshot_time,json=snapshotTime,proto3" json:"snapshot_time,omitempty"` +} + +func (x *ReadSession_TableModifiers) Reset() { + *x = ReadSession_TableModifiers{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReadSession_TableModifiers) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReadSession_TableModifiers) ProtoMessage() {} + +func (x *ReadSession_TableModifiers) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReadSession_TableModifiers.ProtoReflect.Descriptor instead. +func (*ReadSession_TableModifiers) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_stream_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *ReadSession_TableModifiers) GetSnapshotTime() *timestamppb.Timestamp { + if x != nil { + return x.SnapshotTime + } + return nil +} + +// Options dictating how we read a table. +type ReadSession_TableReadOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. The names of the fields in the table to be returned. If no + // field names are specified, then all fields in the table are returned. + // + // Nested fields -- the child elements of a STRUCT field -- can be selected + // individually using their fully-qualified names, and will be returned as + // record fields containing only the selected nested fields. If a STRUCT + // field is specified in the selected fields list, all of the child elements + // will be returned. + // + // As an example, consider a table with the following schema: + // + // { + // "name": "struct_field", + // "type": "RECORD", + // "mode": "NULLABLE", + // "fields": [ + // { + // "name": "string_field1", + // "type": "STRING", + // + // . "mode": "NULLABLE" + // + // }, + // { + // "name": "string_field2", + // "type": "STRING", + // "mode": "NULLABLE" + // } + // ] + // } + // + // Specifying "struct_field" in the selected fields list will result in a + // read session schema with the following logical structure: + // + // struct_field { + // string_field1 + // string_field2 + // } + // + // Specifying "struct_field.string_field1" in the selected fields list will + // result in a read session schema with the following logical structure: + // + // struct_field { + // string_field1 + // } + // + // The order of the fields in the read session schema is derived from the + // table schema and does not correspond to the order in which the fields are + // specified in this list. + SelectedFields []string `protobuf:"bytes,1,rep,name=selected_fields,json=selectedFields,proto3" json:"selected_fields,omitempty"` + // SQL text filtering statement, similar to a WHERE clause in a query. + // Aggregates are not supported. + // + // Examples: "int_field > 5" + // + // "date_field = CAST('2014-9-27' as DATE)" + // "nullable_field is not NULL" + // "st_equals(geo_field, st_geofromtext("POINT(2, 2)"))" + // "numeric_field BETWEEN 1.0 AND 5.0" + // + // Restricted to a maximum length for 1 MB. + RowRestriction string `protobuf:"bytes,2,opt,name=row_restriction,json=rowRestriction,proto3" json:"row_restriction,omitempty"` + // Types that are assignable to OutputFormatSerializationOptions: + // + // *ReadSession_TableReadOptions_ArrowSerializationOptions + // *ReadSession_TableReadOptions_AvroSerializationOptions + OutputFormatSerializationOptions isReadSession_TableReadOptions_OutputFormatSerializationOptions `protobuf_oneof:"output_format_serialization_options"` + // Optional. Specifies a table sampling percentage. Specifically, the query + // planner will use TABLESAMPLE SYSTEM (sample_percentage PERCENT). The + // sampling percentage is applied at the data block granularity. It will + // randomly choose for each data block whether to read the rows in that data + // block. For more details, see + // https://cloud.google.com/bigquery/docs/table-sampling) + SamplePercentage *float64 `protobuf:"fixed64,5,opt,name=sample_percentage,json=samplePercentage,proto3,oneof" json:"sample_percentage,omitempty"` + // Optional. Set response_compression_codec when creating a read session to + // enable application-level compression of ReadRows responses. + ResponseCompressionCodec *ReadSession_TableReadOptions_ResponseCompressionCodec `protobuf:"varint,6,opt,name=response_compression_codec,json=responseCompressionCodec,proto3,enum=google.cloud.bigquery.storage.v1.ReadSession_TableReadOptions_ResponseCompressionCodec,oneof" json:"response_compression_codec,omitempty"` +} + +func (x *ReadSession_TableReadOptions) Reset() { + *x = ReadSession_TableReadOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReadSession_TableReadOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReadSession_TableReadOptions) ProtoMessage() {} + +func (x *ReadSession_TableReadOptions) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReadSession_TableReadOptions.ProtoReflect.Descriptor instead. +func (*ReadSession_TableReadOptions) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_stream_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *ReadSession_TableReadOptions) GetSelectedFields() []string { + if x != nil { + return x.SelectedFields + } + return nil +} + +func (x *ReadSession_TableReadOptions) GetRowRestriction() string { + if x != nil { + return x.RowRestriction + } + return "" +} + +func (m *ReadSession_TableReadOptions) GetOutputFormatSerializationOptions() isReadSession_TableReadOptions_OutputFormatSerializationOptions { + if m != nil { + return m.OutputFormatSerializationOptions + } + return nil +} + +func (x *ReadSession_TableReadOptions) GetArrowSerializationOptions() *ArrowSerializationOptions { + if x, ok := x.GetOutputFormatSerializationOptions().(*ReadSession_TableReadOptions_ArrowSerializationOptions); ok { + return x.ArrowSerializationOptions + } + return nil +} + +func (x *ReadSession_TableReadOptions) GetAvroSerializationOptions() *AvroSerializationOptions { + if x, ok := x.GetOutputFormatSerializationOptions().(*ReadSession_TableReadOptions_AvroSerializationOptions); ok { + return x.AvroSerializationOptions + } + return nil +} + +func (x *ReadSession_TableReadOptions) GetSamplePercentage() float64 { + if x != nil && x.SamplePercentage != nil { + return *x.SamplePercentage + } + return 0 +} + +func (x *ReadSession_TableReadOptions) GetResponseCompressionCodec() ReadSession_TableReadOptions_ResponseCompressionCodec { + if x != nil && x.ResponseCompressionCodec != nil { + return *x.ResponseCompressionCodec + } + return ReadSession_TableReadOptions_RESPONSE_COMPRESSION_CODEC_UNSPECIFIED +} + +type isReadSession_TableReadOptions_OutputFormatSerializationOptions interface { + isReadSession_TableReadOptions_OutputFormatSerializationOptions() +} + +type ReadSession_TableReadOptions_ArrowSerializationOptions struct { + // Optional. Options specific to the Apache Arrow output format. + ArrowSerializationOptions *ArrowSerializationOptions `protobuf:"bytes,3,opt,name=arrow_serialization_options,json=arrowSerializationOptions,proto3,oneof"` +} + +type ReadSession_TableReadOptions_AvroSerializationOptions struct { + // Optional. Options specific to the Apache Avro output format + AvroSerializationOptions *AvroSerializationOptions `protobuf:"bytes,4,opt,name=avro_serialization_options,json=avroSerializationOptions,proto3,oneof"` +} + +func (*ReadSession_TableReadOptions_ArrowSerializationOptions) isReadSession_TableReadOptions_OutputFormatSerializationOptions() { +} + +func (*ReadSession_TableReadOptions_AvroSerializationOptions) isReadSession_TableReadOptions_OutputFormatSerializationOptions() { +} + +var File_google_cloud_bigquery_storage_v1_stream_proto protoreflect.FileDescriptor + +var file_google_cloud_bigquery_storage_v1_stream_proto_rawDesc = []byte{ + 0x0a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x62, + 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, + 0x76, 0x31, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, + 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x62, 0x69, 0x67, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x31, 0x2f, + 0x61, 0x72, 0x72, 0x6f, 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x76, + 0x72, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8f, 0x0f, 0x0a, 0x0b, 0x52, 0x65, 0x61, 0x64, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x40, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x46, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, + 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x54, 0x0a, 0x0b, 0x61, 0x76, 0x72, 0x6f, 0x5f, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x76, 0x72, 0x6f, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, + 0x52, 0x0a, 0x61, 0x76, 0x72, 0x6f, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x57, 0x0a, 0x0c, + 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x3b, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x05, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x62, 0x69, + 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x05, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x6a, 0x0a, 0x0f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x61, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0x66, + 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4b, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x73, 0x12, 0x46, 0x0a, 0x1d, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x63, 0x61, + 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x1a, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x4f, 0x0a, 0x22, 0x65, + 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, + 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1e, 0x65, 0x73, + 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x68, 0x79, 0x73, + 0x69, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x33, 0x0a, 0x13, + 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, + 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, + 0x64, 0x1a, 0x51, 0x0a, 0x0e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x8b, 0x06, 0x0a, 0x10, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, + 0x61, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x6f, 0x77, + 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x82, 0x01, 0x0a, 0x1b, + 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x19, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x53, 0x65, 0x72, 0x69, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x7f, 0x0a, 0x1a, 0x61, 0x76, 0x72, 0x6f, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x76, 0x72, 0x6f, 0x53, 0x65, 0x72, 0x69, + 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x18, 0x61, 0x76, 0x72, 0x6f, 0x53, 0x65, 0x72, + 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x35, 0x0a, 0x11, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, + 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x48, 0x01, 0x52, 0x10, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, + 0x6e, 0x74, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x9f, 0x01, 0x0a, 0x1a, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x57, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x61, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x02, 0x52, 0x18, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x88, 0x01, 0x01, 0x22, 0x6a, 0x0a, 0x18, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x2a, 0x0a, 0x26, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, + 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x43, + 0x4f, 0x44, 0x45, 0x43, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x43, + 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x43, + 0x5f, 0x4c, 0x5a, 0x34, 0x10, 0x02, 0x42, 0x25, 0x0a, 0x23, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x61, 0x67, 0x65, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x63, 0x3a, 0x6b, 0xea, 0x41, 0x68, 0x0a, 0x2a, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x61, 0x64, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x42, + 0x08, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0xa2, 0x01, 0x0a, 0x0a, 0x52, 0x65, + 0x61, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x3a, 0x7b, 0xea, 0x41, 0x78, 0x0a, 0x29, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x61, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x12, 0x4b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x7b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x7d, 0x22, 0xc1, + 0x05, 0x0a, 0x0b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x55, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, + 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, + 0x5b, 0x0a, 0x0a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x05, 0x52, 0x09, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x08, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x05, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x46, 0x0a, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, + 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, + 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x55, 0x46, 0x46, 0x45, + 0x52, 0x45, 0x44, 0x10, 0x03, 0x22, 0x33, 0x0a, 0x09, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, + 0x0a, 0x06, 0x49, 0x4e, 0x53, 0x45, 0x52, 0x54, 0x10, 0x01, 0x3a, 0x76, 0xea, 0x41, 0x73, 0x0a, + 0x2a, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x45, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, + 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, + 0x74, 0x7d, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x7d, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x7b, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x7d, 0x2a, 0x3e, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, + 0x04, 0x41, 0x56, 0x52, 0x4f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x52, 0x52, 0x4f, 0x57, + 0x10, 0x02, 0x2a, 0x49, 0x0a, 0x0f, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x56, 0x69, 0x65, 0x77, 0x12, 0x21, 0x0a, 0x1d, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x53, + 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x41, 0x53, 0x49, + 0x43, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02, 0x42, 0xbb, 0x01, + 0x0a, 0x24, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x76, + 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x62, 0x3b, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x70, 0x62, 0xaa, 0x02, 0x20, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x20, 0x47, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x5c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5c, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_bigquery_storage_v1_stream_proto_rawDescOnce sync.Once + file_google_cloud_bigquery_storage_v1_stream_proto_rawDescData = file_google_cloud_bigquery_storage_v1_stream_proto_rawDesc +) + +func file_google_cloud_bigquery_storage_v1_stream_proto_rawDescGZIP() []byte { + file_google_cloud_bigquery_storage_v1_stream_proto_rawDescOnce.Do(func() { + file_google_cloud_bigquery_storage_v1_stream_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_bigquery_storage_v1_stream_proto_rawDescData) + }) + return file_google_cloud_bigquery_storage_v1_stream_proto_rawDescData +} + +var file_google_cloud_bigquery_storage_v1_stream_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_google_cloud_bigquery_storage_v1_stream_proto_goTypes = []interface{}{ + (DataFormat)(0), // 0: google.cloud.bigquery.storage.v1.DataFormat + (WriteStreamView)(0), // 1: google.cloud.bigquery.storage.v1.WriteStreamView + (ReadSession_TableReadOptions_ResponseCompressionCodec)(0), // 2: google.cloud.bigquery.storage.v1.ReadSession.TableReadOptions.ResponseCompressionCodec + (WriteStream_Type)(0), // 3: google.cloud.bigquery.storage.v1.WriteStream.Type + (WriteStream_WriteMode)(0), // 4: google.cloud.bigquery.storage.v1.WriteStream.WriteMode + (*ReadSession)(nil), // 5: google.cloud.bigquery.storage.v1.ReadSession + (*ReadStream)(nil), // 6: google.cloud.bigquery.storage.v1.ReadStream + (*WriteStream)(nil), // 7: google.cloud.bigquery.storage.v1.WriteStream + (*ReadSession_TableModifiers)(nil), // 8: google.cloud.bigquery.storage.v1.ReadSession.TableModifiers + (*ReadSession_TableReadOptions)(nil), // 9: google.cloud.bigquery.storage.v1.ReadSession.TableReadOptions + (*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp + (*AvroSchema)(nil), // 11: google.cloud.bigquery.storage.v1.AvroSchema + (*ArrowSchema)(nil), // 12: google.cloud.bigquery.storage.v1.ArrowSchema + (*TableSchema)(nil), // 13: google.cloud.bigquery.storage.v1.TableSchema + (*ArrowSerializationOptions)(nil), // 14: google.cloud.bigquery.storage.v1.ArrowSerializationOptions + (*AvroSerializationOptions)(nil), // 15: google.cloud.bigquery.storage.v1.AvroSerializationOptions +} +var file_google_cloud_bigquery_storage_v1_stream_proto_depIdxs = []int32{ + 10, // 0: google.cloud.bigquery.storage.v1.ReadSession.expire_time:type_name -> google.protobuf.Timestamp + 0, // 1: google.cloud.bigquery.storage.v1.ReadSession.data_format:type_name -> google.cloud.bigquery.storage.v1.DataFormat + 11, // 2: google.cloud.bigquery.storage.v1.ReadSession.avro_schema:type_name -> google.cloud.bigquery.storage.v1.AvroSchema + 12, // 3: google.cloud.bigquery.storage.v1.ReadSession.arrow_schema:type_name -> google.cloud.bigquery.storage.v1.ArrowSchema + 8, // 4: google.cloud.bigquery.storage.v1.ReadSession.table_modifiers:type_name -> google.cloud.bigquery.storage.v1.ReadSession.TableModifiers + 9, // 5: google.cloud.bigquery.storage.v1.ReadSession.read_options:type_name -> google.cloud.bigquery.storage.v1.ReadSession.TableReadOptions + 6, // 6: google.cloud.bigquery.storage.v1.ReadSession.streams:type_name -> google.cloud.bigquery.storage.v1.ReadStream + 3, // 7: google.cloud.bigquery.storage.v1.WriteStream.type:type_name -> google.cloud.bigquery.storage.v1.WriteStream.Type + 10, // 8: google.cloud.bigquery.storage.v1.WriteStream.create_time:type_name -> google.protobuf.Timestamp + 10, // 9: google.cloud.bigquery.storage.v1.WriteStream.commit_time:type_name -> google.protobuf.Timestamp + 13, // 10: google.cloud.bigquery.storage.v1.WriteStream.table_schema:type_name -> google.cloud.bigquery.storage.v1.TableSchema + 4, // 11: google.cloud.bigquery.storage.v1.WriteStream.write_mode:type_name -> google.cloud.bigquery.storage.v1.WriteStream.WriteMode + 10, // 12: google.cloud.bigquery.storage.v1.ReadSession.TableModifiers.snapshot_time:type_name -> google.protobuf.Timestamp + 14, // 13: google.cloud.bigquery.storage.v1.ReadSession.TableReadOptions.arrow_serialization_options:type_name -> google.cloud.bigquery.storage.v1.ArrowSerializationOptions + 15, // 14: google.cloud.bigquery.storage.v1.ReadSession.TableReadOptions.avro_serialization_options:type_name -> google.cloud.bigquery.storage.v1.AvroSerializationOptions + 2, // 15: google.cloud.bigquery.storage.v1.ReadSession.TableReadOptions.response_compression_codec:type_name -> google.cloud.bigquery.storage.v1.ReadSession.TableReadOptions.ResponseCompressionCodec + 16, // [16:16] is the sub-list for method output_type + 16, // [16:16] is the sub-list for method input_type + 16, // [16:16] is the sub-list for extension type_name + 16, // [16:16] is the sub-list for extension extendee + 0, // [0:16] is the sub-list for field type_name +} + +func init() { file_google_cloud_bigquery_storage_v1_stream_proto_init() } +func file_google_cloud_bigquery_storage_v1_stream_proto_init() { + if File_google_cloud_bigquery_storage_v1_stream_proto != nil { + return + } + file_google_cloud_bigquery_storage_v1_arrow_proto_init() + file_google_cloud_bigquery_storage_v1_avro_proto_init() + file_google_cloud_bigquery_storage_v1_table_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReadSession); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReadStream); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WriteStream); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReadSession_TableModifiers); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReadSession_TableReadOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*ReadSession_AvroSchema)(nil), + (*ReadSession_ArrowSchema)(nil), + } + file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes[4].OneofWrappers = []interface{}{ + (*ReadSession_TableReadOptions_ArrowSerializationOptions)(nil), + (*ReadSession_TableReadOptions_AvroSerializationOptions)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_bigquery_storage_v1_stream_proto_rawDesc, + NumEnums: 5, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_bigquery_storage_v1_stream_proto_goTypes, + DependencyIndexes: file_google_cloud_bigquery_storage_v1_stream_proto_depIdxs, + EnumInfos: file_google_cloud_bigquery_storage_v1_stream_proto_enumTypes, + MessageInfos: file_google_cloud_bigquery_storage_v1_stream_proto_msgTypes, + }.Build() + File_google_cloud_bigquery_storage_v1_stream_proto = out.File + file_google_cloud_bigquery_storage_v1_stream_proto_rawDesc = nil + file_google_cloud_bigquery_storage_v1_stream_proto_goTypes = nil + file_google_cloud_bigquery_storage_v1_stream_proto_depIdxs = nil +} diff --git a/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/table.pb.go b/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/table.pb.go new file mode 100644 index 000000000..c7764f870 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/storage/apiv1/storagepb/table.pb.go @@ -0,0 +1,672 @@ +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v4.25.2 +// source: google/cloud/bigquery/storage/v1/table.proto + +package storagepb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type TableFieldSchema_Type int32 + +const ( + // Illegal value + TableFieldSchema_TYPE_UNSPECIFIED TableFieldSchema_Type = 0 + // 64K, UTF8 + TableFieldSchema_STRING TableFieldSchema_Type = 1 + // 64-bit signed + TableFieldSchema_INT64 TableFieldSchema_Type = 2 + // 64-bit IEEE floating point + TableFieldSchema_DOUBLE TableFieldSchema_Type = 3 + // Aggregate type + TableFieldSchema_STRUCT TableFieldSchema_Type = 4 + // 64K, Binary + TableFieldSchema_BYTES TableFieldSchema_Type = 5 + // 2-valued + TableFieldSchema_BOOL TableFieldSchema_Type = 6 + // 64-bit signed usec since UTC epoch + TableFieldSchema_TIMESTAMP TableFieldSchema_Type = 7 + // Civil date - Year, Month, Day + TableFieldSchema_DATE TableFieldSchema_Type = 8 + // Civil time - Hour, Minute, Second, Microseconds + TableFieldSchema_TIME TableFieldSchema_Type = 9 + // Combination of civil date and civil time + TableFieldSchema_DATETIME TableFieldSchema_Type = 10 + // Geography object + TableFieldSchema_GEOGRAPHY TableFieldSchema_Type = 11 + // Numeric value + TableFieldSchema_NUMERIC TableFieldSchema_Type = 12 + // BigNumeric value + TableFieldSchema_BIGNUMERIC TableFieldSchema_Type = 13 + // Interval + TableFieldSchema_INTERVAL TableFieldSchema_Type = 14 + // JSON, String + TableFieldSchema_JSON TableFieldSchema_Type = 15 + // RANGE + TableFieldSchema_RANGE TableFieldSchema_Type = 16 +) + +// Enum value maps for TableFieldSchema_Type. +var ( + TableFieldSchema_Type_name = map[int32]string{ + 0: "TYPE_UNSPECIFIED", + 1: "STRING", + 2: "INT64", + 3: "DOUBLE", + 4: "STRUCT", + 5: "BYTES", + 6: "BOOL", + 7: "TIMESTAMP", + 8: "DATE", + 9: "TIME", + 10: "DATETIME", + 11: "GEOGRAPHY", + 12: "NUMERIC", + 13: "BIGNUMERIC", + 14: "INTERVAL", + 15: "JSON", + 16: "RANGE", + } + TableFieldSchema_Type_value = map[string]int32{ + "TYPE_UNSPECIFIED": 0, + "STRING": 1, + "INT64": 2, + "DOUBLE": 3, + "STRUCT": 4, + "BYTES": 5, + "BOOL": 6, + "TIMESTAMP": 7, + "DATE": 8, + "TIME": 9, + "DATETIME": 10, + "GEOGRAPHY": 11, + "NUMERIC": 12, + "BIGNUMERIC": 13, + "INTERVAL": 14, + "JSON": 15, + "RANGE": 16, + } +) + +func (x TableFieldSchema_Type) Enum() *TableFieldSchema_Type { + p := new(TableFieldSchema_Type) + *p = x + return p +} + +func (x TableFieldSchema_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TableFieldSchema_Type) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_bigquery_storage_v1_table_proto_enumTypes[0].Descriptor() +} + +func (TableFieldSchema_Type) Type() protoreflect.EnumType { + return &file_google_cloud_bigquery_storage_v1_table_proto_enumTypes[0] +} + +func (x TableFieldSchema_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TableFieldSchema_Type.Descriptor instead. +func (TableFieldSchema_Type) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_table_proto_rawDescGZIP(), []int{1, 0} +} + +type TableFieldSchema_Mode int32 + +const ( + // Illegal value + TableFieldSchema_MODE_UNSPECIFIED TableFieldSchema_Mode = 0 + TableFieldSchema_NULLABLE TableFieldSchema_Mode = 1 + TableFieldSchema_REQUIRED TableFieldSchema_Mode = 2 + TableFieldSchema_REPEATED TableFieldSchema_Mode = 3 +) + +// Enum value maps for TableFieldSchema_Mode. +var ( + TableFieldSchema_Mode_name = map[int32]string{ + 0: "MODE_UNSPECIFIED", + 1: "NULLABLE", + 2: "REQUIRED", + 3: "REPEATED", + } + TableFieldSchema_Mode_value = map[string]int32{ + "MODE_UNSPECIFIED": 0, + "NULLABLE": 1, + "REQUIRED": 2, + "REPEATED": 3, + } +) + +func (x TableFieldSchema_Mode) Enum() *TableFieldSchema_Mode { + p := new(TableFieldSchema_Mode) + *p = x + return p +} + +func (x TableFieldSchema_Mode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TableFieldSchema_Mode) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_bigquery_storage_v1_table_proto_enumTypes[1].Descriptor() +} + +func (TableFieldSchema_Mode) Type() protoreflect.EnumType { + return &file_google_cloud_bigquery_storage_v1_table_proto_enumTypes[1] +} + +func (x TableFieldSchema_Mode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TableFieldSchema_Mode.Descriptor instead. +func (TableFieldSchema_Mode) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_table_proto_rawDescGZIP(), []int{1, 1} +} + +// Schema of a table. This schema is a subset of +// google.cloud.bigquery.v2.TableSchema containing information necessary to +// generate valid message to write to BigQuery. +type TableSchema struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Describes the fields in a table. + Fields []*TableFieldSchema `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"` +} + +func (x *TableSchema) Reset() { + *x = TableSchema{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_table_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TableSchema) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TableSchema) ProtoMessage() {} + +func (x *TableSchema) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_table_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TableSchema.ProtoReflect.Descriptor instead. +func (*TableSchema) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_table_proto_rawDescGZIP(), []int{0} +} + +func (x *TableSchema) GetFields() []*TableFieldSchema { + if x != nil { + return x.Fields + } + return nil +} + +// TableFieldSchema defines a single field/column within a table schema. +type TableFieldSchema struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The field name. The name must contain only letters (a-z, A-Z), + // numbers (0-9), or underscores (_), and must start with a letter or + // underscore. The maximum length is 128 characters. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The field data type. + Type TableFieldSchema_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.bigquery.storage.v1.TableFieldSchema_Type" json:"type,omitempty"` + // Optional. The field mode. The default value is NULLABLE. + Mode TableFieldSchema_Mode `protobuf:"varint,3,opt,name=mode,proto3,enum=google.cloud.bigquery.storage.v1.TableFieldSchema_Mode" json:"mode,omitempty"` + // Optional. Describes the nested schema fields if the type property is set to + // STRUCT. + Fields []*TableFieldSchema `protobuf:"bytes,4,rep,name=fields,proto3" json:"fields,omitempty"` + // Optional. The field description. The maximum length is 1,024 characters. + Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"` + // Optional. Maximum length of values of this field for STRINGS or BYTES. + // + // If max_length is not specified, no maximum length constraint is imposed + // on this field. + // + // If type = "STRING", then max_length represents the maximum UTF-8 + // length of strings in this field. + // + // If type = "BYTES", then max_length represents the maximum number of + // bytes in this field. + // + // It is invalid to set this field if type is not "STRING" or "BYTES". + MaxLength int64 `protobuf:"varint,7,opt,name=max_length,json=maxLength,proto3" json:"max_length,omitempty"` + // Optional. Precision (maximum number of total digits in base 10) and scale + // (maximum number of digits in the fractional part in base 10) constraints + // for values of this field for NUMERIC or BIGNUMERIC. + // + // It is invalid to set precision or scale if type is not "NUMERIC" or + // "BIGNUMERIC". + // + // If precision and scale are not specified, no value range constraint is + // imposed on this field insofar as values are permitted by the type. + // + // Values of this NUMERIC or BIGNUMERIC field must be in this range when: + // + // - Precision (P) and scale (S) are specified: + // [-10^(P-S) + 10^(-S), 10^(P-S) - 10^(-S)] + // - Precision (P) is specified but not scale (and thus scale is + // interpreted to be equal to zero): + // [-10^P + 1, 10^P - 1]. + // + // Acceptable values for precision and scale if both are specified: + // + // - If type = "NUMERIC": + // 1 <= precision - scale <= 29 and 0 <= scale <= 9. + // - If type = "BIGNUMERIC": + // 1 <= precision - scale <= 38 and 0 <= scale <= 38. + // + // Acceptable values for precision if only precision is specified but not + // scale (and thus scale is interpreted to be equal to zero): + // + // * If type = "NUMERIC": 1 <= precision <= 29. + // * If type = "BIGNUMERIC": 1 <= precision <= 38. + // + // If scale is specified but not precision, then it is invalid. + Precision int64 `protobuf:"varint,8,opt,name=precision,proto3" json:"precision,omitempty"` + // Optional. See documentation for precision. + Scale int64 `protobuf:"varint,9,opt,name=scale,proto3" json:"scale,omitempty"` + // Optional. A SQL expression to specify the [default value] + // (https://cloud.google.com/bigquery/docs/default-values) for this field. + DefaultValueExpression string `protobuf:"bytes,10,opt,name=default_value_expression,json=defaultValueExpression,proto3" json:"default_value_expression,omitempty"` + // Optional. The subtype of the RANGE, if the type of this field is RANGE. If + // the type is RANGE, this field is required. Possible values for the field + // element type of a RANGE include: + // * DATE + // * DATETIME + // * TIMESTAMP + RangeElementType *TableFieldSchema_FieldElementType `protobuf:"bytes,11,opt,name=range_element_type,json=rangeElementType,proto3" json:"range_element_type,omitempty"` +} + +func (x *TableFieldSchema) Reset() { + *x = TableFieldSchema{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_table_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TableFieldSchema) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TableFieldSchema) ProtoMessage() {} + +func (x *TableFieldSchema) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_table_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TableFieldSchema.ProtoReflect.Descriptor instead. +func (*TableFieldSchema) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_table_proto_rawDescGZIP(), []int{1} +} + +func (x *TableFieldSchema) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *TableFieldSchema) GetType() TableFieldSchema_Type { + if x != nil { + return x.Type + } + return TableFieldSchema_TYPE_UNSPECIFIED +} + +func (x *TableFieldSchema) GetMode() TableFieldSchema_Mode { + if x != nil { + return x.Mode + } + return TableFieldSchema_MODE_UNSPECIFIED +} + +func (x *TableFieldSchema) GetFields() []*TableFieldSchema { + if x != nil { + return x.Fields + } + return nil +} + +func (x *TableFieldSchema) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *TableFieldSchema) GetMaxLength() int64 { + if x != nil { + return x.MaxLength + } + return 0 +} + +func (x *TableFieldSchema) GetPrecision() int64 { + if x != nil { + return x.Precision + } + return 0 +} + +func (x *TableFieldSchema) GetScale() int64 { + if x != nil { + return x.Scale + } + return 0 +} + +func (x *TableFieldSchema) GetDefaultValueExpression() string { + if x != nil { + return x.DefaultValueExpression + } + return "" +} + +func (x *TableFieldSchema) GetRangeElementType() *TableFieldSchema_FieldElementType { + if x != nil { + return x.RangeElementType + } + return nil +} + +// Represents the type of a field element. +type TableFieldSchema_FieldElementType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The type of a field element. + Type TableFieldSchema_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.bigquery.storage.v1.TableFieldSchema_Type" json:"type,omitempty"` +} + +func (x *TableFieldSchema_FieldElementType) Reset() { + *x = TableFieldSchema_FieldElementType{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_bigquery_storage_v1_table_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TableFieldSchema_FieldElementType) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TableFieldSchema_FieldElementType) ProtoMessage() {} + +func (x *TableFieldSchema_FieldElementType) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_bigquery_storage_v1_table_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TableFieldSchema_FieldElementType.ProtoReflect.Descriptor instead. +func (*TableFieldSchema_FieldElementType) Descriptor() ([]byte, []int) { + return file_google_cloud_bigquery_storage_v1_table_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *TableFieldSchema_FieldElementType) GetType() TableFieldSchema_Type { + if x != nil { + return x.Type + } + return TableFieldSchema_TYPE_UNSPECIFIED +} + +var File_google_cloud_bigquery_storage_v1_table_proto protoreflect.FileDescriptor + +var file_google_cloud_bigquery_storage_v1_table_proto_rawDesc = []byte{ + 0x0a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x62, + 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, + 0x76, 0x31, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x59, 0x0a, 0x0b, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x12, 0x4a, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0xf1, 0x07, 0x0a, + 0x10, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x50, 0x0a, 0x04, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, + 0x6f, 0x64, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x4f, + 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, + 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, + 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x72, + 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x18, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x16, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x76, 0x0a, 0x12, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x1a, + 0x64, 0x0a, 0x10, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x50, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xe0, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, + 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, + 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x44, + 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x55, 0x43, + 0x54, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x05, 0x12, 0x08, + 0x0a, 0x04, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x06, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x49, 0x4d, 0x45, + 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x41, 0x54, 0x45, 0x10, + 0x08, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x09, 0x12, 0x0c, 0x0a, 0x08, 0x44, + 0x41, 0x54, 0x45, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x0a, 0x12, 0x0d, 0x0a, 0x09, 0x47, 0x45, 0x4f, + 0x47, 0x52, 0x41, 0x50, 0x48, 0x59, 0x10, 0x0b, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x55, 0x4d, 0x45, + 0x52, 0x49, 0x43, 0x10, 0x0c, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x49, 0x47, 0x4e, 0x55, 0x4d, 0x45, + 0x52, 0x49, 0x43, 0x10, 0x0d, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x56, 0x41, + 0x4c, 0x10, 0x0e, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x0f, 0x12, 0x09, 0x0a, + 0x05, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x10, 0x22, 0x46, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x55, 0x4c, 0x4c, 0x41, 0x42, + 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, + 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, + 0x42, 0xba, 0x01, 0x0a, 0x24, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x62, 0x69, 0x67, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, 0x61, 0x70, + 0x69, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x62, 0x3b, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x62, 0xaa, 0x02, 0x20, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x20, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x5c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5c, 0x56, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_bigquery_storage_v1_table_proto_rawDescOnce sync.Once + file_google_cloud_bigquery_storage_v1_table_proto_rawDescData = file_google_cloud_bigquery_storage_v1_table_proto_rawDesc +) + +func file_google_cloud_bigquery_storage_v1_table_proto_rawDescGZIP() []byte { + file_google_cloud_bigquery_storage_v1_table_proto_rawDescOnce.Do(func() { + file_google_cloud_bigquery_storage_v1_table_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_bigquery_storage_v1_table_proto_rawDescData) + }) + return file_google_cloud_bigquery_storage_v1_table_proto_rawDescData +} + +var file_google_cloud_bigquery_storage_v1_table_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_google_cloud_bigquery_storage_v1_table_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_google_cloud_bigquery_storage_v1_table_proto_goTypes = []interface{}{ + (TableFieldSchema_Type)(0), // 0: google.cloud.bigquery.storage.v1.TableFieldSchema.Type + (TableFieldSchema_Mode)(0), // 1: google.cloud.bigquery.storage.v1.TableFieldSchema.Mode + (*TableSchema)(nil), // 2: google.cloud.bigquery.storage.v1.TableSchema + (*TableFieldSchema)(nil), // 3: google.cloud.bigquery.storage.v1.TableFieldSchema + (*TableFieldSchema_FieldElementType)(nil), // 4: google.cloud.bigquery.storage.v1.TableFieldSchema.FieldElementType +} +var file_google_cloud_bigquery_storage_v1_table_proto_depIdxs = []int32{ + 3, // 0: google.cloud.bigquery.storage.v1.TableSchema.fields:type_name -> google.cloud.bigquery.storage.v1.TableFieldSchema + 0, // 1: google.cloud.bigquery.storage.v1.TableFieldSchema.type:type_name -> google.cloud.bigquery.storage.v1.TableFieldSchema.Type + 1, // 2: google.cloud.bigquery.storage.v1.TableFieldSchema.mode:type_name -> google.cloud.bigquery.storage.v1.TableFieldSchema.Mode + 3, // 3: google.cloud.bigquery.storage.v1.TableFieldSchema.fields:type_name -> google.cloud.bigquery.storage.v1.TableFieldSchema + 4, // 4: google.cloud.bigquery.storage.v1.TableFieldSchema.range_element_type:type_name -> google.cloud.bigquery.storage.v1.TableFieldSchema.FieldElementType + 0, // 5: google.cloud.bigquery.storage.v1.TableFieldSchema.FieldElementType.type:type_name -> google.cloud.bigquery.storage.v1.TableFieldSchema.Type + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_google_cloud_bigquery_storage_v1_table_proto_init() } +func file_google_cloud_bigquery_storage_v1_table_proto_init() { + if File_google_cloud_bigquery_storage_v1_table_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_bigquery_storage_v1_table_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TableSchema); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_table_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TableFieldSchema); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_bigquery_storage_v1_table_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TableFieldSchema_FieldElementType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_bigquery_storage_v1_table_proto_rawDesc, + NumEnums: 2, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_bigquery_storage_v1_table_proto_goTypes, + DependencyIndexes: file_google_cloud_bigquery_storage_v1_table_proto_depIdxs, + EnumInfos: file_google_cloud_bigquery_storage_v1_table_proto_enumTypes, + MessageInfos: file_google_cloud_bigquery_storage_v1_table_proto_msgTypes, + }.Build() + File_google_cloud_bigquery_storage_v1_table_proto = out.File + file_google_cloud_bigquery_storage_v1_table_proto_rawDesc = nil + file_google_cloud_bigquery_storage_v1_table_proto_goTypes = nil + file_google_cloud_bigquery_storage_v1_table_proto_depIdxs = nil +} diff --git a/vendor/cloud.google.com/go/bigquery/storage/apiv1/version.go b/vendor/cloud.google.com/go/bigquery/storage/apiv1/version.go new file mode 100644 index 000000000..62fbf4c4d --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/storage/apiv1/version.go @@ -0,0 +1,23 @@ +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by gapicgen. DO NOT EDIT. + +package storage + +import "cloud.google.com/go/bigquery/internal" + +func init() { + versionClient = internal.Version +} diff --git a/vendor/cloud.google.com/go/bigquery/storage_client.go b/vendor/cloud.google.com/go/bigquery/storage_client.go new file mode 100644 index 000000000..12b770225 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/storage_client.go @@ -0,0 +1,174 @@ +// 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. + +package bigquery + +import ( + "context" + "fmt" + "runtime" + + "cloud.google.com/go/bigquery/internal" + storage "cloud.google.com/go/bigquery/storage/apiv1" + "cloud.google.com/go/bigquery/storage/apiv1/storagepb" + "cloud.google.com/go/internal/detect" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/option" + "google.golang.org/grpc" +) + +// readClient is a managed BigQuery Storage read client scoped to a single project. +type readClient struct { + rawClient *storage.BigQueryReadClient + projectID string + + settings readClientSettings +} + +type readClientSettings struct { + maxStreamCount int + maxWorkerCount int +} + +func defaultReadClientSettings() readClientSettings { + maxWorkerCount := runtime.GOMAXPROCS(0) + return readClientSettings{ + // with zero, the server will provide a value of streams so as to produce reasonable throughput + maxStreamCount: 0, + maxWorkerCount: maxWorkerCount, + } +} + +// newReadClient instantiates a new storage read client. +func newReadClient(ctx context.Context, projectID string, opts ...option.ClientOption) (c *readClient, err error) { + numConns := runtime.GOMAXPROCS(0) + if numConns > 4 { + numConns = 4 + } + o := []option.ClientOption{ + option.WithGRPCConnectionPool(numConns), + option.WithUserAgent(fmt.Sprintf("%s/%s", userAgentPrefix, internal.Version)), + } + o = append(o, opts...) + + rawClient, err := storage.NewBigQueryReadClient(ctx, o...) + if err != nil { + return nil, err + } + rawClient.SetGoogleClientInfo("gccl", internal.Version) + + // Handle project autodetection. + projectID, err = detect.ProjectID(ctx, projectID, "", opts...) + if err != nil { + return nil, err + } + + settings := defaultReadClientSettings() + rc := &readClient{ + rawClient: rawClient, + projectID: projectID, + settings: settings, + } + + return rc, nil +} + +// close releases resources held by the client. +func (c *readClient) close() error { + if c.rawClient == nil { + return fmt.Errorf("already closed") + } + c.rawClient.Close() + c.rawClient = nil + return nil +} + +// sessionForTable establishes a new session to fetch from a table using the Storage API +func (c *readClient) sessionForTable(ctx context.Context, table *Table, ordered bool) (*readSession, error) { + tableID, err := table.Identifier(StorageAPIResourceID) + if err != nil { + return nil, err + } + + // copy settings for a given session, to avoid overrides for all sessions + settings := c.settings + if ordered { + settings.maxStreamCount = 1 + } + + rs := &readSession{ + ctx: ctx, + table: table, + tableID: tableID, + settings: settings, + readRowsFunc: c.rawClient.ReadRows, + createReadSessionFunc: c.rawClient.CreateReadSession, + } + return rs, nil +} + +// ReadSession is the abstraction over a storage API read session. +type readSession struct { + settings readClientSettings + + ctx context.Context + table *Table + tableID string + + bqSession *storagepb.ReadSession + + // decouple from readClient to enable testing + createReadSessionFunc func(context.Context, *storagepb.CreateReadSessionRequest, ...gax.CallOption) (*storagepb.ReadSession, error) + readRowsFunc func(context.Context, *storagepb.ReadRowsRequest, ...gax.CallOption) (storagepb.BigQueryRead_ReadRowsClient, error) +} + +// Start initiates a read session +func (rs *readSession) start() error { + var preferredMinStreamCount int32 + maxStreamCount := int32(rs.settings.maxStreamCount) + if maxStreamCount == 0 { + preferredMinStreamCount = int32(rs.settings.maxWorkerCount) + } + createReadSessionRequest := &storagepb.CreateReadSessionRequest{ + Parent: fmt.Sprintf("projects/%s", rs.table.ProjectID), + ReadSession: &storagepb.ReadSession{ + Table: rs.tableID, + DataFormat: storagepb.DataFormat_ARROW, + }, + MaxStreamCount: maxStreamCount, + PreferredMinStreamCount: preferredMinStreamCount, + } + rpcOpts := gax.WithGRPCOptions( + // Read API can send batches up to 128MB + // https://cloud.google.com/bigquery/quotas#storage-limits + grpc.MaxCallRecvMsgSize(1024 * 1024 * 129), + ) + session, err := rs.createReadSessionFunc(rs.ctx, createReadSessionRequest, rpcOpts) + if err != nil { + return err + } + rs.bqSession = session + return nil +} + +// readRows returns a more direct iterators to the underlying Storage API row stream. +func (rs *readSession) readRows(req *storagepb.ReadRowsRequest) (storagepb.BigQueryRead_ReadRowsClient, error) { + if rs.bqSession == nil { + err := rs.start() + if err != nil { + return nil, err + } + } + return rs.readRowsFunc(rs.ctx, req) +} diff --git a/vendor/cloud.google.com/go/bigquery/storage_iterator.go b/vendor/cloud.google.com/go/bigquery/storage_iterator.go new file mode 100644 index 000000000..96e12f869 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/storage_iterator.go @@ -0,0 +1,371 @@ +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "context" + "errors" + "fmt" + "io" + "sync" + "sync/atomic" + "time" + + "cloud.google.com/go/bigquery/internal/query" + "cloud.google.com/go/bigquery/storage/apiv1/storagepb" + "github.com/googleapis/gax-go/v2" + "golang.org/x/sync/semaphore" + "google.golang.org/api/iterator" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +// storageArrowIterator is a raw interface for getting data from Storage Read API +type storageArrowIterator struct { + done uint32 // atomic flag + initialized bool + errs chan error + ctx context.Context + + schema Schema + rawSchema []byte + records chan *ArrowRecordBatch + + session *readSession +} + +var _ ArrowIterator = &storageArrowIterator{} + +func newStorageRowIteratorFromTable(ctx context.Context, table *Table, ordered bool) (*RowIterator, error) { + md, err := table.Metadata(ctx) + if err != nil { + return nil, err + } + rs, err := table.c.rc.sessionForTable(ctx, table, ordered) + if err != nil { + return nil, err + } + it, err := newStorageRowIterator(rs, md.Schema) + if err != nil { + return nil, err + } + if rs.bqSession == nil { + return nil, errors.New("read session not initialized") + } + arrowSerializedSchema := rs.bqSession.GetArrowSchema().GetSerializedSchema() + dec, err := newArrowDecoder(arrowSerializedSchema, md.Schema) + if err != nil { + return nil, err + } + it.arrowDecoder = dec + it.Schema = md.Schema + return it, nil +} + +func newStorageRowIteratorFromJob(ctx context.Context, j *Job) (*RowIterator, error) { + // Needed to fetch destination table + job, err := j.c.JobFromProject(ctx, j.projectID, j.jobID, j.location) + if err != nil { + return nil, err + } + cfg, err := job.Config() + if err != nil { + return nil, err + } + qcfg := cfg.(*QueryConfig) + if qcfg.Dst == nil { + if !job.isScript() { + return nil, fmt.Errorf("job has no destination table to read") + } + lastJob, err := resolveLastChildSelectJob(ctx, job) + if err != nil { + return nil, err + } + return newStorageRowIteratorFromJob(ctx, lastJob) + } + ordered := query.HasOrderedResults(qcfg.Q) + return newStorageRowIteratorFromTable(ctx, qcfg.Dst, ordered) +} + +func resolveLastChildSelectJob(ctx context.Context, job *Job) (*Job, error) { + childJobs := []*Job{} + it := job.Children(ctx) + for { + job, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + return nil, fmt.Errorf("failed to resolve table for script job: %w", err) + } + if !job.isSelectQuery() { + continue + } + childJobs = append(childJobs, job) + } + if len(childJobs) == 0 { + return nil, fmt.Errorf("failed to resolve table for script job: no child jobs found") + } + return childJobs[0], nil +} + +func newRawStorageRowIterator(rs *readSession, schema Schema) (*storageArrowIterator, error) { + arrowIt := &storageArrowIterator{ + ctx: rs.ctx, + session: rs, + schema: schema, + records: make(chan *ArrowRecordBatch, rs.settings.maxWorkerCount+1), + errs: make(chan error, rs.settings.maxWorkerCount+1), + } + if rs.bqSession == nil { + err := rs.start() + if err != nil { + return nil, err + } + } + arrowIt.rawSchema = rs.bqSession.GetArrowSchema().GetSerializedSchema() + return arrowIt, nil +} + +func newStorageRowIterator(rs *readSession, schema Schema) (*RowIterator, error) { + arrowIt, err := newRawStorageRowIterator(rs, schema) + if err != nil { + return nil, err + } + totalRows := arrowIt.session.bqSession.EstimatedRowCount + it := &RowIterator{ + ctx: rs.ctx, + arrowIterator: arrowIt, + TotalRows: uint64(totalRows), + rows: [][]Value{}, + } + it.nextFunc = nextFuncForStorageIterator(it) + it.pageInfo = &iterator.PageInfo{ + Token: "", + MaxSize: int(totalRows), + } + return it, nil +} + +func nextFuncForStorageIterator(it *RowIterator) func() error { + return func() error { + if len(it.rows) > 0 { + return nil + } + record, err := it.arrowIterator.Next() + if err == iterator.Done { + if len(it.rows) == 0 { + return iterator.Done + } + return nil + } + if err != nil { + return err + } + if it.Schema == nil { + it.Schema = it.arrowIterator.Schema() + } + rows, err := it.arrowDecoder.decodeArrowRecords(record) + if err != nil { + return err + } + it.rows = rows + return nil + } +} + +func (it *storageArrowIterator) init() error { + if it.initialized { + return nil + } + + bqSession := it.session.bqSession + if bqSession == nil { + return errors.New("read session not initialized") + } + + streams := bqSession.Streams + if len(streams) == 0 { + return iterator.Done + } + + wg := sync.WaitGroup{} + wg.Add(len(streams)) + sem := semaphore.NewWeighted(int64(it.session.settings.maxWorkerCount)) + go func() { + wg.Wait() + close(it.records) + close(it.errs) + it.markDone() + }() + + go func() { + for _, readStream := range streams { + err := sem.Acquire(it.ctx, 1) + if err != nil { + wg.Done() + continue + } + go func(readStreamName string) { + it.processStream(readStreamName) + sem.Release(1) + wg.Done() + }(readStream.Name) + } + }() + it.initialized = true + return nil +} + +func (it *storageArrowIterator) markDone() { + atomic.StoreUint32(&it.done, 1) +} + +func (it *storageArrowIterator) isDone() bool { + return atomic.LoadUint32(&it.done) != 0 +} + +func (it *storageArrowIterator) processStream(readStream string) { + bo := gax.Backoff{} + var offset int64 + for { + rowStream, err := it.session.readRows(&storagepb.ReadRowsRequest{ + ReadStream: readStream, + Offset: offset, + }) + if err != nil { + if it.session.ctx.Err() != nil { // context cancelled, don't try again + return + } + backoff, shouldRetry := retryReadRows(bo, err) + if shouldRetry { + if err := gax.Sleep(it.ctx, backoff); err != nil { + return // context cancelled + } + continue + } + it.errs <- fmt.Errorf("failed to read rows on stream %s: %w", readStream, err) + continue + } + offset, err = it.consumeRowStream(readStream, rowStream, offset) + if errors.Is(err, io.EOF) { + return + } + if err != nil { + if it.session.ctx.Err() != nil { // context cancelled, don't queue error + return + } + backoff, shouldRetry := retryReadRows(bo, err) + if shouldRetry { + if err := gax.Sleep(it.ctx, backoff); err != nil { + return // context cancelled + } + continue + } + it.errs <- fmt.Errorf("failed to read rows on stream %s: %w", readStream, err) + // try to re-open row stream with updated offset + } + } +} + +func retryReadRows(bo gax.Backoff, err error) (time.Duration, bool) { + s, ok := status.FromError(err) + if !ok { + return bo.Pause(), false + } + switch s.Code() { + case codes.Aborted, + codes.Canceled, + codes.DeadlineExceeded, + codes.FailedPrecondition, + codes.Internal, + codes.Unavailable: + return bo.Pause(), true + } + return bo.Pause(), false +} + +func (it *storageArrowIterator) consumeRowStream(readStream string, rowStream storagepb.BigQueryRead_ReadRowsClient, offset int64) (int64, error) { + for { + r, err := rowStream.Recv() + if err != nil { + if err == io.EOF { + return offset, err + } + return offset, fmt.Errorf("failed to consume rows on stream %s: %w", readStream, err) + } + if r.RowCount > 0 { + offset += r.RowCount + recordBatch := r.GetArrowRecordBatch() + it.records <- &ArrowRecordBatch{ + PartitionID: readStream, + Schema: it.rawSchema, + Data: recordBatch.SerializedRecordBatch, + } + } + } +} + +// next return the next batch of rows as an arrow.Record. +// Accessing Arrow Records directly has the drawnback of having to deal +// with memory management. +func (it *storageArrowIterator) Next() (*ArrowRecordBatch, error) { + if err := it.init(); err != nil { + return nil, err + } + if len(it.records) > 0 { + return <-it.records, nil + } + if it.isDone() { + return nil, iterator.Done + } + select { + case record := <-it.records: + if record == nil { + return nil, iterator.Done + } + return record, nil + case err := <-it.errs: + return nil, err + case <-it.ctx.Done(): + return nil, it.ctx.Err() + } +} + +func (it *storageArrowIterator) SerializedArrowSchema() []byte { + return it.rawSchema +} + +func (it *storageArrowIterator) Schema() Schema { + return it.schema +} + +// IsAccelerated check if the current RowIterator is +// being accelerated by Storage API. +func (it *RowIterator) IsAccelerated() bool { + return it.arrowIterator != nil +} + +// ArrowIterator gives access to the raw Arrow Record Batch stream to be consumed directly. +// Experimental: this interface is experimental and may be modified or removed in future versions, +// regardless of any other documented package stability guarantees. +// Don't try to mix RowIterator.Next and ArrowIterator.Next calls. +func (it *RowIterator) ArrowIterator() (ArrowIterator, error) { + if !it.IsAccelerated() { + // TODO: can we convert plain RowIterator based on JSON API to an Arrow Stream ? + return nil, errors.New("bigquery: require storage read API to be enabled") + } + return it.arrowIterator, nil +} diff --git a/vendor/cloud.google.com/go/bigquery/table.go b/vendor/cloud.google.com/go/bigquery/table.go new file mode 100644 index 000000000..25068e558 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/table.go @@ -0,0 +1,1262 @@ +// Copyright 2015 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "context" + "errors" + "fmt" + "time" + + "cloud.google.com/go/internal/optional" + "cloud.google.com/go/internal/trace" + bq "google.golang.org/api/bigquery/v2" +) + +// A Table is a reference to a BigQuery table. +type Table struct { + // ProjectID, DatasetID and TableID may be omitted if the Table is the destination for a query. + // In this case the result will be stored in an ephemeral table. + ProjectID string + DatasetID string + // TableID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). + // The maximum length is 1,024 characters. + TableID string + + c *Client +} + +// TableMetadata contains information about a BigQuery table. +type TableMetadata struct { + // The following fields can be set when creating a table. + + // The user-friendly name for the table. + Name string + + // Output-only location of the table, based on the encapsulating dataset. + Location string + + // The user-friendly description of the table. + Description string + + // The table schema. If provided on create, ViewQuery must be empty. + Schema Schema + + // If non-nil, this table is a materialized view. + MaterializedView *MaterializedViewDefinition + + // The query to use for a logical view. If provided on create, Schema must be nil. + ViewQuery string + + // Use Legacy SQL for the view query. + // At most one of UseLegacySQL and UseStandardSQL can be true. + UseLegacySQL bool + + // Use Standard SQL for the view query. The default. + // At most one of UseLegacySQL and UseStandardSQL can be true. + // Deprecated: use UseLegacySQL. + UseStandardSQL bool + + // If non-nil, the table is partitioned by time. Only one of + // time partitioning or range partitioning can be specified. + TimePartitioning *TimePartitioning + + // If non-nil, the table is partitioned by integer range. Only one of + // time partitioning or range partitioning can be specified. + RangePartitioning *RangePartitioning + + // If set to true, queries that reference this table must specify a + // partition filter (e.g. a WHERE clause) that can be used to eliminate + // partitions. Used to prevent unintentional full data scans on large + // partitioned tables. + RequirePartitionFilter bool + + // Clustering specifies the data clustering configuration for the table. + Clustering *Clustering + + // The time when this table expires. If set, this table will expire at the + // specified time. Expired tables will be deleted and their storage + // reclaimed. The zero value is ignored. + ExpirationTime time.Time + + // User-provided labels. + Labels map[string]string + + // Information about a table stored outside of BigQuery. + ExternalDataConfig *ExternalDataConfig + + // Custom encryption configuration (e.g., Cloud KMS keys). + EncryptionConfig *EncryptionConfig + + // All the fields below are read-only. + + FullID string // An opaque ID uniquely identifying the table. + Type TableType + CreationTime time.Time + LastModifiedTime time.Time + + // The size of the table in bytes. + // This does not include data that is being buffered during a streaming insert. + NumBytes int64 + + // The number of bytes in the table considered "long-term storage" for reduced + // billing purposes. See https://cloud.google.com/bigquery/pricing#long-term-storage + // for more information. + NumLongTermBytes int64 + + // The number of rows of data in this table. + // This does not include data that is being buffered during a streaming insert. + NumRows uint64 + + // SnapshotDefinition contains additional information about the provenance of a + // given snapshot table. + SnapshotDefinition *SnapshotDefinition + + // CloneDefinition contains additional information about the provenance of a + // given cloned table. + CloneDefinition *CloneDefinition + + // Contains information regarding this table's streaming buffer, if one is + // present. This field will be nil if the table is not being streamed to or if + // there is no data in the streaming buffer. + StreamingBuffer *StreamingBuffer + + // ETag is the ETag obtained when reading metadata. Pass it to Table.Update to + // ensure that the metadata hasn't changed since it was read. + ETag string + + // Defines the default collation specification of new STRING fields + // in the table. During table creation or update, if a STRING field is added + // to this table without explicit collation specified, then the table inherits + // the table default collation. A change to this field affects only fields + // added afterwards, and does not alter the existing fields. + // The following values are supported: + // - 'und:ci': undetermined locale, case insensitive. + // - '': empty string. Default to case-sensitive behavior. + // More information: https://cloud.google.com/bigquery/docs/reference/standard-sql/collation-concepts + DefaultCollation string + + // TableConstraints contains table primary and foreign keys constraints. + // Present only if the table has primary or foreign keys. + TableConstraints *TableConstraints + + // The tags associated with this table. Tag + // keys are globally unique. See additional information on tags + // (https://cloud.google.com/iam/docs/tags-access-control#definitions). + // An object containing a list of "key": value pairs. The key is the + // namespaced friendly name of the tag key, e.g. "12345/environment" + // where 12345 is parent id. The value is the friendly short name of the + // tag value, e.g. "production". + ResourceTags map[string]string +} + +// TableConstraints defines the primary key and foreign key of a table. +type TableConstraints struct { + // PrimaryKey constraint on a table's columns. + // Present only if the table has a primary key. + // The primary key is not enforced. + PrimaryKey *PrimaryKey + + // ForeignKeys represent a list of foreign keys constraints. + // Foreign keys are not enforced. + ForeignKeys []*ForeignKey +} + +// PrimaryKey represents the primary key constraint on a table's columns. +type PrimaryKey struct { + // Columns that compose the primary key constraint. + Columns []string +} + +func (pk *PrimaryKey) toBQ() *bq.TableConstraintsPrimaryKey { + return &bq.TableConstraintsPrimaryKey{ + Columns: pk.Columns, + } +} + +func bqToPrimaryKey(tc *bq.TableConstraints) *PrimaryKey { + if tc.PrimaryKey == nil { + return nil + } + return &PrimaryKey{ + Columns: tc.PrimaryKey.Columns, + } +} + +// ForeignKey represents a foreign key constraint on a table's columns. +type ForeignKey struct { + // Foreign key constraint name. + Name string + + // Table that holds the primary key and is referenced by this foreign key. + ReferencedTable *Table + + // Columns that compose the foreign key. + ColumnReferences []*ColumnReference +} + +func (fk *ForeignKey) toBQ() *bq.TableConstraintsForeignKeys { + colRefs := []*bq.TableConstraintsForeignKeysColumnReferences{} + for _, colRef := range fk.ColumnReferences { + colRefs = append(colRefs, colRef.toBQ()) + } + return &bq.TableConstraintsForeignKeys{ + Name: fk.Name, + ReferencedTable: &bq.TableConstraintsForeignKeysReferencedTable{ + DatasetId: fk.ReferencedTable.DatasetID, + ProjectId: fk.ReferencedTable.ProjectID, + TableId: fk.ReferencedTable.TableID, + }, + ColumnReferences: colRefs, + } +} + +func bqToForeignKeys(tc *bq.TableConstraints, c *Client) []*ForeignKey { + fks := []*ForeignKey{} + for _, fk := range tc.ForeignKeys { + colRefs := []*ColumnReference{} + for _, colRef := range fk.ColumnReferences { + colRefs = append(colRefs, &ColumnReference{ + ReferencedColumn: colRef.ReferencedColumn, + ReferencingColumn: colRef.ReferencingColumn, + }) + } + fks = append(fks, &ForeignKey{ + Name: fk.Name, + ReferencedTable: c.DatasetInProject(fk.ReferencedTable.ProjectId, fk.ReferencedTable.DatasetId).Table(fk.ReferencedTable.TableId), + ColumnReferences: colRefs, + }) + } + return fks +} + +// ColumnReference represents the pair of the foreign key column and primary key column. +type ColumnReference struct { + // ReferencingColumn is the column in the current table that composes the foreign key. + ReferencingColumn string + // ReferencedColumn is the column in the primary key of the foreign table that + // is referenced by the ReferencingColumn. + ReferencedColumn string +} + +func (colRef *ColumnReference) toBQ() *bq.TableConstraintsForeignKeysColumnReferences { + return &bq.TableConstraintsForeignKeysColumnReferences{ + ReferencedColumn: colRef.ReferencedColumn, + ReferencingColumn: colRef.ReferencingColumn, + } +} + +// TableCreateDisposition specifies the circumstances under which destination table will be created. +// Default is CreateIfNeeded. +type TableCreateDisposition string + +const ( + // CreateIfNeeded will create the table if it does not already exist. + // Tables are created atomically on successful completion of a job. + CreateIfNeeded TableCreateDisposition = "CREATE_IF_NEEDED" + + // CreateNever ensures the table must already exist and will not be + // automatically created. + CreateNever TableCreateDisposition = "CREATE_NEVER" +) + +// TableWriteDisposition specifies how existing data in a destination table is treated. +// Default is WriteAppend. +type TableWriteDisposition string + +const ( + // WriteAppend will append to any existing data in the destination table. + // Data is appended atomically on successful completion of a job. + WriteAppend TableWriteDisposition = "WRITE_APPEND" + + // WriteTruncate overrides the existing data in the destination table. + // Data is overwritten atomically on successful completion of a job. + WriteTruncate TableWriteDisposition = "WRITE_TRUNCATE" + + // WriteEmpty fails writes if the destination table already contains data. + WriteEmpty TableWriteDisposition = "WRITE_EMPTY" +) + +// TableType is the type of table. +type TableType string + +const ( + // RegularTable is a regular table. + RegularTable TableType = "TABLE" + // ViewTable is a table type describing that the table is a logical view. + // See more information at https://cloud.google.com/bigquery/docs/views. + ViewTable TableType = "VIEW" + // ExternalTable is a table type describing that the table is an external + // table (also known as a federated data source). See more information at + // https://cloud.google.com/bigquery/external-data-sources. + ExternalTable TableType = "EXTERNAL" + // MaterializedView represents a managed storage table that's derived from + // a base table. + MaterializedView TableType = "MATERIALIZED_VIEW" + // Snapshot represents an immutable point in time snapshot of some other + // table. + Snapshot TableType = "SNAPSHOT" +) + +// MaterializedViewDefinition contains information for materialized views. +type MaterializedViewDefinition struct { + // EnableRefresh governs whether the derived view is updated to reflect + // changes in the base table. + EnableRefresh bool + + // LastRefreshTime reports the time, in millisecond precision, that the + // materialized view was last updated. + LastRefreshTime time.Time + + // Query contains the SQL query used to define the materialized view. + Query string + + // RefreshInterval defines the maximum frequency, in millisecond precision, + // at which this this materialized view will be refreshed. + RefreshInterval time.Duration + + // AllowNonIncrementalDefinition for materialized view definition. + // The default value is false. + AllowNonIncrementalDefinition bool + + // MaxStaleness of data that could be returned when materialized + // view is queried. + MaxStaleness *IntervalValue +} + +func (mvd *MaterializedViewDefinition) toBQ() *bq.MaterializedViewDefinition { + if mvd == nil { + return nil + } + maxStaleness := "" + if mvd.MaxStaleness != nil { + maxStaleness = mvd.MaxStaleness.String() + } + return &bq.MaterializedViewDefinition{ + EnableRefresh: mvd.EnableRefresh, + Query: mvd.Query, + LastRefreshTime: mvd.LastRefreshTime.UnixNano() / 1e6, + RefreshIntervalMs: int64(mvd.RefreshInterval) / 1e6, + AllowNonIncrementalDefinition: mvd.AllowNonIncrementalDefinition, + MaxStaleness: maxStaleness, + // force sending the bool in all cases due to how Go handles false. + ForceSendFields: []string{"EnableRefresh", "AllowNonIncrementalDefinition"}, + } +} + +func bqToMaterializedViewDefinition(q *bq.MaterializedViewDefinition) *MaterializedViewDefinition { + if q == nil { + return nil + } + var maxStaleness *IntervalValue + if q.MaxStaleness != "" { + maxStaleness, _ = ParseInterval(q.MaxStaleness) + } + return &MaterializedViewDefinition{ + EnableRefresh: q.EnableRefresh, + Query: q.Query, + LastRefreshTime: unixMillisToTime(q.LastRefreshTime), + RefreshInterval: time.Duration(q.RefreshIntervalMs) * time.Millisecond, + AllowNonIncrementalDefinition: q.AllowNonIncrementalDefinition, + MaxStaleness: maxStaleness, + } +} + +// SnapshotDefinition provides metadata related to the origin of a snapshot. +type SnapshotDefinition struct { + + // BaseTableReference describes the ID of the table that this snapshot + // came from. + BaseTableReference *Table + + // SnapshotTime indicates when the base table was snapshot. + SnapshotTime time.Time +} + +func (sd *SnapshotDefinition) toBQ() *bq.SnapshotDefinition { + if sd == nil { + return nil + } + return &bq.SnapshotDefinition{ + BaseTableReference: sd.BaseTableReference.toBQ(), + SnapshotTime: sd.SnapshotTime.Format(time.RFC3339), + } +} + +func bqToSnapshotDefinition(q *bq.SnapshotDefinition, c *Client) *SnapshotDefinition { + if q == nil { + return nil + } + sd := &SnapshotDefinition{ + BaseTableReference: bqToTable(q.BaseTableReference, c), + } + // It's possible we could fail to populate SnapshotTime if we fail to parse + // the backend representation. + if t, err := time.Parse(time.RFC3339, q.SnapshotTime); err == nil { + sd.SnapshotTime = t + } + return sd +} + +// CloneDefinition provides metadata related to the origin of a clone. +type CloneDefinition struct { + + // BaseTableReference describes the ID of the table that this clone + // came from. + BaseTableReference *Table + + // CloneTime indicates when the base table was cloned. + CloneTime time.Time +} + +func (cd *CloneDefinition) toBQ() *bq.CloneDefinition { + if cd == nil { + return nil + } + return &bq.CloneDefinition{ + BaseTableReference: cd.BaseTableReference.toBQ(), + CloneTime: cd.CloneTime.Format(time.RFC3339), + } +} + +func bqToCloneDefinition(q *bq.CloneDefinition, c *Client) *CloneDefinition { + if q == nil { + return nil + } + cd := &CloneDefinition{ + BaseTableReference: bqToTable(q.BaseTableReference, c), + } + // It's possible we could fail to populate CloneTime if we fail to parse + // the backend representation. + if t, err := time.Parse(time.RFC3339, q.CloneTime); err == nil { + cd.CloneTime = t + } + return cd +} + +// TimePartitioningType defines the interval used to partition managed data. +type TimePartitioningType string + +const ( + // DayPartitioningType uses a day-based interval for time partitioning. + DayPartitioningType TimePartitioningType = "DAY" + + // HourPartitioningType uses an hour-based interval for time partitioning. + HourPartitioningType TimePartitioningType = "HOUR" + + // MonthPartitioningType uses a month-based interval for time partitioning. + MonthPartitioningType TimePartitioningType = "MONTH" + + // YearPartitioningType uses a year-based interval for time partitioning. + YearPartitioningType TimePartitioningType = "YEAR" +) + +// TimePartitioning describes the time-based date partitioning on a table. +// For more information see: https://cloud.google.com/bigquery/docs/creating-partitioned-tables. +type TimePartitioning struct { + // Defines the partition interval type. Supported values are "HOUR", "DAY", "MONTH", and "YEAR". + // When the interval type is not specified, default behavior is DAY. + Type TimePartitioningType + + // The amount of time to keep the storage for a partition. + // If the duration is empty (0), the data in the partitions do not expire. + Expiration time.Duration + + // If empty, the table is partitioned by pseudo column '_PARTITIONTIME'; if set, the + // table is partitioned by this field. The field must be a top-level TIMESTAMP or + // DATE field. Its mode must be NULLABLE or REQUIRED. + Field string + + // If set to true, queries that reference this table must specify a + // partition filter (e.g. a WHERE clause) that can be used to eliminate + // partitions. Used to prevent unintentional full data scans on large + // partitioned tables. + // DEPRECATED: use the top-level RequirePartitionFilter in TableMetadata. + RequirePartitionFilter bool +} + +func (p *TimePartitioning) toBQ() *bq.TimePartitioning { + if p == nil { + return nil + } + // Treat unspecified values as DAY-based partitioning. + intervalType := DayPartitioningType + if p.Type != "" { + intervalType = p.Type + } + return &bq.TimePartitioning{ + Type: string(intervalType), + ExpirationMs: int64(p.Expiration / time.Millisecond), + Field: p.Field, + RequirePartitionFilter: p.RequirePartitionFilter, + } +} + +func bqToTimePartitioning(q *bq.TimePartitioning) *TimePartitioning { + if q == nil { + return nil + } + return &TimePartitioning{ + Type: TimePartitioningType(q.Type), + Expiration: time.Duration(q.ExpirationMs) * time.Millisecond, + Field: q.Field, + RequirePartitionFilter: q.RequirePartitionFilter, + } +} + +// RangePartitioning indicates an integer-range based storage organization strategy. +type RangePartitioning struct { + // The field by which the table is partitioned. + // This field must be a top-level field, and must be typed as an + // INTEGER/INT64. + Field string + // The details of how partitions are mapped onto the integer range. + Range *RangePartitioningRange +} + +// RangePartitioningRange defines the boundaries and width of partitioned values. +type RangePartitioningRange struct { + // The start value of defined range of values, inclusive of the specified value. + Start int64 + // The end of the defined range of values, exclusive of the defined value. + End int64 + // The width of each interval range. + Interval int64 +} + +func (rp *RangePartitioning) toBQ() *bq.RangePartitioning { + if rp == nil { + return nil + } + return &bq.RangePartitioning{ + Field: rp.Field, + Range: rp.Range.toBQ(), + } +} + +func bqToRangePartitioning(q *bq.RangePartitioning) *RangePartitioning { + if q == nil { + return nil + } + return &RangePartitioning{ + Field: q.Field, + Range: bqToRangePartitioningRange(q.Range), + } +} + +func bqToRangePartitioningRange(br *bq.RangePartitioningRange) *RangePartitioningRange { + if br == nil { + return nil + } + return &RangePartitioningRange{ + Start: br.Start, + End: br.End, + Interval: br.Interval, + } +} + +func (rpr *RangePartitioningRange) toBQ() *bq.RangePartitioningRange { + if rpr == nil { + return nil + } + return &bq.RangePartitioningRange{ + Start: rpr.Start, + End: rpr.End, + Interval: rpr.Interval, + ForceSendFields: []string{"Start", "End", "Interval"}, + } +} + +// Clustering governs the organization of data within a managed table. +// For more information, see https://cloud.google.com/bigquery/docs/clustered-tables +type Clustering struct { + Fields []string +} + +func (c *Clustering) toBQ() *bq.Clustering { + if c == nil { + return nil + } + return &bq.Clustering{ + Fields: c.Fields, + } +} + +func bqToClustering(q *bq.Clustering) *Clustering { + if q == nil { + return nil + } + return &Clustering{ + Fields: q.Fields, + } +} + +// EncryptionConfig configures customer-managed encryption on tables and ML models. +type EncryptionConfig struct { + // Describes the Cloud KMS encryption key that will be used to protect + // destination BigQuery table. The BigQuery Service Account associated with your + // project requires access to this encryption key. + KMSKeyName string +} + +func (e *EncryptionConfig) toBQ() *bq.EncryptionConfiguration { + if e == nil { + return nil + } + return &bq.EncryptionConfiguration{ + KmsKeyName: e.KMSKeyName, + } +} + +func bqToEncryptionConfig(q *bq.EncryptionConfiguration) *EncryptionConfig { + if q == nil { + return nil + } + return &EncryptionConfig{ + KMSKeyName: q.KmsKeyName, + } +} + +// StreamingBuffer holds information about the streaming buffer. +type StreamingBuffer struct { + // A lower-bound estimate of the number of bytes currently in the streaming + // buffer. + EstimatedBytes uint64 + + // A lower-bound estimate of the number of rows currently in the streaming + // buffer. + EstimatedRows uint64 + + // The time of the oldest entry in the streaming buffer. + OldestEntryTime time.Time +} + +func (t *Table) toBQ() *bq.TableReference { + return &bq.TableReference{ + ProjectId: t.ProjectID, + DatasetId: t.DatasetID, + TableId: t.TableID, + } +} + +// IdentifierFormat represents a how certain resource identifiers such as table references +// are formatted. +type IdentifierFormat string + +var ( + // StandardSQLID returns an identifier suitable for use with Standard SQL. + StandardSQLID IdentifierFormat = "SQL" + + // LegacySQLID returns an identifier suitable for use with Legacy SQL. + LegacySQLID IdentifierFormat = "LEGACY_SQL" + + // StorageAPIResourceID returns an identifier suitable for use with the Storage API. Namely, it's for formatting + // a table resource for invoking read and write functionality. + StorageAPIResourceID IdentifierFormat = "STORAGE_API_RESOURCE" + + // ErrUnknownIdentifierFormat is indicative of requesting an identifier in a format that is + // not supported. + ErrUnknownIdentifierFormat = errors.New("unknown identifier format") +) + +// Identifier returns the ID of the table in the requested format. +func (t *Table) Identifier(f IdentifierFormat) (string, error) { + switch f { + case LegacySQLID: + return fmt.Sprintf("%s:%s.%s", t.ProjectID, t.DatasetID, t.TableID), nil + case StorageAPIResourceID: + return fmt.Sprintf("projects/%s/datasets/%s/tables/%s", t.ProjectID, t.DatasetID, t.TableID), nil + case StandardSQLID: + // Note we don't need to quote the project ID here, as StandardSQL has special rules to allow + // dash identifiers for projects without issue in table identifiers. + return fmt.Sprintf("%s.%s.%s", t.ProjectID, t.DatasetID, t.TableID), nil + default: + return "", ErrUnknownIdentifierFormat + } +} + +// FullyQualifiedName returns the ID of the table in projectID:datasetID.tableID format. +func (t *Table) FullyQualifiedName() string { + s, _ := t.Identifier(LegacySQLID) + return s +} + +// implicitTable reports whether Table is an empty placeholder, which signifies that a new table should be created with an auto-generated Table ID. +func (t *Table) implicitTable() bool { + return t.ProjectID == "" && t.DatasetID == "" && t.TableID == "" +} + +// Create creates a table in the BigQuery service. +// Pass in a TableMetadata value to configure the table. +// If tm.View.Query is non-empty, the created table will be of type VIEW. +// If no ExpirationTime is specified, the table will never expire. +// After table creation, a view can be modified only if its table was initially created +// with a view. +func (t *Table) Create(ctx context.Context, tm *TableMetadata) (err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Table.Create") + defer func() { trace.EndSpan(ctx, err) }() + + table, err := tm.toBQ() + if err != nil { + return err + } + table.TableReference = &bq.TableReference{ + ProjectId: t.ProjectID, + DatasetId: t.DatasetID, + TableId: t.TableID, + } + + req := t.c.bqs.Tables.Insert(t.ProjectID, t.DatasetID, table).Context(ctx) + setClientHeader(req.Header()) + return runWithRetry(ctx, func() (err error) { + ctx = trace.StartSpan(ctx, "bigquery.tables.insert") + _, err = req.Do() + trace.EndSpan(ctx, err) + return err + }) +} + +func (tm *TableMetadata) toBQ() (*bq.Table, error) { + t := &bq.Table{} + if tm == nil { + return t, nil + } + if tm.Schema != nil && tm.ViewQuery != "" { + return nil, errors.New("bigquery: provide Schema or ViewQuery, not both") + } + t.FriendlyName = tm.Name + t.Description = tm.Description + t.Labels = tm.Labels + if tm.Schema != nil { + t.Schema = tm.Schema.toBQ() + } + if tm.ViewQuery != "" { + if tm.UseStandardSQL && tm.UseLegacySQL { + return nil, errors.New("bigquery: cannot provide both UseStandardSQL and UseLegacySQL") + } + t.View = &bq.ViewDefinition{Query: tm.ViewQuery} + if tm.UseLegacySQL { + t.View.UseLegacySql = true + } else { + t.View.UseLegacySql = false + t.View.ForceSendFields = append(t.View.ForceSendFields, "UseLegacySql") + } + } else if tm.UseLegacySQL || tm.UseStandardSQL { + return nil, errors.New("bigquery: UseLegacy/StandardSQL requires ViewQuery") + } + t.MaterializedView = tm.MaterializedView.toBQ() + t.TimePartitioning = tm.TimePartitioning.toBQ() + t.RangePartitioning = tm.RangePartitioning.toBQ() + t.Clustering = tm.Clustering.toBQ() + t.RequirePartitionFilter = tm.RequirePartitionFilter + t.SnapshotDefinition = tm.SnapshotDefinition.toBQ() + t.CloneDefinition = tm.CloneDefinition.toBQ() + + if !validExpiration(tm.ExpirationTime) { + return nil, fmt.Errorf("invalid expiration time: %v.\n"+ + "Valid expiration times are after 1678 and before 2262", tm.ExpirationTime) + } + if !tm.ExpirationTime.IsZero() && tm.ExpirationTime != NeverExpire { + t.ExpirationTime = tm.ExpirationTime.UnixNano() / 1e6 + } + if tm.ExternalDataConfig != nil { + edc := tm.ExternalDataConfig.toBQ() + t.ExternalDataConfiguration = &edc + } + t.EncryptionConfiguration = tm.EncryptionConfig.toBQ() + if tm.FullID != "" { + return nil, errors.New("cannot set FullID on create") + } + if tm.Type != "" { + return nil, errors.New("cannot set Type on create") + } + if !tm.CreationTime.IsZero() { + return nil, errors.New("cannot set CreationTime on create") + } + if !tm.LastModifiedTime.IsZero() { + return nil, errors.New("cannot set LastModifiedTime on create") + } + if tm.NumBytes != 0 { + return nil, errors.New("cannot set NumBytes on create") + } + if tm.NumLongTermBytes != 0 { + return nil, errors.New("cannot set NumLongTermBytes on create") + } + if tm.NumRows != 0 { + return nil, errors.New("cannot set NumRows on create") + } + if tm.StreamingBuffer != nil { + return nil, errors.New("cannot set StreamingBuffer on create") + } + if tm.ETag != "" { + return nil, errors.New("cannot set ETag on create") + } + t.DefaultCollation = string(tm.DefaultCollation) + + if tm.TableConstraints != nil { + t.TableConstraints = &bq.TableConstraints{} + if tm.TableConstraints.PrimaryKey != nil { + t.TableConstraints.PrimaryKey = tm.TableConstraints.PrimaryKey.toBQ() + } + if len(tm.TableConstraints.ForeignKeys) > 0 { + t.TableConstraints.ForeignKeys = make([]*bq.TableConstraintsForeignKeys, len(tm.TableConstraints.ForeignKeys)) + for i, fk := range tm.TableConstraints.ForeignKeys { + t.TableConstraints.ForeignKeys[i] = fk.toBQ() + } + } + } + if tm.ResourceTags != nil { + t.ResourceTags = make(map[string]string) + for k, v := range tm.ResourceTags { + t.ResourceTags[k] = v + } + } + return t, nil +} + +// We use this for the option pattern rather than exposing the underlying +// discovery type directly. +type tableGetCall struct { + call *bq.TablesGetCall +} + +// TableMetadataOption allow requests to alter requests for table metadata. +type TableMetadataOption func(*tableGetCall) + +// TableMetadataView specifies which details about a table are desired. +type TableMetadataView string + +const ( + // BasicMetadataView populates basic table information including schema partitioning, + // but does not contain storage statistics like number or rows or bytes. This is a more + // efficient view to use for large tables or higher metadata query rates. + BasicMetadataView TableMetadataView = "BASIC" + + // FullMetadataView returns all table information, including storage statistics. It currently + // returns the same information as StorageStatsMetadataView, but may include additional information + // in the future. + FullMetadataView TableMetadataView = "FULL" + + // StorageStatsMetadataView includes all information from the basic view, and includes storage statistics. It currently + StorageStatsMetadataView TableMetadataView = "STORAGE_STATS" +) + +// WithMetadataView is used to customize what details are returned when interrogating a +// table via the Metadata() call. Generally this is used to limit data returned for performance +// reasons (such as large tables that take time computing storage statistics). +func WithMetadataView(tmv TableMetadataView) TableMetadataOption { + return func(tgc *tableGetCall) { + tgc.call.View(string(tmv)) + } +} + +// Metadata fetches the metadata for the table. +func (t *Table) Metadata(ctx context.Context, opts ...TableMetadataOption) (md *TableMetadata, err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Table.Metadata") + defer func() { trace.EndSpan(ctx, err) }() + + tgc := &tableGetCall{ + call: t.c.bqs.Tables.Get(t.ProjectID, t.DatasetID, t.TableID).Context(ctx), + } + + for _, o := range opts { + o(tgc) + } + + setClientHeader(tgc.call.Header()) + var res *bq.Table + if err := runWithRetry(ctx, func() (err error) { + sCtx := trace.StartSpan(ctx, "bigquery.tables.get") + res, err = tgc.call.Do() + trace.EndSpan(sCtx, err) + return err + }); err != nil { + return nil, err + } + return bqToTableMetadata(res, t.c) +} + +func bqToTableMetadata(t *bq.Table, c *Client) (*TableMetadata, error) { + md := &TableMetadata{ + Description: t.Description, + Name: t.FriendlyName, + Location: t.Location, + Type: TableType(t.Type), + FullID: t.Id, + Labels: t.Labels, + NumBytes: t.NumBytes, + NumLongTermBytes: t.NumLongTermBytes, + NumRows: t.NumRows, + ExpirationTime: unixMillisToTime(t.ExpirationTime), + CreationTime: unixMillisToTime(t.CreationTime), + LastModifiedTime: unixMillisToTime(int64(t.LastModifiedTime)), + ETag: t.Etag, + DefaultCollation: t.DefaultCollation, + EncryptionConfig: bqToEncryptionConfig(t.EncryptionConfiguration), + RequirePartitionFilter: t.RequirePartitionFilter, + SnapshotDefinition: bqToSnapshotDefinition(t.SnapshotDefinition, c), + CloneDefinition: bqToCloneDefinition(t.CloneDefinition, c), + } + if t.MaterializedView != nil { + md.MaterializedView = bqToMaterializedViewDefinition(t.MaterializedView) + } + if t.Schema != nil { + md.Schema = bqToSchema(t.Schema) + } + if t.View != nil { + md.ViewQuery = t.View.Query + md.UseLegacySQL = t.View.UseLegacySql + } + md.TimePartitioning = bqToTimePartitioning(t.TimePartitioning) + md.RangePartitioning = bqToRangePartitioning(t.RangePartitioning) + md.Clustering = bqToClustering(t.Clustering) + if t.StreamingBuffer != nil { + md.StreamingBuffer = &StreamingBuffer{ + EstimatedBytes: t.StreamingBuffer.EstimatedBytes, + EstimatedRows: t.StreamingBuffer.EstimatedRows, + OldestEntryTime: unixMillisToTime(int64(t.StreamingBuffer.OldestEntryTime)), + } + } + if t.ExternalDataConfiguration != nil { + edc, err := bqToExternalDataConfig(t.ExternalDataConfiguration) + if err != nil { + return nil, err + } + md.ExternalDataConfig = edc + } + if t.TableConstraints != nil { + md.TableConstraints = &TableConstraints{ + PrimaryKey: bqToPrimaryKey(t.TableConstraints), + ForeignKeys: bqToForeignKeys(t.TableConstraints, c), + } + } + if t.ResourceTags != nil { + md.ResourceTags = make(map[string]string) + for k, v := range t.ResourceTags { + md.ResourceTags[k] = v + } + } + return md, nil +} + +// Delete deletes the table. +func (t *Table) Delete(ctx context.Context) (err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Table.Delete") + defer func() { trace.EndSpan(ctx, err) }() + + call := t.c.bqs.Tables.Delete(t.ProjectID, t.DatasetID, t.TableID).Context(ctx) + setClientHeader(call.Header()) + + return runWithRetry(ctx, func() (err error) { + ctx = trace.StartSpan(ctx, "bigquery.tables.delete") + err = call.Do() + trace.EndSpan(ctx, err) + return err + }) +} + +// Read fetches the contents of the table. +func (t *Table) Read(ctx context.Context) *RowIterator { + return t.read(ctx, fetchPage) +} + +func (t *Table) read(ctx context.Context, pf pageFetcher) *RowIterator { + if t.c.isStorageReadAvailable() { + it, err := newStorageRowIteratorFromTable(ctx, t, false) + if err == nil { + return it + } + } + return newRowIterator(ctx, &rowSource{t: t}, pf) +} + +// NeverExpire is a sentinel value used to remove a table'e expiration time. +var NeverExpire = time.Time{}.Add(-1) + +// We use this for the option pattern rather than exposing the underlying +// discovery type directly. +type tablePatchCall struct { + call *bq.TablesPatchCall +} + +// TableUpdateOption allow requests to update table metadata. +type TableUpdateOption func(*tablePatchCall) + +// WithAutoDetectSchema governs whether the schema autodetection occurs as part of the table update. +// This is relevant in cases like external tables where schema is detected from the source data. +func WithAutoDetectSchema(b bool) TableUpdateOption { + return func(tpc *tablePatchCall) { + tpc.call.AutodetectSchema(b) + } +} + +// Update modifies specific Table metadata fields. +func (t *Table) Update(ctx context.Context, tm TableMetadataToUpdate, etag string, opts ...TableUpdateOption) (md *TableMetadata, err error) { + ctx = trace.StartSpan(ctx, "cloud.google.com/go/bigquery.Table.Update") + defer func() { trace.EndSpan(ctx, err) }() + + bqt, err := tm.toBQ() + if err != nil { + return nil, err + } + + tpc := &tablePatchCall{ + call: t.c.bqs.Tables.Patch(t.ProjectID, t.DatasetID, t.TableID, bqt).Context(ctx), + } + + for _, o := range opts { + o(tpc) + } + + setClientHeader(tpc.call.Header()) + if etag != "" { + tpc.call.Header().Set("If-Match", etag) + } + var res *bq.Table + if err := runWithRetry(ctx, func() (err error) { + ctx = trace.StartSpan(ctx, "bigquery.tables.patch") + res, err = tpc.call.Do() + trace.EndSpan(ctx, err) + return err + }); err != nil { + return nil, err + } + return bqToTableMetadata(res, t.c) +} + +func (tm *TableMetadataToUpdate) toBQ() (*bq.Table, error) { + t := &bq.Table{} + forceSend := func(field string) { + t.ForceSendFields = append(t.ForceSendFields, field) + } + + if tm.Description != nil { + t.Description = optional.ToString(tm.Description) + forceSend("Description") + } + if tm.Name != nil { + t.FriendlyName = optional.ToString(tm.Name) + forceSend("FriendlyName") + } + if tm.MaterializedView != nil { + t.MaterializedView = tm.MaterializedView.toBQ() + forceSend("MaterializedView") + } + if tm.Schema != nil { + t.Schema = tm.Schema.toBQ() + forceSend("Schema") + } + if tm.EncryptionConfig != nil { + t.EncryptionConfiguration = tm.EncryptionConfig.toBQ() + } + if tm.ExternalDataConfig != nil { + cfg := tm.ExternalDataConfig.toBQ() + t.ExternalDataConfiguration = &cfg + } + + if tm.Clustering != nil { + t.Clustering = tm.Clustering.toBQ() + } + + if !validExpiration(tm.ExpirationTime) { + return nil, invalidTimeError(tm.ExpirationTime) + } + if tm.ExpirationTime == NeverExpire { + t.NullFields = append(t.NullFields, "ExpirationTime") + } else if !tm.ExpirationTime.IsZero() { + t.ExpirationTime = tm.ExpirationTime.UnixNano() / 1e6 + forceSend("ExpirationTime") + } + if tm.TimePartitioning != nil { + t.TimePartitioning = tm.TimePartitioning.toBQ() + t.TimePartitioning.ForceSendFields = []string{"RequirePartitionFilter"} + if tm.TimePartitioning.Expiration == 0 { + t.TimePartitioning.NullFields = []string{"ExpirationMs"} + } + } + if tm.RequirePartitionFilter != nil { + t.RequirePartitionFilter = optional.ToBool(tm.RequirePartitionFilter) + forceSend("RequirePartitionFilter") + } + if tm.ViewQuery != nil { + t.View = &bq.ViewDefinition{ + Query: optional.ToString(tm.ViewQuery), + ForceSendFields: []string{"Query"}, + } + } + if tm.UseLegacySQL != nil { + if t.View == nil { + t.View = &bq.ViewDefinition{} + } + t.View.UseLegacySql = optional.ToBool(tm.UseLegacySQL) + t.View.ForceSendFields = append(t.View.ForceSendFields, "UseLegacySql") + } + if tm.DefaultCollation != nil { + t.DefaultCollation = optional.ToString(tm.DefaultCollation) + forceSend("DefaultCollation") + } + if tm.TableConstraints != nil { + t.TableConstraints = &bq.TableConstraints{} + if tm.TableConstraints.PrimaryKey != nil { + t.TableConstraints.PrimaryKey = tm.TableConstraints.PrimaryKey.toBQ() + t.TableConstraints.PrimaryKey.ForceSendFields = append(t.TableConstraints.PrimaryKey.ForceSendFields, "Columns") + t.TableConstraints.ForceSendFields = append(t.TableConstraints.ForceSendFields, "PrimaryKey") + } + if tm.TableConstraints.ForeignKeys != nil { + t.TableConstraints.ForeignKeys = make([]*bq.TableConstraintsForeignKeys, len(tm.TableConstraints.ForeignKeys)) + for i, fk := range tm.TableConstraints.ForeignKeys { + t.TableConstraints.ForeignKeys[i] = fk.toBQ() + } + t.TableConstraints.ForceSendFields = append(t.TableConstraints.ForceSendFields, "ForeignKeys") + } + } + if tm.ResourceTags != nil { + t.ResourceTags = make(map[string]string) + for k, v := range tm.ResourceTags { + t.ResourceTags[k] = v + } + forceSend("ResourceTags") + } + labels, forces, nulls := tm.update() + t.Labels = labels + t.ForceSendFields = append(t.ForceSendFields, forces...) + t.NullFields = append(t.NullFields, nulls...) + return t, nil +} + +// validExpiration ensures a specified time is either the sentinel NeverExpire, +// the zero value, or within the defined range of UnixNano. Internal +// represetations of expiration times are based upon Time.UnixNano. Any time +// before 1678 or after 2262 cannot be represented by an int64 and is therefore +// undefined and invalid. See https://godoc.org/time#Time.UnixNano. +func validExpiration(t time.Time) bool { + return t == NeverExpire || t.IsZero() || time.Unix(0, t.UnixNano()).Equal(t) +} + +// invalidTimeError emits a consistent error message for failures of the +// validExpiration function. +func invalidTimeError(t time.Time) error { + return fmt.Errorf("invalid expiration time %v. "+ + "Valid expiration times are after 1678 and before 2262", t) +} + +// TableMetadataToUpdate is used when updating a table's metadata. +// Only non-nil fields will be updated. +type TableMetadataToUpdate struct { + // The user-friendly description of this table. + Description optional.String + + // The user-friendly name for this table. + Name optional.String + + // The table's schema. + // When updating a schema, you can add columns but not remove them. + Schema Schema + + // The table's clustering configuration. + // For more information on how modifying clustering affects the table, see: + // https://cloud.google.com/bigquery/docs/creating-clustered-tables#modifying-cluster-spec + Clustering *Clustering + + // The table's encryption configuration. + EncryptionConfig *EncryptionConfig + + // The time when this table expires. To remove a table's expiration, + // set ExpirationTime to NeverExpire. The zero value is ignored. + ExpirationTime time.Time + + // ExternalDataConfig controls the definition of a table defined against + // an external source, such as one based on files in Google Cloud Storage. + ExternalDataConfig *ExternalDataConfig + + // The query to use for a view. + ViewQuery optional.String + + // Use Legacy SQL for the view query. + UseLegacySQL optional.Bool + + // MaterializedView allows changes to the underlying materialized view + // definition. When calling Update, ensure that all mutable fields of + // MaterializedViewDefinition are populated. + MaterializedView *MaterializedViewDefinition + + // TimePartitioning allows modification of certain aspects of partition + // configuration such as partition expiration and whether partition + // filtration is required at query time. When calling Update, ensure + // that all mutable fields of TimePartitioning are populated. + TimePartitioning *TimePartitioning + + // RequirePartitionFilter governs whether the table enforces partition + // elimination when referenced in a query. + RequirePartitionFilter optional.Bool + + // Defines the default collation specification of new STRING fields + // in the table. + DefaultCollation optional.String + + // TableConstraints allows modification of table constraints + // such as primary and foreign keys. + TableConstraints *TableConstraints + + // The tags associated with this table. Tag + // keys are globally unique. See additional information on tags + // (https://cloud.google.com/iam/docs/tags-access-control#definitions). + // An object containing a list of "key": value pairs. The key is the + // namespaced friendly name of the tag key, e.g. "12345/environment" + // where 12345 is parent id. The value is the friendly short name of the + // tag value, e.g. "production". + ResourceTags map[string]string + + labelUpdater +} + +// labelUpdater contains common code for updating labels. +type labelUpdater struct { + setLabels map[string]string + deleteLabels map[string]bool +} + +// SetLabel causes a label to be added or modified on a call to Update. +func (u *labelUpdater) SetLabel(name, value string) { + if u.setLabels == nil { + u.setLabels = map[string]string{} + } + u.setLabels[name] = value +} + +// DeleteLabel causes a label to be deleted on a call to Update. +func (u *labelUpdater) DeleteLabel(name string) { + if u.deleteLabels == nil { + u.deleteLabels = map[string]bool{} + } + u.deleteLabels[name] = true +} + +func (u *labelUpdater) update() (labels map[string]string, forces, nulls []string) { + if u.setLabels == nil && u.deleteLabels == nil { + return nil, nil, nil + } + labels = map[string]string{} + for k, v := range u.setLabels { + labels[k] = v + } + if len(labels) == 0 && len(u.deleteLabels) > 0 { + forces = []string{"Labels"} + } + for l := range u.deleteLabels { + nulls = append(nulls, "Labels."+l) + } + return labels, forces, nulls +} diff --git a/vendor/cloud.google.com/go/bigquery/value.go b/vendor/cloud.google.com/go/bigquery/value.go new file mode 100644 index 000000000..34070d033 --- /dev/null +++ b/vendor/cloud.google.com/go/bigquery/value.go @@ -0,0 +1,993 @@ +// Copyright 2015 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquery + +import ( + "encoding/base64" + "errors" + "fmt" + "math/big" + "reflect" + "strconv" + "strings" + "time" + + "cloud.google.com/go/civil" + bq "google.golang.org/api/bigquery/v2" +) + +// Value stores the contents of a single cell from a BigQuery result. +type Value interface{} + +// ValueLoader stores a slice of Values representing a result row from a Read operation. +// See RowIterator.Next for more information. +type ValueLoader interface { + Load(v []Value, s Schema) error +} + +// valueList converts a []Value to implement ValueLoader. +type valueList []Value + +// Load stores a sequence of values in a valueList. +// It resets the slice length to zero, then appends each value to it. +func (vs *valueList) Load(v []Value, _ Schema) error { + *vs = append((*vs)[:0], v...) + return nil +} + +// valueMap converts a map[string]Value to implement ValueLoader. +type valueMap map[string]Value + +// Load stores a sequence of values in a valueMap. +func (vm *valueMap) Load(v []Value, s Schema) error { + if *vm == nil { + *vm = map[string]Value{} + } + loadMap(*vm, v, s) + return nil +} + +func loadMap(m map[string]Value, vals []Value, s Schema) { + for i, f := range s { + val := vals[i] + var v interface{} + switch { + case val == nil: + v = val + case f.Schema == nil: + v = val + case !f.Repeated: + m2 := map[string]Value{} + loadMap(m2, val.([]Value), f.Schema) + v = m2 + default: // repeated and nested + sval := val.([]Value) + vs := make([]Value, len(sval)) + for j, e := range sval { + m2 := map[string]Value{} + loadMap(m2, e.([]Value), f.Schema) + vs[j] = m2 + } + v = vs + } + + m[f.Name] = v + } +} + +type structLoader struct { + typ reflect.Type // type of struct + err error + ops []structLoaderOp + + vstructp reflect.Value // pointer to current struct value; changed by set +} + +// A setFunc is a function that sets a struct field or slice/array +// element to a value. +type setFunc func(v reflect.Value, val interface{}) error + +// A structLoaderOp instructs the loader to set a struct field to a row value. +type structLoaderOp struct { + fieldIndex []int + valueIndex int + setFunc setFunc + repeated bool +} + +var errNoNulls = errors.New("bigquery: NULL values cannot be read into structs") + +func setAny(v reflect.Value, x interface{}) error { + if x == nil { + return errNoNulls + } + v.Set(reflect.ValueOf(x)) + return nil +} + +func setInt(v reflect.Value, x interface{}) error { + if x == nil { + return errNoNulls + } + xx := x.(int64) + if v.OverflowInt(xx) { + return fmt.Errorf("bigquery: value %v overflows struct field of type %v", xx, v.Type()) + } + v.SetInt(xx) + return nil +} + +func setUint(v reflect.Value, x interface{}) error { + if x == nil { + return errNoNulls + } + xx := x.(int64) + if xx < 0 || v.OverflowUint(uint64(xx)) { + return fmt.Errorf("bigquery: value %v overflows struct field of type %v", xx, v.Type()) + } + v.SetUint(uint64(xx)) + return nil +} + +func setFloat(v reflect.Value, x interface{}) error { + if x == nil { + return errNoNulls + } + xx := x.(float64) + if v.OverflowFloat(xx) { + return fmt.Errorf("bigquery: value %v overflows struct field of type %v", xx, v.Type()) + } + v.SetFloat(xx) + return nil +} + +func setBool(v reflect.Value, x interface{}) error { + if x == nil { + return errNoNulls + } + v.SetBool(x.(bool)) + return nil +} + +func setString(v reflect.Value, x interface{}) error { + if x == nil { + return errNoNulls + } + v.SetString(x.(string)) + return nil +} + +func setGeography(v reflect.Value, x interface{}) error { + if x == nil { + return errNoNulls + } + v.SetString(x.(string)) + return nil +} + +func setJSON(v reflect.Value, x interface{}) error { + if x == nil { + return errNoNulls + } + v.SetString(x.(string)) + return nil +} + +func setBytes(v reflect.Value, x interface{}) error { + if x == nil { + v.SetBytes(nil) + } else { + v.SetBytes(x.([]byte)) + } + return nil +} + +func setNull(v reflect.Value, x interface{}, build func() interface{}) error { + if x == nil { + v.Set(reflect.Zero(v.Type())) + } else { + n := build() + v.Set(reflect.ValueOf(n)) + } + return nil +} + +// set remembers a value for the next call to Load. The value must be +// a pointer to a struct. (This is checked in RowIterator.Next.) +func (sl *structLoader) set(structp interface{}, schema Schema) error { + if sl.err != nil { + return sl.err + } + sl.vstructp = reflect.ValueOf(structp) + typ := sl.vstructp.Type().Elem() + if sl.typ == nil { + // First call: remember the type and compile the schema. + sl.typ = typ + ops, err := compileToOps(typ, schema) + if err != nil { + sl.err = err + return err + } + sl.ops = ops + } else if sl.typ != typ { + return fmt.Errorf("bigquery: struct type changed from %s to %s", sl.typ, typ) + } + return nil +} + +// compileToOps produces a sequence of operations that will set the fields of a +// value of structType to the contents of a row with schema. +func compileToOps(structType reflect.Type, schema Schema) ([]structLoaderOp, error) { + var ops []structLoaderOp + fields, err := fieldCache.Fields(structType) + if err != nil { + return nil, err + } + for i, schemaField := range schema { + // Look for an exported struct field with the same name as the schema + // field, ignoring case (BigQuery column names are case-insensitive, + // and we want to act like encoding/json anyway). + structField := fields.Match(schemaField.Name) + if structField == nil { + // Ignore schema fields with no corresponding struct field. + continue + } + op := structLoaderOp{ + fieldIndex: structField.Index, + valueIndex: i, + } + t := structField.Type + if schemaField.Repeated { + if t.Kind() != reflect.Slice && t.Kind() != reflect.Array { + return nil, fmt.Errorf("bigquery: repeated schema field %s requires slice or array, but struct field %s has type %s", + schemaField.Name, structField.Name, t) + } + t = t.Elem() + op.repeated = true + } + if schemaField.Type == RecordFieldType { + // Field can be a struct or a pointer to a struct. + if t.Kind() == reflect.Ptr { + t = t.Elem() + } + if t.Kind() != reflect.Struct { + return nil, fmt.Errorf("bigquery: field %s has type %s, expected struct or *struct", + structField.Name, structField.Type) + } + nested, err := compileToOps(t, schemaField.Schema) + if err != nil { + return nil, err + } + op.setFunc = func(v reflect.Value, val interface{}) error { + return setNested(nested, v, val) + } + } else { + op.setFunc = determineSetFunc(t, schemaField.Type) + if op.setFunc == nil { + return nil, fmt.Errorf("bigquery: schema field %s of type %s is not assignable to struct field %s of type %s", + schemaField.Name, schemaField.Type, structField.Name, t) + } + } + ops = append(ops, op) + } + return ops, nil +} + +// determineSetFunc chooses the best function for setting a field of type ftype +// to a value whose schema field type is stype. It returns nil if stype +// is not assignable to ftype. +// determineSetFunc considers only basic types. See compileToOps for +// handling of repetition and nesting. +func determineSetFunc(ftype reflect.Type, stype FieldType) setFunc { + switch stype { + case StringFieldType: + if ftype.Kind() == reflect.String { + return setString + } + if ftype == typeOfNullString { + return func(v reflect.Value, x interface{}) error { + return setNull(v, x, func() interface{} { + return NullString{StringVal: x.(string), Valid: true} + }) + } + } + + case GeographyFieldType: + if ftype.Kind() == reflect.String { + return setGeography + } + if ftype == typeOfNullGeography { + return func(v reflect.Value, x interface{}) error { + return setNull(v, x, func() interface{} { + return NullGeography{GeographyVal: x.(string), Valid: true} + }) + } + } + + case JSONFieldType: + if ftype.Kind() == reflect.String { + return setJSON + } + if ftype == typeOfNullJSON { + return func(v reflect.Value, x interface{}) error { + return setNull(v, x, func() interface{} { + return NullJSON{JSONVal: x.(string), Valid: true} + }) + } + } + + case BytesFieldType: + if ftype == typeOfByteSlice { + return setBytes + } + + case IntegerFieldType: + if isSupportedUintType(ftype) { + return setUint + } else if isSupportedIntType(ftype) { + return setInt + } + if ftype == typeOfNullInt64 { + return func(v reflect.Value, x interface{}) error { + return setNull(v, x, func() interface{} { + return NullInt64{Int64: x.(int64), Valid: true} + }) + } + } + + case FloatFieldType: + switch ftype.Kind() { + case reflect.Float32, reflect.Float64: + return setFloat + } + if ftype == typeOfNullFloat64 { + return func(v reflect.Value, x interface{}) error { + return setNull(v, x, func() interface{} { + return NullFloat64{Float64: x.(float64), Valid: true} + }) + } + } + + case BooleanFieldType: + if ftype.Kind() == reflect.Bool { + return setBool + } + if ftype == typeOfNullBool { + return func(v reflect.Value, x interface{}) error { + return setNull(v, x, func() interface{} { + return NullBool{Bool: x.(bool), Valid: true} + }) + } + } + + case TimestampFieldType: + if ftype == typeOfGoTime { + return setAny + } + if ftype == typeOfNullTimestamp { + return func(v reflect.Value, x interface{}) error { + return setNull(v, x, func() interface{} { + return NullTimestamp{Timestamp: x.(time.Time), Valid: true} + }) + } + } + + case DateFieldType: + if ftype == typeOfDate { + return setAny + } + if ftype == typeOfNullDate { + return func(v reflect.Value, x interface{}) error { + return setNull(v, x, func() interface{} { + return NullDate{Date: x.(civil.Date), Valid: true} + }) + } + } + + case TimeFieldType: + if ftype == typeOfTime { + return setAny + } + if ftype == typeOfNullTime { + return func(v reflect.Value, x interface{}) error { + return setNull(v, x, func() interface{} { + return NullTime{Time: x.(civil.Time), Valid: true} + }) + } + } + + case DateTimeFieldType: + if ftype == typeOfDateTime { + return setAny + } + if ftype == typeOfNullDateTime { + return func(v reflect.Value, x interface{}) error { + return setNull(v, x, func() interface{} { + return NullDateTime{DateTime: x.(civil.DateTime), Valid: true} + }) + } + } + + case NumericFieldType: + if ftype == typeOfRat { + return func(v reflect.Value, x interface{}) error { + return setNull(v, x, func() interface{} { return x.(*big.Rat) }) + } + } + + case BigNumericFieldType: + if ftype == typeOfRat { + return func(v reflect.Value, x interface{}) error { + return setNull(v, x, func() interface{} { return x.(*big.Rat) }) + } + } + } + return nil +} + +func (sl *structLoader) Load(values []Value, _ Schema) error { + if sl.err != nil { + return sl.err + } + return runOps(sl.ops, sl.vstructp.Elem(), values) +} + +// runOps executes a sequence of ops, setting the fields of vstruct to the +// supplied values. +func runOps(ops []structLoaderOp, vstruct reflect.Value, values []Value) error { + for _, op := range ops { + field := vstruct.FieldByIndex(op.fieldIndex) + var err error + if op.repeated { + err = setRepeated(field, values[op.valueIndex].([]Value), op.setFunc) + } else { + err = op.setFunc(field, values[op.valueIndex]) + if errors.Is(err, errNoNulls) { + f := vstruct.Type().FieldByIndex(op.fieldIndex) + err = fmt.Errorf("bigquery: NULL cannot be assigned to field `%s` of type %s", f.Name, f.Type.Name()) + } + } + if err != nil { + return err + } + } + return nil +} + +func setNested(ops []structLoaderOp, v reflect.Value, val interface{}) error { + // v is either a struct or a pointer to a struct. + if v.Kind() == reflect.Ptr { + // If the value is nil, set the pointer to nil. + if val == nil { + v.Set(reflect.Zero(v.Type())) + return nil + } + // If the pointer is nil, set it to a zero struct value. + if v.IsNil() { + v.Set(reflect.New(v.Type().Elem())) + } + v = v.Elem() + } + return runOps(ops, v, val.([]Value)) +} + +func setRepeated(field reflect.Value, vslice []Value, setElem setFunc) error { + vlen := len(vslice) + var flen int + switch field.Type().Kind() { + case reflect.Slice: + // Make a slice of the right size, avoiding allocation if possible. + switch { + case field.Len() < vlen: + field.Set(reflect.MakeSlice(field.Type(), vlen, vlen)) + case field.Len() > vlen: + field.SetLen(vlen) + } + flen = vlen + + case reflect.Array: + flen = field.Len() + if flen > vlen { + // Set extra elements to their zero value. + z := reflect.Zero(field.Type().Elem()) + for i := vlen; i < flen; i++ { + field.Index(i).Set(z) + } + } + default: + return fmt.Errorf("bigquery: impossible field type %s", field.Type()) + } + for i, val := range vslice { + if i < flen { // avoid writing past the end of a short array + if err := setElem(field.Index(i), val); err != nil { + return err + } + } + } + return nil +} + +// A ValueSaver returns a row of data to be inserted into a table. +type ValueSaver interface { + // Save returns a row to be inserted into a BigQuery table, represented + // as a map from field name to Value. + // The insertID governs the best-effort deduplication feature of + // BigQuery streaming inserts. + // + // If the insertID is empty, a random insertID will be generated by + // this library to facilitate deduplication. + // + // If the insertID is set to the sentinel value NoDedupeID, an insertID + // is not sent. + // + // For all other non-empty values, BigQuery will use the provided + // value for best-effort deduplication. + Save() (row map[string]Value, insertID string, err error) +} + +// ValuesSaver implements ValueSaver for a slice of Values. +type ValuesSaver struct { + Schema Schema + + // InsertID governs the best-effort deduplication feature of + // BigQuery streaming inserts. + // + // If the InsertID is empty, a random insertID will be generated by + // this library to facilitate deduplication. + // + // If the InsertID is set to the sentinel value NoDedupeID, an insertID + // is not sent. + // + // For all other non-empty values, BigQuery will use the provided + // value for best-effort deduplication. + InsertID string + + Row []Value +} + +// Save implements ValueSaver. +func (vls *ValuesSaver) Save() (map[string]Value, string, error) { + m, err := valuesToMap(vls.Row, vls.Schema) + return m, vls.InsertID, err +} + +func valuesToMap(vs []Value, schema Schema) (map[string]Value, error) { + if len(vs) != len(schema) { + return nil, errors.New("schema does not match length of row to be inserted") + } + + m := make(map[string]Value) + for i, fieldSchema := range schema { + if vs[i] == nil { + m[fieldSchema.Name] = nil + continue + } + if fieldSchema.Type != RecordFieldType { + m[fieldSchema.Name] = toUploadValue(vs[i], fieldSchema) + continue + } + // Nested record, possibly repeated. + vals, ok := vs[i].([]Value) + if !ok { + return nil, errors.New("nested record is not a []Value") + } + if !fieldSchema.Repeated { + value, err := valuesToMap(vals, fieldSchema.Schema) + if err != nil { + return nil, err + } + m[fieldSchema.Name] = value + continue + } + // A repeated nested field is converted into a slice of maps. + maps := []Value{} + for _, v := range vals { + sv, ok := v.([]Value) + if !ok { + return nil, errors.New("nested record in slice is not a []Value") + } + value, err := valuesToMap(sv, fieldSchema.Schema) + if err != nil { + return nil, err + } + maps = append(maps, value) + } + m[fieldSchema.Name] = maps + } + return m, nil +} + +// StructSaver implements ValueSaver for a struct. +// The struct is converted to a map of values by using the values of struct +// fields corresponding to schema fields. Additional and missing +// fields are ignored, as are nested struct pointers that are nil. +type StructSaver struct { + // Schema determines what fields of the struct are uploaded. It should + // match the table's schema. + // Schema is optional for StructSavers that are passed to Uploader.Put. + Schema Schema + + // InsertID governs the best-effort deduplication feature of + // BigQuery streaming inserts. + // + // If the InsertID is empty, a random InsertID will be generated by + // this library to facilitate deduplication. + // + // If the InsertID is set to the sentinel value NoDedupeID, an InsertID + // is not sent. + // + // For all other non-empty values, BigQuery will use the provided + // value for best-effort deduplication. + InsertID string + + // Struct should be a struct or a pointer to a struct. + Struct interface{} +} + +// Save implements ValueSaver. +func (ss *StructSaver) Save() (row map[string]Value, insertID string, err error) { + vstruct := reflect.ValueOf(ss.Struct) + row, err = structToMap(vstruct, ss.Schema) + if err != nil { + return nil, "", err + } + return row, ss.InsertID, nil +} + +func structToMap(vstruct reflect.Value, schema Schema) (map[string]Value, error) { + if vstruct.Kind() == reflect.Ptr { + vstruct = vstruct.Elem() + } + if !vstruct.IsValid() { + return nil, nil + } + m := map[string]Value{} + if vstruct.Kind() != reflect.Struct { + return nil, fmt.Errorf("bigquery: type is %s, need struct or struct pointer", vstruct.Type()) + } + fields, err := fieldCache.Fields(vstruct.Type()) + if err != nil { + return nil, err + } + for _, schemaField := range schema { + // Look for an exported struct field with the same name as the schema + // field, ignoring case. + structField := fields.Match(schemaField.Name) + if structField == nil { + continue + } + val, err := structFieldToUploadValue(vstruct.FieldByIndex(structField.Index), schemaField) + if err != nil { + return nil, err + } + // Add the value to the map, unless it is nil. + if val != nil { + m[schemaField.Name] = val + } + } + return m, nil +} + +// structFieldToUploadValue converts a struct field to a value suitable for ValueSaver.Save, using +// the schemaField as a guide. +// structFieldToUploadValue is careful to return a true nil interface{} when needed, so its +// caller can easily identify a nil value. +func structFieldToUploadValue(vfield reflect.Value, schemaField *FieldSchema) (interface{}, error) { + if schemaField.Repeated && (vfield.Kind() != reflect.Slice && vfield.Kind() != reflect.Array) { + return nil, fmt.Errorf("bigquery: repeated schema field %s requires slice or array, but value has type %s", + schemaField.Name, vfield.Type()) + } + + // A non-nested field can be represented by its Go value, except for some types. + if schemaField.Type != RecordFieldType { + return toUploadValueReflect(vfield, schemaField), nil + } + // A non-repeated nested field is converted into a map[string]Value. + if !schemaField.Repeated { + m, err := structToMap(vfield, schemaField.Schema) + if err != nil { + return nil, err + } + if m == nil { + return nil, nil + } + return m, nil + } + // A repeated nested field is converted into a slice of maps. + // If the field is zero-length (but not nil), we return a zero-length []Value. + if vfield.IsNil() { + return nil, nil + } + vals := []Value{} + for i := 0; i < vfield.Len(); i++ { + m, err := structToMap(vfield.Index(i), schemaField.Schema) + if err != nil { + return nil, err + } + vals = append(vals, m) + } + return vals, nil +} + +func toUploadValue(val interface{}, fs *FieldSchema) interface{} { + if fs.Type == TimeFieldType || fs.Type == DateTimeFieldType || fs.Type == NumericFieldType || fs.Type == BigNumericFieldType { + return toUploadValueReflect(reflect.ValueOf(val), fs) + } + return val +} + +func toUploadValueReflect(v reflect.Value, fs *FieldSchema) interface{} { + switch fs.Type { + case TimeFieldType: + if v.Type() == typeOfNullTime { + return v.Interface() + } + return formatUploadValue(v, fs, func(v reflect.Value) string { + return CivilTimeString(v.Interface().(civil.Time)) + }) + case DateTimeFieldType: + if v.Type() == typeOfNullDateTime { + return v.Interface() + } + return formatUploadValue(v, fs, func(v reflect.Value) string { + return CivilDateTimeString(v.Interface().(civil.DateTime)) + }) + case NumericFieldType: + if r, ok := v.Interface().(*big.Rat); ok && r == nil { + return nil + } + return formatUploadValue(v, fs, func(v reflect.Value) string { + return NumericString(v.Interface().(*big.Rat)) + }) + case BigNumericFieldType: + if r, ok := v.Interface().(*big.Rat); ok && r == nil { + return nil + } + return formatUploadValue(v, fs, func(v reflect.Value) string { + return BigNumericString(v.Interface().(*big.Rat)) + }) + case IntervalFieldType: + if r, ok := v.Interface().(*IntervalValue); ok && r == nil { + return nil + } + return formatUploadValue(v, fs, func(v reflect.Value) string { + return IntervalString(v.Interface().(*IntervalValue)) + }) + default: + if !fs.Repeated || v.Len() > 0 { + return v.Interface() + } + // The service treats a null repeated field as an error. Return + // nil to omit the field entirely. + return nil + } +} + +func formatUploadValue(v reflect.Value, fs *FieldSchema, cvt func(reflect.Value) string) interface{} { + if !fs.Repeated { + return cvt(v) + } + if v.Len() == 0 { + return nil + } + s := make([]string, v.Len()) + for i := 0; i < v.Len(); i++ { + s[i] = cvt(v.Index(i)) + } + return s +} + +// CivilTimeString returns a string representing a civil.Time in a format compatible +// with BigQuery SQL. It rounds the time to the nearest microsecond and returns a +// string with six digits of sub-second precision. +// +// Use CivilTimeString when using civil.Time in DML, for example in INSERT +// statements. +func CivilTimeString(t civil.Time) string { + if t.Nanosecond == 0 { + return t.String() + } + micro := (t.Nanosecond + 500) / 1000 // round to nearest microsecond + t.Nanosecond = 0 + return t.String() + fmt.Sprintf(".%06d", micro) +} + +// CivilDateTimeString returns a string representing a civil.DateTime in a format compatible +// with BigQuery SQL. It separate the date and time with a space, and formats the time +// with CivilTimeString. +// +// Use CivilDateTimeString when using civil.DateTime in DML, for example in INSERT +// statements. +func CivilDateTimeString(dt civil.DateTime) string { + return dt.Date.String() + " " + CivilTimeString(dt.Time) +} + +// parseCivilDateTime parses a date-time represented in a BigQuery SQL +// compatible format and returns a civil.DateTime. +func parseCivilDateTime(s string) (civil.DateTime, error) { + parts := strings.Fields(s) + if len(parts) != 2 { + return civil.DateTime{}, fmt.Errorf("bigquery: bad DATETIME value %q", s) + } + return civil.ParseDateTime(parts[0] + "T" + parts[1]) +} + +const ( + // NumericPrecisionDigits is the maximum number of digits in a NUMERIC value. + NumericPrecisionDigits = 38 + + // NumericScaleDigits is the maximum number of digits after the decimal point in a NUMERIC value. + NumericScaleDigits = 9 + + // BigNumericPrecisionDigits is the maximum number of full digits in a BIGNUMERIC value. + BigNumericPrecisionDigits = 76 + + // BigNumericScaleDigits is the maximum number of full digits in a BIGNUMERIC value. + BigNumericScaleDigits = 38 +) + +// NumericString returns a string representing a *big.Rat in a format compatible +// with BigQuery SQL. It returns a floating-point literal with 9 digits +// after the decimal point. +func NumericString(r *big.Rat) string { + return r.FloatString(NumericScaleDigits) +} + +// BigNumericString returns a string representing a *big.Rat in a format compatible with BigQuery +// SQL. It returns a floating point literal with 38 digits after the decimal point. +func BigNumericString(r *big.Rat) string { + return r.FloatString(BigNumericScaleDigits) +} + +// IntervalString returns a string representing an *IntervalValue in a format compatible with +// BigQuery SQL. It returns an interval literal in canonical format. +func IntervalString(iv *IntervalValue) string { + return iv.String() +} + +// convertRows converts a series of TableRows into a series of Value slices. +// schema is used to interpret the data from rows; its length must match the +// length of each row. +func convertRows(rows []*bq.TableRow, schema Schema) ([][]Value, error) { + var rs [][]Value + for _, r := range rows { + row, err := convertRow(r, schema) + if err != nil { + return nil, err + } + rs = append(rs, row) + } + return rs, nil +} + +func convertRow(r *bq.TableRow, schema Schema) ([]Value, error) { + if len(schema) != len(r.F) { + return nil, errors.New("schema length does not match row length") + } + var values []Value + for i, cell := range r.F { + fs := schema[i] + v, err := convertValue(cell.V, fs.Type, fs.Schema) + if err != nil { + return nil, err + } + values = append(values, v) + } + return values, nil +} + +func convertValue(val interface{}, typ FieldType, schema Schema) (Value, error) { + switch val := val.(type) { + case nil: + return nil, nil + case []interface{}: + return convertRepeatedRecord(val, typ, schema) + case map[string]interface{}: + return convertNestedRecord(val, schema) + case string: + return convertBasicType(val, typ) + default: + return nil, fmt.Errorf("got value %v; expected a value of type %s", val, typ) + } +} + +func convertRepeatedRecord(vals []interface{}, typ FieldType, schema Schema) (Value, error) { + var values []Value + for _, cell := range vals { + // each cell contains a single entry, keyed by "v" + val := cell.(map[string]interface{})["v"] + v, err := convertValue(val, typ, schema) + if err != nil { + return nil, err + } + values = append(values, v) + } + return values, nil +} + +func convertNestedRecord(val map[string]interface{}, schema Schema) (Value, error) { + // convertNestedRecord is similar to convertRow, as a record has the same structure as a row. + + // Nested records are wrapped in a map with a single key, "f". + record := val["f"].([]interface{}) + if len(record) != len(schema) { + return nil, errors.New("schema length does not match record length") + } + + var values []Value + for i, cell := range record { + // each cell contains a single entry, keyed by "v" + val := cell.(map[string]interface{})["v"] + fs := schema[i] + v, err := convertValue(val, fs.Type, fs.Schema) + if err != nil { + return nil, err + } + values = append(values, v) + } + return values, nil +} + +// convertBasicType returns val as an interface with a concrete type specified by typ. +func convertBasicType(val string, typ FieldType) (Value, error) { + switch typ { + case StringFieldType: + return val, nil + case BytesFieldType: + return base64.StdEncoding.DecodeString(val) + case IntegerFieldType: + return strconv.ParseInt(val, 10, 64) + case FloatFieldType: + return strconv.ParseFloat(val, 64) + case BooleanFieldType: + return strconv.ParseBool(val) + case TimestampFieldType: + i, err := strconv.ParseInt(val, 10, 64) + if err != nil { + return nil, err + } + return time.UnixMicro(i).UTC(), nil + case DateFieldType: + return civil.ParseDate(val) + case TimeFieldType: + return civil.ParseTime(val) + case DateTimeFieldType: + return civil.ParseDateTime(val) + case NumericFieldType: + r, ok := (&big.Rat{}).SetString(val) + if !ok { + return nil, fmt.Errorf("bigquery: invalid NUMERIC value %q", val) + } + return Value(r), nil + case BigNumericFieldType: + r, ok := (&big.Rat{}).SetString(val) + if !ok { + return nil, fmt.Errorf("bigquery: invalid BIGNUMERIC value %q", val) + } + return Value(r), nil + case GeographyFieldType: + return val, nil + case JSONFieldType: + return val, nil + case IntervalFieldType: + i, err := ParseInterval(val) + if err != nil { + return nil, fmt.Errorf("bigquery: invalid INTERVAL value %q", val) + } + return Value(i), nil + default: + return nil, fmt.Errorf("unrecognized type: %s", typ) + } +} diff --git a/vendor/cloud.google.com/go/internal/uid/uid.go b/vendor/cloud.google.com/go/internal/uid/uid.go new file mode 100644 index 000000000..2f229d647 --- /dev/null +++ b/vendor/cloud.google.com/go/internal/uid/uid.go @@ -0,0 +1,149 @@ +// Copyright 2017 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package uid supports generating unique IDs. Its chief purpose is to prevent +// multiple test executions from interfering with each other, and to facilitate +// cleanup of old entities that may remain if tests exit early. +package uid + +import ( + "fmt" + "regexp" + "strconv" + "sync/atomic" + "time" +) + +// A Space manages a set of unique IDs distinguished by a prefix. +type Space struct { + Prefix string // Prefix of UIDs. Read-only. + Sep rune // Separates UID parts. Read-only. + Time time.Time // Timestamp for UIDs. Read-only. + re *regexp.Regexp + count int32 // atomic + short bool +} + +// Options are optional values for a Space. +type Options struct { + Sep rune // Separates parts of the UID. Defaults to '-'. + Time time.Time // Timestamp for all UIDs made with this space. Defaults to current time. + + // Short, if true, makes the result of space.New shorter by 6 characters. + // This can be useful for character restricted IDs. It will use a shorter + // but less readable time representation, and will only use two characters + // for the count suffix instead of four. + // + // e.x. normal: gotest-20181030-59751273685000-0001 + // e.x. short: gotest-1540917351273685000-01 + Short bool +} + +// NewSpace creates a new UID space. A UID Space is used to generate unique IDs. +func NewSpace(prefix string, opts *Options) *Space { + var short bool + sep := '-' + tm := time.Now().UTC() + if opts != nil { + short = opts.Short + if opts.Sep != 0 { + sep = opts.Sep + } + if !opts.Time.IsZero() { + tm = opts.Time + } + } + var re string + + if short { + re = fmt.Sprintf(`^%s%[2]c(\d+)%[2]c\d+$`, regexp.QuoteMeta(prefix), sep) + } else { + re = fmt.Sprintf(`^%s%[2]c(\d{4})(\d{2})(\d{2})%[2]c(\d+)%[2]c\d+$`, + regexp.QuoteMeta(prefix), sep) + } + + return &Space{ + Prefix: prefix, + Sep: sep, + Time: tm, + re: regexp.MustCompile(re), + short: short, + } +} + +// New generates a new unique ID. The ID consists of the Space's prefix, a +// timestamp, and a counter value. All unique IDs generated in the same test +// execution will have the same timestamp. +// +// Aside from the characters in the prefix, IDs contain only letters, numbers +// and sep. +func (s *Space) New() string { + c := atomic.AddInt32(&s.count, 1) + + if s.short && c > 99 { + // Short spaces only have space for 99 IDs. (two characters) + panic("Short space called New more than 99 times. Ran out of IDs.") + } else if c > 9999 { + // Spaces only have space for 9999 IDs. (four characters) + panic("New called more than 9999 times. Ran out of IDs.") + } + + if s.short { + return fmt.Sprintf("%s%c%d%c%02d", s.Prefix, s.Sep, s.Time.UnixNano(), s.Sep, c) + } + + // Write the time as a date followed by nanoseconds from midnight of that date. + // That makes it easier to see the approximate time of the ID when it is displayed. + y, m, d := s.Time.Date() + ns := s.Time.Sub(time.Date(y, m, d, 0, 0, 0, 0, time.UTC)) + // Zero-pad the counter for lexical sort order for IDs with the same timestamp. + return fmt.Sprintf("%s%c%04d%02d%02d%c%d%c%04d", + s.Prefix, s.Sep, y, m, d, s.Sep, ns, s.Sep, c) +} + +// Timestamp extracts the timestamp of uid, which must have been generated by +// s. The second return value is true on success, false if there was a problem. +func (s *Space) Timestamp(uid string) (time.Time, bool) { + subs := s.re.FindStringSubmatch(uid) + if subs == nil { + return time.Time{}, false + } + + if s.short { + ns, err := strconv.ParseInt(subs[1], 10, 64) + if err != nil { + return time.Time{}, false + } + return time.Unix(ns/1e9, ns%1e9), true + } + + y, err1 := strconv.Atoi(subs[1]) + m, err2 := strconv.Atoi(subs[2]) + d, err3 := strconv.Atoi(subs[3]) + ns, err4 := strconv.Atoi(subs[4]) + if err1 != nil || err2 != nil || err3 != nil || err4 != nil { + return time.Time{}, false + } + return time.Date(y, time.Month(m), d, 0, 0, 0, ns, time.UTC), true +} + +// Older reports whether uid was created by m and has a timestamp older than +// the current time by at least d. +func (s *Space) Older(uid string, d time.Duration) bool { + ts, ok := s.Timestamp(uid) + if !ok { + return false + } + return time.Since(ts) > d +} -- cgit mrf-deployment