From cdee2d918015c9b0a53aa8283085214d9a11c77c Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 25 Jul 2023 17:04:14 +0000 Subject: [PATCH] feat(dataplex): new service DataTaxonomyService and related messages (#8320) - [ ] Regenerate this pull request now. feat: DataProfileSpec message with DataProfileScan related settings feat: added TopNValue.ratio feat: added DataQualitySpec.sampling_percent, row_filter feat: added DataQualityRule.name, description feat: added ListDataScanJobsRequest.filter to filter ListDataScanJob results feat: added JobEvent.execution_trigger feat: added DataScanEvent.data_profile_configs, data_quality_configs, post_scan_actions_result feat: added RunTaskRequest.labels, args feat: added Job.labels, trigger, execution_spec PiperOrigin-RevId: 550722409 Source-Link: https://togithub.com/googleapis/googleapis/commit/eb16ce42d4078d73ab41340ec71407eba1d86ec3 Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/6dbf8031492cbf276c153d24702848489dd8412d Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNmRiZjgwMzE0OTJjYmYyNzZjMTUzZDI0NzAyODQ4NDg5ZGQ4NDEyZCJ9 BEGIN_NESTED_COMMIT docs(cloudtasks): minor formatting PiperOrigin-RevId: 550624166 Source-Link: https://togithub.com/googleapis/googleapis/commit/ff73e5d3aa1edc9c51c804b736ddcb70020e2854 Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/7254cdd571ec30b781b8b07550bd028e28690781 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNzI1NGNkZDU3MWVjMzBiNzgxYjhiMDc1NTBiZDAyOGUyODY5MDc4MSJ9 END_NESTED_COMMIT --- .release-please-manifest-submodules.json | 1 + .../apiv2beta3/cloudtaskspb/target.pb.go | 2 +- commerce/CHANGES.md | 1 + commerce/README.md | 44 + .../apiv1/consumer_procurement_client.go | 930 +++++ ...onsumer_procurement_client_example_test.go | 171 + commerce/consumer/procurement/apiv1/doc.go | 143 + .../procurement/apiv1/gapic_metadata.json | 63 + .../apiv1/procurementpb/order.pb.go | 1275 ++++++ .../procurementpb/procurement_service.pb.go | 806 ++++ .../consumer/procurement/apiv1/version.go | 23 + commerce/go.mod | 32 + commerce/go.sum | 197 + commerce/internal/version.go | 20 + dataplex/apiv1/data_taxonomy_client.go | 1675 ++++++++ .../data_taxonomy_client_example_test.go | 634 +++ dataplex/apiv1/dataplexpb/data_profile.pb.go | 869 +++- dataplex/apiv1/dataplexpb/data_quality.pb.go | 1006 +++-- dataplex/apiv1/dataplexpb/data_taxonomy.pb.go | 3541 +++++++++++++++++ dataplex/apiv1/dataplexpb/datascans.pb.go | 579 +-- dataplex/apiv1/dataplexpb/logs.pb.go | 1587 ++++++-- dataplex/apiv1/dataplexpb/security.pb.go | 269 ++ dataplex/apiv1/dataplexpb/service.pb.go | 1263 +++--- dataplex/apiv1/dataplexpb/tasks.pb.go | 259 +- dataplex/apiv1/gapic_metadata.json | 114 + go.work | 1 + go.work.sum | 8 + internal/.repo-metadata-full.json | 10 + ....google.ai.generativelanguage.v1beta2.json | 2 +- ...google.cloud.bigquery.analyticshub.v1.json | 2 +- ...a.google.cloud.bigquery.connection.v1.json | 2 +- ...gle.cloud.bigquery.connection.v1beta1.json | 2 +- ...e.cloud.bigquery.dataexchange.v1beta1.json | 2 +- ...google.cloud.bigquery.datapolicies.v1.json | 2 +- ...e.cloud.bigquery.datapolicies.v1beta1.json | 2 +- ...google.cloud.bigquery.datatransfer.v1.json | 2 +- ...ta.google.cloud.bigquery.migration.v2.json | 2 +- ...ogle.cloud.bigquery.migration.v2alpha.json | 2 +- ....google.cloud.bigquery.reservation.v1.json | 2 +- ...data.google.cloud.bigquery.storage.v1.json | 2 +- ...google.cloud.bigquery.storage.v1beta1.json | 2 +- ...google.cloud.bigquery.storage.v1beta2.json | 2 +- ...etadata.google.devtools.cloudbuild.v1.json | 2 +- ...etadata.google.devtools.cloudbuild.v2.json | 2 +- .../GetOperation/main.go | 53 + .../GetOrder/main.go | 53 + .../ListOrders/main.go | 60 + .../PlaceOrder/main.go | 58 + ...loud.commerce.consumer.procurement.v1.json | 199 + ...google.cloud.confidentialcomputing.v1.json | 2 +- ....cloud.confidentialcomputing.v1alpha1.json | 2 +- .../CancelOperation/main.go | 51 + .../CreateDataAttribute/main.go | 58 + .../CreateDataAttributeBinding/main.go | 58 + .../CreateDataTaxonomy/main.go | 58 + .../DeleteDataAttribute/main.go | 56 + .../DeleteDataAttributeBinding/main.go | 56 + .../DeleteDataTaxonomy/main.go | 56 + .../DeleteOperation/main.go | 51 + .../GetDataAttribute/main.go | 53 + .../GetDataAttributeBinding/main.go | 53 + .../GetDataTaxonomy/main.go | 53 + .../DataTaxonomyClient/GetLocation/main.go | 53 + .../DataTaxonomyClient/GetOperation/main.go | 53 + .../ListDataAttributeBindings/main.go | 60 + .../ListDataAttributes/main.go | 60 + .../ListDataTaxonomies/main.go | 60 + .../DataTaxonomyClient/ListLocations/main.go | 60 + .../DataTaxonomyClient/ListOperations/main.go | 60 + .../UpdateDataAttribute/main.go | 58 + .../UpdateDataAttributeBinding/main.go | 58 + .../UpdateDataTaxonomy/main.go | 58 + ...pet_metadata.google.cloud.dataplex.v1.json | 964 +++++ ...ippet_metadata.google.cloud.deploy.v1.json | 2 +- ...adata.google.cloud.discoveryengine.v1.json | 2 +- ...a.google.cloud.discoveryengine.v1beta.json | 2 +- ...pet_metadata.google.cloud.eventarc.v1.json | 2 +- ...a.google.cloud.eventarc.publishing.v1.json | 2 +- ...etadata.google.cloud.gkemulticloud.v1.json | 2 +- internal/generated/snippets/go.mod | 2 + .../snippet_metadata.google.cloud.kms.v1.json | 2 +- ...etadata.google.cloud.kms.inventory.v1.json | 2 +- ...data.google.maps.addressvalidation.v1.json | 2 +- ...gle.maps.mapsplatformdatasets.v1alpha.json | 2 +- ...nippet_metadata.google.maps.places.v1.json | 2 +- ...ippet_metadata.google.maps.routing.v2.json | 2 +- ....google.cloud.policytroubleshooter.v1.json | 2 +- .../snippet_metadata.google.pubsub.v1.json | 2 +- ...gle.cloud.rapidmigrationassessment.v1.json | 2 +- ...data.google.cloud.servicedirectory.v1.json | 2 +- ...google.cloud.servicedirectory.v1beta1.json | 2 +- ...adata.google.cloud.storageinsights.v1.json | 2 +- ...ppet_metadata.google.cloud.support.v2.json | 2 +- ...data.google.cloud.video.livestream.v1.json | 2 +- ...data.google.cloud.video.transcoder.v1.json | 2 +- ...metadata.google.cloud.vmwareengine.v1.json | 2 +- release-please-config-yoshi-submodules.json | 3 + 97 files changed, 16467 insertions(+), 1711 deletions(-) create mode 100644 commerce/CHANGES.md create mode 100644 commerce/README.md create mode 100755 commerce/consumer/procurement/apiv1/consumer_procurement_client.go create mode 100644 commerce/consumer/procurement/apiv1/consumer_procurement_client_example_test.go create mode 100755 commerce/consumer/procurement/apiv1/doc.go create mode 100644 commerce/consumer/procurement/apiv1/gapic_metadata.json create mode 100755 commerce/consumer/procurement/apiv1/procurementpb/order.pb.go create mode 100755 commerce/consumer/procurement/apiv1/procurementpb/procurement_service.pb.go create mode 100644 commerce/consumer/procurement/apiv1/version.go create mode 100644 commerce/go.mod create mode 100644 commerce/go.sum create mode 100644 commerce/internal/version.go create mode 100755 dataplex/apiv1/data_taxonomy_client.go create mode 100644 dataplex/apiv1/data_taxonomy_client_example_test.go create mode 100755 dataplex/apiv1/dataplexpb/data_taxonomy.pb.go create mode 100755 dataplex/apiv1/dataplexpb/security.pb.go create mode 100644 internal/generated/snippets/commerce/consumer/procurement/apiv1/ConsumerProcurementClient/GetOperation/main.go create mode 100644 internal/generated/snippets/commerce/consumer/procurement/apiv1/ConsumerProcurementClient/GetOrder/main.go create mode 100644 internal/generated/snippets/commerce/consumer/procurement/apiv1/ConsumerProcurementClient/ListOrders/main.go create mode 100644 internal/generated/snippets/commerce/consumer/procurement/apiv1/ConsumerProcurementClient/PlaceOrder/main.go create mode 100644 internal/generated/snippets/commerce/consumer/procurement/apiv1/snippet_metadata.google.cloud.commerce.consumer.procurement.v1.json create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/CreateDataAttribute/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/CreateDataAttributeBinding/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/CreateDataTaxonomy/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/DeleteDataAttribute/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/DeleteDataAttributeBinding/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/DeleteDataTaxonomy/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetDataAttribute/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetDataAttributeBinding/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetDataTaxonomy/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetLocation/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetOperation/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListDataAttributeBindings/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListDataAttributes/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListDataTaxonomies/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListLocations/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListOperations/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/UpdateDataAttribute/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/UpdateDataAttributeBinding/main.go create mode 100644 internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/UpdateDataTaxonomy/main.go diff --git a/.release-please-manifest-submodules.json b/.release-please-manifest-submodules.json index 89194866f33..4c06ee589a7 100644 --- a/.release-please-manifest-submodules.json +++ b/.release-please-manifest-submodules.json @@ -26,6 +26,7 @@ "cloudbuild": "1.12.0", "clouddms": "1.6.1", "cloudtasks": "1.12.0", + "commerce": "0.0.0", "compute": "1.22.0", "compute/metadata": "0.2.3", "confidentialcomputing": "1.0.0", diff --git a/cloudtasks/apiv2beta3/cloudtaskspb/target.pb.go b/cloudtasks/apiv2beta3/cloudtaskspb/target.pb.go index 0bdee8042b8..4c9fd79d1c8 100755 --- a/cloudtasks/apiv2beta3/cloudtaskspb/target.pb.go +++ b/cloudtasks/apiv2beta3/cloudtaskspb/target.pb.go @@ -557,7 +557,7 @@ type HttpTarget struct { // `Content-Type` to a media type when the // [task is created][google.cloud.tasks.v2beta3.CloudTasks.CreateTask]. // For example,`Content-Type` can be set to `"application/octet-stream"` or - // `"application/json"`. The default value is set to "application/json"`. + // `"application/json"`. The default value is set to `"application/json"`. // // * User-Agent: This will be set to `"Google-Cloud-Tasks"`. // diff --git a/commerce/CHANGES.md b/commerce/CHANGES.md new file mode 100644 index 00000000000..b671f0bbcdd --- /dev/null +++ b/commerce/CHANGES.md @@ -0,0 +1 @@ +# Changes diff --git a/commerce/README.md b/commerce/README.md new file mode 100644 index 00000000000..c1b0a86e480 --- /dev/null +++ b/commerce/README.md @@ -0,0 +1,44 @@ +# Cloud Commerce Consumer Procurement API + +[![Go Reference](https://pkg.go.dev/badge/cloud.google.com/go/commerce.svg)](https://pkg.go.dev/cloud.google.com/go/commerce) + +Go Client Library for Cloud Commerce Consumer Procurement API. + +## Install + +```bash +go get cloud.google.com/go/commerce +``` + +## Stability + +The stability of this module is indicated by SemVer. + +However, a `v1+` module may have breaking changes in two scenarios: + +* Packages with `alpha` or `beta` in the import path +* The GoDoc has an explicit stability disclaimer (for example, for an experimental feature). + +## Google Cloud Samples + +To browse ready to use code samples check [Google Cloud Samples](https://cloud.google.com/docs/samples?l=go). + +## Go Version Support + +See the [Go Versions Supported](https://github.com/googleapis/google-cloud-go#go-versions-supported) +section in the root directory's README. + +## Authorization + +See the [Authorization](https://github.com/googleapis/google-cloud-go#authorization) +section in the root directory's README. + +## Contributing + +Contributions are welcome. Please, see the [CONTRIBUTING](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md) +document for details. + +Please note that this project is released with a Contributor Code of Conduct. +By participating in this project you agree to abide by its terms. See +[Contributor Code of Conduct](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md#contributor-code-of-conduct) +for more information. diff --git a/commerce/consumer/procurement/apiv1/consumer_procurement_client.go b/commerce/consumer/procurement/apiv1/consumer_procurement_client.go new file mode 100755 index 00000000000..9693f294724 --- /dev/null +++ b/commerce/consumer/procurement/apiv1/consumer_procurement_client.go @@ -0,0 +1,930 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package procurement + +import ( + "bytes" + "context" + "fmt" + "io" + "math" + "net/http" + "net/url" + "time" + + procurementpb "cloud.google.com/go/commerce/consumer/procurement/apiv1/procurementpb" + "cloud.google.com/go/longrunning" + lroauto "cloud.google.com/go/longrunning/autogen" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/googleapi" + "google.golang.org/api/iterator" + "google.golang.org/api/option" + "google.golang.org/api/option/internaloption" + gtransport "google.golang.org/api/transport/grpc" + httptransport "google.golang.org/api/transport/http" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/metadata" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +var newConsumerProcurementClientHook clientHook + +// ConsumerProcurementCallOptions contains the retry settings for each method of ConsumerProcurementClient. +type ConsumerProcurementCallOptions struct { + PlaceOrder []gax.CallOption + GetOrder []gax.CallOption + ListOrders []gax.CallOption + GetOperation []gax.CallOption +} + +func defaultConsumerProcurementGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("cloudcommerceconsumerprocurement.googleapis.com:443"), + internaloption.WithDefaultMTLSEndpoint("cloudcommerceconsumerprocurement.mtls.googleapis.com:443"), + internaloption.WithDefaultAudience("https://cloudcommerceconsumerprocurement.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultConsumerProcurementCallOptions() *ConsumerProcurementCallOptions { + return &ConsumerProcurementCallOptions{ + PlaceOrder: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GetOrder: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 60000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListOrders: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 60000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetOperation: []gax.CallOption{}, + } +} + +func defaultConsumerProcurementRESTCallOptions() *ConsumerProcurementCallOptions { + return &ConsumerProcurementCallOptions{ + PlaceOrder: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GetOrder: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 60000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListOrders: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 60000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetOperation: []gax.CallOption{}, + } +} + +// internalConsumerProcurementClient is an interface that defines the methods available from Cloud Commerce Consumer Procurement API. +type internalConsumerProcurementClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + PlaceOrder(context.Context, *procurementpb.PlaceOrderRequest, ...gax.CallOption) (*PlaceOrderOperation, error) + PlaceOrderOperation(name string) *PlaceOrderOperation + GetOrder(context.Context, *procurementpb.GetOrderRequest, ...gax.CallOption) (*procurementpb.Order, error) + ListOrders(context.Context, *procurementpb.ListOrdersRequest, ...gax.CallOption) *OrderIterator + GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) +} + +// ConsumerProcurementClient is a client for interacting with Cloud Commerce Consumer Procurement API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// ConsumerProcurementService allows customers to make purchases of products +// served by the Cloud Commerce platform. +// +// When purchases are made, the +// ConsumerProcurementService +// programs the appropriate backends, including both Google’s own +// infrastructure, as well as third-party systems, and to enable billing setup +// for charging for the procured item. +type ConsumerProcurementClient struct { + // The internal transport-dependent client. + internalClient internalConsumerProcurementClient + + // The call options for this service. + CallOptions *ConsumerProcurementCallOptions + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient *lroauto.OperationsClient +} + +// 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 *ConsumerProcurementClient) 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 *ConsumerProcurementClient) 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 *ConsumerProcurementClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// PlaceOrder creates a new Order. +// +// This API only supports GCP spend-based committed use +// discounts specified by GCP documentation. +// +// The returned long-running operation is in-progress until the backend +// completes the creation of the resource. Once completed, the order is +// in +// OrderState.ORDER_STATE_ACTIVE. +// In case of failure, the order resource will be removed. +func (c *ConsumerProcurementClient) PlaceOrder(ctx context.Context, req *procurementpb.PlaceOrderRequest, opts ...gax.CallOption) (*PlaceOrderOperation, error) { + return c.internalClient.PlaceOrder(ctx, req, opts...) +} + +// PlaceOrderOperation returns a new PlaceOrderOperation from a given name. +// The name must be that of a previously created PlaceOrderOperation, possibly from a different process. +func (c *ConsumerProcurementClient) PlaceOrderOperation(name string) *PlaceOrderOperation { + return c.internalClient.PlaceOrderOperation(name) +} + +// GetOrder returns the requested +// Order resource. +func (c *ConsumerProcurementClient) GetOrder(ctx context.Context, req *procurementpb.GetOrderRequest, opts ...gax.CallOption) (*procurementpb.Order, error) { + return c.internalClient.GetOrder(ctx, req, opts...) +} + +// ListOrders lists Order +// resources that the user has access to, within the scope of the parent +// resource. +func (c *ConsumerProcurementClient) ListOrders(ctx context.Context, req *procurementpb.ListOrdersRequest, opts ...gax.CallOption) *OrderIterator { + return c.internalClient.ListOrders(ctx, req, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *ConsumerProcurementClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.GetOperation(ctx, req, opts...) +} + +// consumerProcurementGRPCClient is a client for interacting with Cloud Commerce Consumer Procurement API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type consumerProcurementGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing ConsumerProcurementClient + CallOptions **ConsumerProcurementCallOptions + + // The gRPC API client. + consumerProcurementClient procurementpb.ConsumerProcurementServiceClient + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient **lroauto.OperationsClient + + operationsClient longrunningpb.OperationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogMetadata metadata.MD +} + +// NewConsumerProcurementClient creates a new consumer procurement service client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// ConsumerProcurementService allows customers to make purchases of products +// served by the Cloud Commerce platform. +// +// When purchases are made, the +// ConsumerProcurementService +// programs the appropriate backends, including both Google’s own +// infrastructure, as well as third-party systems, and to enable billing setup +// for charging for the procured item. +func NewConsumerProcurementClient(ctx context.Context, opts ...option.ClientOption) (*ConsumerProcurementClient, error) { + clientOpts := defaultConsumerProcurementGRPCClientOptions() + if newConsumerProcurementClientHook != nil { + hookOpts, err := newConsumerProcurementClientHook(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 := ConsumerProcurementClient{CallOptions: defaultConsumerProcurementCallOptions()} + + c := &consumerProcurementGRPCClient{ + connPool: connPool, + consumerProcurementClient: procurementpb.NewConsumerProcurementServiceClient(connPool), + CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(connPool), + } + c.setGoogleClientInfo() + + client.internalClient = c + + client.LROClient, err = lroauto.NewOperationsClient(ctx, gtransport.WithConnPool(connPool)) + if err != nil { + // This error "should not happen", since we are just reusing old connection pool + // and never actually need to dial. + // If this does happen, we could leak connp. However, we cannot close conn: + // If the user invoked the constructor with option.WithGRPCConn, + // we would close a connection that's still in use. + // TODO: investigate error conditions. + return nil, err + } + c.LROClient = &client.LROClient + 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 *consumerProcurementGRPCClient) 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 *consumerProcurementGRPCClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) + c.xGoogMetadata = metadata.Pairs("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 *consumerProcurementGRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type consumerProcurementRESTClient struct { + // The http endpoint to connect to. + endpoint string + + // The http client. + httpClient *http.Client + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient **lroauto.OperationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogMetadata metadata.MD + + // Points back to the CallOptions field of the containing ConsumerProcurementClient + CallOptions **ConsumerProcurementCallOptions +} + +// NewConsumerProcurementRESTClient creates a new consumer procurement service rest client. +// +// ConsumerProcurementService allows customers to make purchases of products +// served by the Cloud Commerce platform. +// +// When purchases are made, the +// ConsumerProcurementService +// programs the appropriate backends, including both Google’s own +// infrastructure, as well as third-party systems, and to enable billing setup +// for charging for the procured item. +func NewConsumerProcurementRESTClient(ctx context.Context, opts ...option.ClientOption) (*ConsumerProcurementClient, error) { + clientOpts := append(defaultConsumerProcurementRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultConsumerProcurementRESTCallOptions() + c := &consumerProcurementRESTClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + } + c.setGoogleClientInfo() + + lroOpts := []option.ClientOption{ + option.WithHTTPClient(httpClient), + option.WithEndpoint(endpoint), + } + opClient, err := lroauto.NewOperationsRESTClient(ctx, lroOpts...) + if err != nil { + return nil, err + } + c.LROClient = &opClient + + return &ConsumerProcurementClient{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultConsumerProcurementRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://cloudcommerceconsumerprocurement.googleapis.com"), + internaloption.WithDefaultMTLSEndpoint("https://cloudcommerceconsumerprocurement.mtls.googleapis.com"), + internaloption.WithDefaultAudience("https://cloudcommerceconsumerprocurement.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + } +} + +// 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 *consumerProcurementRESTClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN") + c.xGoogMetadata = metadata.Pairs("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 *consumerProcurementRESTClient) Close() error { + // Replace httpClient with nil to force cleanup. + c.httpClient = nil + return nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: This method always returns nil. +func (c *consumerProcurementRESTClient) Connection() *grpc.ClientConn { + return nil +} +func (c *consumerProcurementGRPCClient) PlaceOrder(ctx context.Context, req *procurementpb.PlaceOrderRequest, opts ...gax.CallOption) (*PlaceOrderOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).PlaceOrder[0:len((*c.CallOptions).PlaceOrder):len((*c.CallOptions).PlaceOrder)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.consumerProcurementClient.PlaceOrder(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &PlaceOrderOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *consumerProcurementGRPCClient) GetOrder(ctx context.Context, req *procurementpb.GetOrderRequest, opts ...gax.CallOption) (*procurementpb.Order, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetOrder[0:len((*c.CallOptions).GetOrder):len((*c.CallOptions).GetOrder)], opts...) + var resp *procurementpb.Order + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.consumerProcurementClient.GetOrder(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *consumerProcurementGRPCClient) ListOrders(ctx context.Context, req *procurementpb.ListOrdersRequest, opts ...gax.CallOption) *OrderIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListOrders[0:len((*c.CallOptions).ListOrders):len((*c.CallOptions).ListOrders)], opts...) + it := &OrderIterator{} + req = proto.Clone(req).(*procurementpb.ListOrdersRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*procurementpb.Order, string, error) { + resp := &procurementpb.ListOrdersResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.consumerProcurementClient.ListOrders(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOrders(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *consumerProcurementGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.GetOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +// PlaceOrder creates a new Order. +// +// This API only supports GCP spend-based committed use +// discounts specified by GCP documentation. +// +// The returned long-running operation is in-progress until the backend +// completes the creation of the resource. Once completed, the order is +// in +// OrderState.ORDER_STATE_ACTIVE. +// In case of failure, the order resource will be removed. +func (c *consumerProcurementRESTClient) PlaceOrder(ctx context.Context, req *procurementpb.PlaceOrderRequest, opts ...gax.CallOption) (*PlaceOrderOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/orders:place", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &PlaceOrderOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// GetOrder returns the requested +// Order resource. +func (c *consumerProcurementRESTClient) GetOrder(ctx context.Context, req *procurementpb.GetOrderRequest, opts ...gax.CallOption) (*procurementpb.Order, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + opts = append((*c.CallOptions).GetOrder[0:len((*c.CallOptions).GetOrder):len((*c.CallOptions).GetOrder)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &procurementpb.Order{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// ListOrders lists Order +// resources that the user has access to, within the scope of the parent +// resource. +func (c *consumerProcurementRESTClient) ListOrders(ctx context.Context, req *procurementpb.ListOrdersRequest, opts ...gax.CallOption) *OrderIterator { + it := &OrderIterator{} + req = proto.Clone(req).(*procurementpb.ListOrdersRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*procurementpb.Order, string, error) { + resp := &procurementpb.ListOrdersResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/orders", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + headers := buildHeaders(ctx, c.xGoogMetadata, metadata.Pairs("Content-Type", "application/json")) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetOrders(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *consumerProcurementRESTClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// PlaceOrderOperation manages a long-running operation from PlaceOrder. +type PlaceOrderOperation struct { + lro *longrunning.Operation + pollPath string +} + +// PlaceOrderOperation returns a new PlaceOrderOperation from a given name. +// The name must be that of a previously created PlaceOrderOperation, possibly from a different process. +func (c *consumerProcurementGRPCClient) PlaceOrderOperation(name string) *PlaceOrderOperation { + return &PlaceOrderOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// PlaceOrderOperation returns a new PlaceOrderOperation from a given name. +// The name must be that of a previously created PlaceOrderOperation, possibly from a different process. +func (c *consumerProcurementRESTClient) PlaceOrderOperation(name string) *PlaceOrderOperation { + override := fmt.Sprintf("/v1/%s", name) + return &PlaceOrderOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *PlaceOrderOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*procurementpb.Order, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp procurementpb.Order + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *PlaceOrderOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*procurementpb.Order, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp procurementpb.Order + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *PlaceOrderOperation) Metadata() (*procurementpb.PlaceOrderMetadata, error) { + var meta procurementpb.PlaceOrderMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *PlaceOrderOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *PlaceOrderOperation) Name() string { + return op.lro.Name() +} + +// OrderIterator manages a stream of *procurementpb.Order. +type OrderIterator struct { + items []*procurementpb.Order + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*procurementpb.Order, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *OrderIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. 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 *OrderIterator) Next() (*procurementpb.Order, error) { + var item *procurementpb.Order + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *OrderIterator) bufLen() int { + return len(it.items) +} + +func (it *OrderIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} diff --git a/commerce/consumer/procurement/apiv1/consumer_procurement_client_example_test.go b/commerce/consumer/procurement/apiv1/consumer_procurement_client_example_test.go new file mode 100644 index 00000000000..830c8b4b97c --- /dev/null +++ b/commerce/consumer/procurement/apiv1/consumer_procurement_client_example_test.go @@ -0,0 +1,171 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package procurement_test + +import ( + "context" + + procurement "cloud.google.com/go/commerce/consumer/procurement/apiv1" + procurementpb "cloud.google.com/go/commerce/consumer/procurement/apiv1/procurementpb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" +) + +func ExampleNewConsumerProcurementClient() { + 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 := procurement.NewConsumerProcurementClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewConsumerProcurementRESTClient() { + 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 := procurement.NewConsumerProcurementRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleConsumerProcurementClient_PlaceOrder() { + 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 := procurement.NewConsumerProcurementClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &procurementpb.PlaceOrderRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/commerce/consumer/procurement/apiv1/procurementpb#PlaceOrderRequest. + } + op, err := c.PlaceOrder(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleConsumerProcurementClient_GetOrder() { + 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 := procurement.NewConsumerProcurementClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &procurementpb.GetOrderRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/commerce/consumer/procurement/apiv1/procurementpb#GetOrderRequest. + } + resp, err := c.GetOrder(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleConsumerProcurementClient_ListOrders() { + 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 := procurement.NewConsumerProcurementClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &procurementpb.ListOrdersRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/commerce/consumer/procurement/apiv1/procurementpb#ListOrdersRequest. + } + it := c.ListOrders(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleConsumerProcurementClient_GetOperation() { + 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 := procurement.NewConsumerProcurementClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} diff --git a/commerce/consumer/procurement/apiv1/doc.go b/commerce/consumer/procurement/apiv1/doc.go new file mode 100755 index 00000000000..0a50334ffca --- /dev/null +++ b/commerce/consumer/procurement/apiv1/doc.go @@ -0,0 +1,143 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// Package procurement is an auto-generated package for the +// Cloud Commerce Consumer Procurement API. +// +// Enables consumers to procure products served by Cloud Marketplace platform +// +// NOTE: This package is in beta. It is not stable, and may be subject to changes. +// +// # General documentation +// +// For information about setting deadlines, reusing contexts, and more +// please visit https://pkg.go.dev/cloud.google.com/go. +// +// # 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 := procurement.NewConsumerProcurementClient(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 := procurement.NewConsumerProcurementClient(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// defer c.Close() +// +// req := &procurementpb.PlaceOrderRequest{ +// // TODO: Fill request struct fields. +// // See https://pkg.go.dev/cloud.google.com/go/commerce/consumer/procurement/apiv1/procurementpb#PlaceOrderRequest. +// } +// op, err := c.PlaceOrder(ctx, req) +// if err != nil { +// // TODO: Handle error. +// } +// +// resp, err := op.Wait(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// // TODO: Use resp. +// _ = resp +// +// # Inspecting errors +// +// To see examples of how to inspect errors returned by this package please reference +// [Inspecting errors](https://pkg.go.dev/cloud.google.com/go#hdr-Inspecting_errors). +// +// # Use of Context +// +// The ctx passed to NewConsumerProcurementClient 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. +package procurement // import "cloud.google.com/go/commerce/consumer/procurement/apiv1" + +import ( + "context" + "net/http" + + "google.golang.org/api/option" + "google.golang.org/grpc/metadata" +) + +// 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 +} + +func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context { + out, _ := metadata.FromOutgoingContext(ctx) + out = out.Copy() + for _, md := range mds { + for k, v := range md { + out[k] = append(out[k], v...) + } + } + return metadata.NewOutgoingContext(ctx, out) +} + +// DefaultAuthScopes reports the default set of authentication scopes to use with this package. +func DefaultAuthScopes() []string { + return []string{ + "https://www.googleapis.com/auth/cloud-platform", + } +} + +// buildHeaders extracts metadata from the outgoing context, joins it with any other +// given metadata, and converts them into a http.Header. +func buildHeaders(ctx context.Context, mds ...metadata.MD) http.Header { + if cmd, ok := metadata.FromOutgoingContext(ctx); ok { + mds = append(mds, cmd) + } + md := metadata.Join(mds...) + return http.Header(md) +} diff --git a/commerce/consumer/procurement/apiv1/gapic_metadata.json b/commerce/consumer/procurement/apiv1/gapic_metadata.json new file mode 100644 index 00000000000..3e3e5b5060c --- /dev/null +++ b/commerce/consumer/procurement/apiv1/gapic_metadata.json @@ -0,0 +1,63 @@ +{ + "schema": "1.0", + "comment": "This file maps proto services/RPCs to the corresponding library clients/methods.", + "language": "go", + "protoPackage": "google.cloud.commerce.consumer.procurement.v1", + "libraryPackage": "cloud.google.com/go/commerce/consumer/procurement/apiv1", + "services": { + "ConsumerProcurementService": { + "clients": { + "grpc": { + "libraryClient": "ConsumerProcurementClient", + "rpcs": { + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetOrder": { + "methods": [ + "GetOrder" + ] + }, + "ListOrders": { + "methods": [ + "ListOrders" + ] + }, + "PlaceOrder": { + "methods": [ + "PlaceOrder" + ] + } + } + }, + "rest": { + "libraryClient": "ConsumerProcurementClient", + "rpcs": { + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetOrder": { + "methods": [ + "GetOrder" + ] + }, + "ListOrders": { + "methods": [ + "ListOrders" + ] + }, + "PlaceOrder": { + "methods": [ + "PlaceOrder" + ] + } + } + } + } + } + } +} diff --git a/commerce/consumer/procurement/apiv1/procurementpb/order.pb.go b/commerce/consumer/procurement/apiv1/procurementpb/order.pb.go new file mode 100755 index 00000000000..20efe46d69d --- /dev/null +++ b/commerce/consumer/procurement/apiv1/procurementpb/order.pb.go @@ -0,0 +1,1275 @@ +// 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.30.0 +// protoc v4.23.2 +// source: google/cloud/commerce/consumer/procurement/v1/order.proto + +package procurementpb + +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) +) + +// Type of a line item change. +type LineItemChangeType int32 + +const ( + // Sentinel value. Do not use. + LineItemChangeType_LINE_ITEM_CHANGE_TYPE_UNSPECIFIED LineItemChangeType = 0 + // The change is to create a new line item. + LineItemChangeType_LINE_ITEM_CHANGE_TYPE_CREATE LineItemChangeType = 1 + // The change is to update an existing line item. + LineItemChangeType_LINE_ITEM_CHANGE_TYPE_UPDATE LineItemChangeType = 2 + // The change is to cancel an existing line item. + LineItemChangeType_LINE_ITEM_CHANGE_TYPE_CANCEL LineItemChangeType = 3 + // The change is to revert a cancellation. + LineItemChangeType_LINE_ITEM_CHANGE_TYPE_REVERT_CANCELLATION LineItemChangeType = 4 +) + +// Enum value maps for LineItemChangeType. +var ( + LineItemChangeType_name = map[int32]string{ + 0: "LINE_ITEM_CHANGE_TYPE_UNSPECIFIED", + 1: "LINE_ITEM_CHANGE_TYPE_CREATE", + 2: "LINE_ITEM_CHANGE_TYPE_UPDATE", + 3: "LINE_ITEM_CHANGE_TYPE_CANCEL", + 4: "LINE_ITEM_CHANGE_TYPE_REVERT_CANCELLATION", + } + LineItemChangeType_value = map[string]int32{ + "LINE_ITEM_CHANGE_TYPE_UNSPECIFIED": 0, + "LINE_ITEM_CHANGE_TYPE_CREATE": 1, + "LINE_ITEM_CHANGE_TYPE_UPDATE": 2, + "LINE_ITEM_CHANGE_TYPE_CANCEL": 3, + "LINE_ITEM_CHANGE_TYPE_REVERT_CANCELLATION": 4, + } +) + +func (x LineItemChangeType) Enum() *LineItemChangeType { + p := new(LineItemChangeType) + *p = x + return p +} + +func (x LineItemChangeType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LineItemChangeType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_commerce_consumer_procurement_v1_order_proto_enumTypes[0].Descriptor() +} + +func (LineItemChangeType) Type() protoreflect.EnumType { + return &file_google_cloud_commerce_consumer_procurement_v1_order_proto_enumTypes[0] +} + +func (x LineItemChangeType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LineItemChangeType.Descriptor instead. +func (LineItemChangeType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDescGZIP(), []int{0} +} + +// State of a change. +type LineItemChangeState int32 + +const ( + // Sentinel value. Do not use. + LineItemChangeState_LINE_ITEM_CHANGE_STATE_UNSPECIFIED LineItemChangeState = 0 + // Change is in this state when a change is initiated and waiting for + // partner approval. + LineItemChangeState_LINE_ITEM_CHANGE_STATE_PENDING_APPROVAL LineItemChangeState = 1 + // Change is in this state after it's approved by the partner or auto-approved + // but before it takes effect. The change can be overwritten + // or cancelled depending on the new line item info property (pending Private + // Offer change cannot be cancelled and can only be overwritten by another + // Private Offer). + LineItemChangeState_LINE_ITEM_CHANGE_STATE_APPROVED LineItemChangeState = 2 + // Change is in this state after it's been activated. + LineItemChangeState_LINE_ITEM_CHANGE_STATE_COMPLETED LineItemChangeState = 3 + // Change is in this state if it was rejected by the partner. + LineItemChangeState_LINE_ITEM_CHANGE_STATE_REJECTED LineItemChangeState = 4 + // Change is in this state if it was abandoned by the user. + LineItemChangeState_LINE_ITEM_CHANGE_STATE_ABANDONED LineItemChangeState = 5 + // Change is in this state if it's currently being provisioned downstream. The + // change can't be overwritten or cancelled when it's in this state. + LineItemChangeState_LINE_ITEM_CHANGE_STATE_ACTIVATING LineItemChangeState = 6 +) + +// Enum value maps for LineItemChangeState. +var ( + LineItemChangeState_name = map[int32]string{ + 0: "LINE_ITEM_CHANGE_STATE_UNSPECIFIED", + 1: "LINE_ITEM_CHANGE_STATE_PENDING_APPROVAL", + 2: "LINE_ITEM_CHANGE_STATE_APPROVED", + 3: "LINE_ITEM_CHANGE_STATE_COMPLETED", + 4: "LINE_ITEM_CHANGE_STATE_REJECTED", + 5: "LINE_ITEM_CHANGE_STATE_ABANDONED", + 6: "LINE_ITEM_CHANGE_STATE_ACTIVATING", + } + LineItemChangeState_value = map[string]int32{ + "LINE_ITEM_CHANGE_STATE_UNSPECIFIED": 0, + "LINE_ITEM_CHANGE_STATE_PENDING_APPROVAL": 1, + "LINE_ITEM_CHANGE_STATE_APPROVED": 2, + "LINE_ITEM_CHANGE_STATE_COMPLETED": 3, + "LINE_ITEM_CHANGE_STATE_REJECTED": 4, + "LINE_ITEM_CHANGE_STATE_ABANDONED": 5, + "LINE_ITEM_CHANGE_STATE_ACTIVATING": 6, + } +) + +func (x LineItemChangeState) Enum() *LineItemChangeState { + p := new(LineItemChangeState) + *p = x + return p +} + +func (x LineItemChangeState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LineItemChangeState) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_commerce_consumer_procurement_v1_order_proto_enumTypes[1].Descriptor() +} + +func (LineItemChangeState) Type() protoreflect.EnumType { + return &file_google_cloud_commerce_consumer_procurement_v1_order_proto_enumTypes[1] +} + +func (x LineItemChangeState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LineItemChangeState.Descriptor instead. +func (LineItemChangeState) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDescGZIP(), []int{1} +} + +// Predefined types for line item change state reason. +type LineItemChangeStateReasonType int32 + +const ( + // Default value, indicating there's no predefined type for change state + // reason. + LineItemChangeStateReasonType_LINE_ITEM_CHANGE_STATE_REASON_TYPE_UNSPECIFIED LineItemChangeStateReasonType = 0 + // Change is in current state due to term expiration. + LineItemChangeStateReasonType_LINE_ITEM_CHANGE_STATE_REASON_TYPE_EXPIRED LineItemChangeStateReasonType = 1 + // Change is in current state due to user-initiated cancellation. + LineItemChangeStateReasonType_LINE_ITEM_CHANGE_STATE_REASON_TYPE_USER_CANCELLED LineItemChangeStateReasonType = 2 + // Change is in current state due to system-initiated cancellation. + LineItemChangeStateReasonType_LINE_ITEM_CHANGE_STATE_REASON_TYPE_SYSTEM_CANCELLED LineItemChangeStateReasonType = 3 +) + +// Enum value maps for LineItemChangeStateReasonType. +var ( + LineItemChangeStateReasonType_name = map[int32]string{ + 0: "LINE_ITEM_CHANGE_STATE_REASON_TYPE_UNSPECIFIED", + 1: "LINE_ITEM_CHANGE_STATE_REASON_TYPE_EXPIRED", + 2: "LINE_ITEM_CHANGE_STATE_REASON_TYPE_USER_CANCELLED", + 3: "LINE_ITEM_CHANGE_STATE_REASON_TYPE_SYSTEM_CANCELLED", + } + LineItemChangeStateReasonType_value = map[string]int32{ + "LINE_ITEM_CHANGE_STATE_REASON_TYPE_UNSPECIFIED": 0, + "LINE_ITEM_CHANGE_STATE_REASON_TYPE_EXPIRED": 1, + "LINE_ITEM_CHANGE_STATE_REASON_TYPE_USER_CANCELLED": 2, + "LINE_ITEM_CHANGE_STATE_REASON_TYPE_SYSTEM_CANCELLED": 3, + } +) + +func (x LineItemChangeStateReasonType) Enum() *LineItemChangeStateReasonType { + p := new(LineItemChangeStateReasonType) + *p = x + return p +} + +func (x LineItemChangeStateReasonType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LineItemChangeStateReasonType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_commerce_consumer_procurement_v1_order_proto_enumTypes[2].Descriptor() +} + +func (LineItemChangeStateReasonType) Type() protoreflect.EnumType { + return &file_google_cloud_commerce_consumer_procurement_v1_order_proto_enumTypes[2] +} + +func (x LineItemChangeStateReasonType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LineItemChangeStateReasonType.Descriptor instead. +func (LineItemChangeStateReasonType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDescGZIP(), []int{2} +} + +// Represents a purchase made by a customer on Cloud Marketplace. +// Creating an order makes sure that both the Google backend systems +// as well as external service provider's systems (if needed) allow use of +// purchased products and ensures the appropriate billing events occur. +// +// An Order can be made against one Product with multiple add-ons (optional) or +// one Quote which might reference multiple products. +// +// Customers typically choose a price plan for each Product purchased when +// they create an order and can change their plan later, if the product allows. +type Order struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The resource name of the order. + // Has the form + // `billingAccounts/{billing_account}/orders/{order}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The user-specified name of the order. + DisplayName string `protobuf:"bytes,10,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Output only. The items being purchased. + LineItems []*LineItem `protobuf:"bytes,6,rep,name=line_items,json=lineItems,proto3" json:"line_items,omitempty"` + // Output only. Line items that were cancelled. + CancelledLineItems []*LineItem `protobuf:"bytes,7,rep,name=cancelled_line_items,json=cancelledLineItems,proto3" json:"cancelled_line_items,omitempty"` + // Output only. The creation timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The last update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // The weak etag of the order. + Etag string `protobuf:"bytes,11,opt,name=etag,proto3" json:"etag,omitempty"` +} + +func (x *Order) Reset() { + *x = Order{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_commerce_consumer_procurement_v1_order_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Order) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Order) ProtoMessage() {} + +func (x *Order) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_commerce_consumer_procurement_v1_order_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 Order.ProtoReflect.Descriptor instead. +func (*Order) Descriptor() ([]byte, []int) { + return file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDescGZIP(), []int{0} +} + +func (x *Order) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Order) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Order) GetLineItems() []*LineItem { + if x != nil { + return x.LineItems + } + return nil +} + +func (x *Order) GetCancelledLineItems() []*LineItem { + if x != nil { + return x.CancelledLineItems + } + return nil +} + +func (x *Order) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Order) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Order) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +// A single item within an order. +type LineItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Line item ID. + LineItemId string `protobuf:"bytes,1,opt,name=line_item_id,json=lineItemId,proto3" json:"line_item_id,omitempty"` + // Output only. Current state and information of this item. It tells what, + // e.g. which offer, is currently effective. + LineItemInfo *LineItemInfo `protobuf:"bytes,2,opt,name=line_item_info,json=lineItemInfo,proto3" json:"line_item_info,omitempty"` + // Output only. A change made on the item which is pending and not yet + // effective. Absence of this field indicates the line item is not undergoing + // a change. + PendingChange *LineItemChange `protobuf:"bytes,3,opt,name=pending_change,json=pendingChange,proto3" json:"pending_change,omitempty"` + // Output only. Changes made on the item that are not pending anymore which + // might be because they already took effect, were reverted by the customer, + // or were rejected by the partner. No more operations are allowed on these + // changes. + ChangeHistory []*LineItemChange `protobuf:"bytes,4,rep,name=change_history,json=changeHistory,proto3" json:"change_history,omitempty"` +} + +func (x *LineItem) Reset() { + *x = LineItem{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_commerce_consumer_procurement_v1_order_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LineItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LineItem) ProtoMessage() {} + +func (x *LineItem) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_commerce_consumer_procurement_v1_order_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 LineItem.ProtoReflect.Descriptor instead. +func (*LineItem) Descriptor() ([]byte, []int) { + return file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDescGZIP(), []int{1} +} + +func (x *LineItem) GetLineItemId() string { + if x != nil { + return x.LineItemId + } + return "" +} + +func (x *LineItem) GetLineItemInfo() *LineItemInfo { + if x != nil { + return x.LineItemInfo + } + return nil +} + +func (x *LineItem) GetPendingChange() *LineItemChange { + if x != nil { + return x.PendingChange + } + return nil +} + +func (x *LineItem) GetChangeHistory() []*LineItemChange { + if x != nil { + return x.ChangeHistory + } + return nil +} + +// A change made on a line item. +type LineItemChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Change ID. + // All changes made within one order update operation have the same change_id. + ChangeId string `protobuf:"bytes,1,opt,name=change_id,json=changeId,proto3" json:"change_id,omitempty"` + // Required. Type of the change to make. + ChangeType LineItemChangeType `protobuf:"varint,2,opt,name=change_type,json=changeType,proto3,enum=google.cloud.commerce.consumer.procurement.v1.LineItemChangeType" json:"change_type,omitempty"` + // Output only. Line item info before the change. + OldLineItemInfo *LineItemInfo `protobuf:"bytes,3,opt,name=old_line_item_info,json=oldLineItemInfo,proto3" json:"old_line_item_info,omitempty"` + // Line item info after the change. + NewLineItemInfo *LineItemInfo `protobuf:"bytes,4,opt,name=new_line_item_info,json=newLineItemInfo,proto3" json:"new_line_item_info,omitempty"` + // Output only. State of the change. + ChangeState LineItemChangeState `protobuf:"varint,5,opt,name=change_state,json=changeState,proto3,enum=google.cloud.commerce.consumer.procurement.v1.LineItemChangeState" json:"change_state,omitempty"` + // Output only. Provider-supplied message explaining the LineItemChange's + // state. Mainly used to communicate progress and ETA for provisioning in the + // case of `PENDING_APPROVAL`, and to explain why the change request was + // denied or canceled in the case of `REJECTED` and `CANCELED` states. + StateReason string `protobuf:"bytes,6,opt,name=state_reason,json=stateReason,proto3" json:"state_reason,omitempty"` + // Output only. Predefined enum types for why this line item change is in + // current state. For example, a line item change's state could be + // `LINE_ITEM_CHANGE_STATE_COMPLETED` because of end-of-term expiration, + // immediate cancellation initiated by the user, or system-initiated + // cancellation. + ChangeStateReasonType LineItemChangeStateReasonType `protobuf:"varint,10,opt,name=change_state_reason_type,json=changeStateReasonType,proto3,enum=google.cloud.commerce.consumer.procurement.v1.LineItemChangeStateReasonType" json:"change_state_reason_type,omitempty"` + // Output only. A time at which the change became or will become (in case of + // pending change) effective. + ChangeEffectiveTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=change_effective_time,json=changeEffectiveTime,proto3" json:"change_effective_time,omitempty"` + // Output only. The time when change was initiated. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time when change was updated, e.g. approved/rejected by + // partners or cancelled by the user. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *LineItemChange) Reset() { + *x = LineItemChange{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_commerce_consumer_procurement_v1_order_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LineItemChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LineItemChange) ProtoMessage() {} + +func (x *LineItemChange) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_commerce_consumer_procurement_v1_order_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 LineItemChange.ProtoReflect.Descriptor instead. +func (*LineItemChange) Descriptor() ([]byte, []int) { + return file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDescGZIP(), []int{2} +} + +func (x *LineItemChange) GetChangeId() string { + if x != nil { + return x.ChangeId + } + return "" +} + +func (x *LineItemChange) GetChangeType() LineItemChangeType { + if x != nil { + return x.ChangeType + } + return LineItemChangeType_LINE_ITEM_CHANGE_TYPE_UNSPECIFIED +} + +func (x *LineItemChange) GetOldLineItemInfo() *LineItemInfo { + if x != nil { + return x.OldLineItemInfo + } + return nil +} + +func (x *LineItemChange) GetNewLineItemInfo() *LineItemInfo { + if x != nil { + return x.NewLineItemInfo + } + return nil +} + +func (x *LineItemChange) GetChangeState() LineItemChangeState { + if x != nil { + return x.ChangeState + } + return LineItemChangeState_LINE_ITEM_CHANGE_STATE_UNSPECIFIED +} + +func (x *LineItemChange) GetStateReason() string { + if x != nil { + return x.StateReason + } + return "" +} + +func (x *LineItemChange) GetChangeStateReasonType() LineItemChangeStateReasonType { + if x != nil { + return x.ChangeStateReasonType + } + return LineItemChangeStateReasonType_LINE_ITEM_CHANGE_STATE_REASON_TYPE_UNSPECIFIED +} + +func (x *LineItemChange) GetChangeEffectiveTime() *timestamppb.Timestamp { + if x != nil { + return x.ChangeEffectiveTime + } + return nil +} + +func (x *LineItemChange) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *LineItemChange) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// Line item information. +type LineItemInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. The name of the offer can have either of these formats: + // 'billingAccounts/{billing_account}/offers/{offer}', + // or 'services/{service}/standardOffers/{offer}'. + Offer string `protobuf:"bytes,13,opt,name=offer,proto3" json:"offer,omitempty"` + // Optional. User-provided parameters. + Parameters []*Parameter `protobuf:"bytes,9,rep,name=parameters,proto3" json:"parameters,omitempty"` + // Output only. Information about the subscription created, if applicable. + Subscription *Subscription `protobuf:"bytes,10,opt,name=subscription,proto3" json:"subscription,omitempty"` +} + +func (x *LineItemInfo) Reset() { + *x = LineItemInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_commerce_consumer_procurement_v1_order_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LineItemInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LineItemInfo) ProtoMessage() {} + +func (x *LineItemInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_commerce_consumer_procurement_v1_order_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 LineItemInfo.ProtoReflect.Descriptor instead. +func (*LineItemInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDescGZIP(), []int{3} +} + +func (x *LineItemInfo) GetOffer() string { + if x != nil { + return x.Offer + } + return "" +} + +func (x *LineItemInfo) GetParameters() []*Parameter { + if x != nil { + return x.Parameters + } + return nil +} + +func (x *LineItemInfo) GetSubscription() *Subscription { + if x != nil { + return x.Subscription + } + return nil +} + +// User-provided Parameters. +type Parameter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of the parameter. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Value of parameter. + Value *Parameter_Value `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *Parameter) Reset() { + *x = Parameter{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_commerce_consumer_procurement_v1_order_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Parameter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Parameter) ProtoMessage() {} + +func (x *Parameter) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_commerce_consumer_procurement_v1_order_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 Parameter.ProtoReflect.Descriptor instead. +func (*Parameter) Descriptor() ([]byte, []int) { + return file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDescGZIP(), []int{4} +} + +func (x *Parameter) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Parameter) GetValue() *Parameter_Value { + if x != nil { + return x.Value + } + return nil +} + +// Subscription information. +type Subscription struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The timestamp when the subscription begins, if applicable. + StartTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The timestamp when the subscription ends, if applicable. + EndTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // Whether auto renewal is enabled by user choice on current subscription. + // This field indicates order/subscription status after pending plan change is + // cancelled or rejected. + AutoRenewalEnabled bool `protobuf:"varint,2,opt,name=auto_renewal_enabled,json=autoRenewalEnabled,proto3" json:"auto_renewal_enabled,omitempty"` +} + +func (x *Subscription) Reset() { + *x = Subscription{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_commerce_consumer_procurement_v1_order_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Subscription) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Subscription) ProtoMessage() {} + +func (x *Subscription) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_commerce_consumer_procurement_v1_order_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 Subscription.ProtoReflect.Descriptor instead. +func (*Subscription) Descriptor() ([]byte, []int) { + return file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDescGZIP(), []int{5} +} + +func (x *Subscription) GetStartTime() *timestamppb.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *Subscription) GetEndTime() *timestamppb.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +func (x *Subscription) GetAutoRenewalEnabled() bool { + if x != nil { + return x.AutoRenewalEnabled + } + return false +} + +type Parameter_Value struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The kind of value. + // + // Types that are assignable to Kind: + // *Parameter_Value_Int64Value + // *Parameter_Value_StringValue + // *Parameter_Value_DoubleValue + Kind isParameter_Value_Kind `protobuf_oneof:"kind"` +} + +func (x *Parameter_Value) Reset() { + *x = Parameter_Value{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_commerce_consumer_procurement_v1_order_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Parameter_Value) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Parameter_Value) ProtoMessage() {} + +func (x *Parameter_Value) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_commerce_consumer_procurement_v1_order_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 Parameter_Value.ProtoReflect.Descriptor instead. +func (*Parameter_Value) Descriptor() ([]byte, []int) { + return file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDescGZIP(), []int{4, 0} +} + +func (m *Parameter_Value) GetKind() isParameter_Value_Kind { + if m != nil { + return m.Kind + } + return nil +} + +func (x *Parameter_Value) GetInt64Value() int64 { + if x, ok := x.GetKind().(*Parameter_Value_Int64Value); ok { + return x.Int64Value + } + return 0 +} + +func (x *Parameter_Value) GetStringValue() string { + if x, ok := x.GetKind().(*Parameter_Value_StringValue); ok { + return x.StringValue + } + return "" +} + +func (x *Parameter_Value) GetDoubleValue() float64 { + if x, ok := x.GetKind().(*Parameter_Value_DoubleValue); ok { + return x.DoubleValue + } + return 0 +} + +type isParameter_Value_Kind interface { + isParameter_Value_Kind() +} + +type Parameter_Value_Int64Value struct { + // Represents an int64 value. + Int64Value int64 `protobuf:"varint,3,opt,name=int64_value,json=int64Value,proto3,oneof"` +} + +type Parameter_Value_StringValue struct { + // Represents a string value. + StringValue string `protobuf:"bytes,4,opt,name=string_value,json=stringValue,proto3,oneof"` +} + +type Parameter_Value_DoubleValue struct { + // Represents a double value. + DoubleValue float64 `protobuf:"fixed64,5,opt,name=double_value,json=doubleValue,proto3,oneof"` +} + +func (*Parameter_Value_Int64Value) isParameter_Value_Kind() {} + +func (*Parameter_Value_StringValue) isParameter_Value_Kind() {} + +func (*Parameter_Value_DoubleValue) isParameter_Value_Kind() {} + +var File_google_cloud_commerce_consumer_procurement_v1_order_proto protoreflect.FileDescriptor + +var file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDesc = []byte{ + 0x0a, 0x39, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, + 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x2f, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x2d, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, + 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, + 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 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, 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, 0x9b, 0x04, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, + 0x72, 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, 0x26, 0x0a, 0x0c, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x5b, 0x0a, 0x0a, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, + 0x6e, 0x0a, 0x14, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6e, + 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x63, 0x61, 0x6e, + 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, + 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, + 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x09, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x3a, 0x6c, 0xea, 0x41, 0x69, 0x0a, 0x35, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x63, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x65, 0x72, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x12, 0x30, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x7d, 0x2f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x7d, 0x22, 0xef, 0x02, 0x0a, 0x08, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x74, + 0x65, 0x6d, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x6c, + 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x66, 0x0a, 0x0e, 0x6c, 0x69, 0x6e, + 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x69, 0x0a, 0x0e, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, + 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x74, + 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x70, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x69, 0x0a, 0x0e, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xee, 0x06, 0x0a, 0x0e, 0x4c, 0x69, 0x6e, 0x65, + 0x49, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x12, 0x67, 0x0a, 0x0b, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x6d, 0x0a, 0x12, 0x6f, 0x6c, 0x64, 0x5f, 0x6c, 0x69, 0x6e, + 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x6f, 0x6c, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x68, 0x0a, 0x12, 0x6e, 0x65, 0x77, 0x5f, 0x6c, 0x69, 0x6e, 0x65, + 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, + 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6e, + 0x65, 0x77, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x6a, + 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x12, 0x8a, 0x01, 0x0a, 0x18, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x53, 0x0a, 0x15, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 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, + 0x13, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x08, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 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, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x9c, 0x02, 0x0a, 0x0c, 0x4c, 0x69, 0x6e, + 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x05, 0x6f, 0x66, 0x66, + 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x2b, + 0x0a, 0x29, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x63, + 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x66, 0x66, + 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x12, 0x64, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf3, 0x01, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, + 0x7c, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, + 0x0a, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xb2, 0x01, + 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, + 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 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, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, + 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x30, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, + 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x2a, 0xd0, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x4c, 0x49, 0x4e, + 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x43, 0x48, + 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, + 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, + 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, + 0x54, 0x45, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x54, 0x45, + 0x4d, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, + 0x4e, 0x43, 0x45, 0x4c, 0x10, 0x03, 0x12, 0x2d, 0x0a, 0x29, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x49, + 0x54, 0x45, 0x4d, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x52, 0x45, 0x56, 0x45, 0x52, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x2a, 0xa7, 0x02, 0x0a, 0x13, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x74, + 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, + 0x22, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, + 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2b, 0x0a, 0x27, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x54, + 0x45, 0x4d, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x41, 0x4c, + 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, + 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x50, 0x50, + 0x52, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x4c, 0x49, 0x4e, 0x45, 0x5f, + 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x23, 0x0a, + 0x1f, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, + 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, + 0x10, 0x04, 0x12, 0x24, 0x0a, 0x20, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, + 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x42, 0x41, + 0x4e, 0x44, 0x4f, 0x4e, 0x45, 0x44, 0x10, 0x05, 0x12, 0x25, 0x0a, 0x21, 0x4c, 0x49, 0x4e, 0x45, + 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x2a, + 0xf3, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x32, 0x0a, 0x2e, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x43, + 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, + 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2e, 0x0a, 0x2a, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x54, + 0x45, 0x4d, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x49, + 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x35, 0x0a, 0x31, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x54, + 0x45, 0x4d, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, + 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x37, 0x0a, 0x33, + 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, + 0x4c, 0x45, 0x44, 0x10, 0x03, 0x42, 0x9f, 0x02, 0xea, 0x41, 0x91, 0x01, 0x0a, 0x29, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x63, 0x61, 0x74, 0x61, 0x6c, + 0x6f, 0x67, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x12, 0x29, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x61, 0x72, 0x64, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x7d, 0x12, 0x39, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x5f, 0x62, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x7d, 0x2f, 0x6f, + 0x66, 0x66, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x7d, 0x0a, 0x31, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, + 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, + 0x50, 0x01, 0x5a, 0x53, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, + 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x63, + 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x3b, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDescOnce sync.Once + file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDescData = file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDesc +) + +func file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDescGZIP() []byte { + file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDescOnce.Do(func() { + file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDescData) + }) + return file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDescData +} + +var file_google_cloud_commerce_consumer_procurement_v1_order_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_google_cloud_commerce_consumer_procurement_v1_order_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_google_cloud_commerce_consumer_procurement_v1_order_proto_goTypes = []interface{}{ + (LineItemChangeType)(0), // 0: google.cloud.commerce.consumer.procurement.v1.LineItemChangeType + (LineItemChangeState)(0), // 1: google.cloud.commerce.consumer.procurement.v1.LineItemChangeState + (LineItemChangeStateReasonType)(0), // 2: google.cloud.commerce.consumer.procurement.v1.LineItemChangeStateReasonType + (*Order)(nil), // 3: google.cloud.commerce.consumer.procurement.v1.Order + (*LineItem)(nil), // 4: google.cloud.commerce.consumer.procurement.v1.LineItem + (*LineItemChange)(nil), // 5: google.cloud.commerce.consumer.procurement.v1.LineItemChange + (*LineItemInfo)(nil), // 6: google.cloud.commerce.consumer.procurement.v1.LineItemInfo + (*Parameter)(nil), // 7: google.cloud.commerce.consumer.procurement.v1.Parameter + (*Subscription)(nil), // 8: google.cloud.commerce.consumer.procurement.v1.Subscription + (*Parameter_Value)(nil), // 9: google.cloud.commerce.consumer.procurement.v1.Parameter.Value + (*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp +} +var file_google_cloud_commerce_consumer_procurement_v1_order_proto_depIdxs = []int32{ + 4, // 0: google.cloud.commerce.consumer.procurement.v1.Order.line_items:type_name -> google.cloud.commerce.consumer.procurement.v1.LineItem + 4, // 1: google.cloud.commerce.consumer.procurement.v1.Order.cancelled_line_items:type_name -> google.cloud.commerce.consumer.procurement.v1.LineItem + 10, // 2: google.cloud.commerce.consumer.procurement.v1.Order.create_time:type_name -> google.protobuf.Timestamp + 10, // 3: google.cloud.commerce.consumer.procurement.v1.Order.update_time:type_name -> google.protobuf.Timestamp + 6, // 4: google.cloud.commerce.consumer.procurement.v1.LineItem.line_item_info:type_name -> google.cloud.commerce.consumer.procurement.v1.LineItemInfo + 5, // 5: google.cloud.commerce.consumer.procurement.v1.LineItem.pending_change:type_name -> google.cloud.commerce.consumer.procurement.v1.LineItemChange + 5, // 6: google.cloud.commerce.consumer.procurement.v1.LineItem.change_history:type_name -> google.cloud.commerce.consumer.procurement.v1.LineItemChange + 0, // 7: google.cloud.commerce.consumer.procurement.v1.LineItemChange.change_type:type_name -> google.cloud.commerce.consumer.procurement.v1.LineItemChangeType + 6, // 8: google.cloud.commerce.consumer.procurement.v1.LineItemChange.old_line_item_info:type_name -> google.cloud.commerce.consumer.procurement.v1.LineItemInfo + 6, // 9: google.cloud.commerce.consumer.procurement.v1.LineItemChange.new_line_item_info:type_name -> google.cloud.commerce.consumer.procurement.v1.LineItemInfo + 1, // 10: google.cloud.commerce.consumer.procurement.v1.LineItemChange.change_state:type_name -> google.cloud.commerce.consumer.procurement.v1.LineItemChangeState + 2, // 11: google.cloud.commerce.consumer.procurement.v1.LineItemChange.change_state_reason_type:type_name -> google.cloud.commerce.consumer.procurement.v1.LineItemChangeStateReasonType + 10, // 12: google.cloud.commerce.consumer.procurement.v1.LineItemChange.change_effective_time:type_name -> google.protobuf.Timestamp + 10, // 13: google.cloud.commerce.consumer.procurement.v1.LineItemChange.create_time:type_name -> google.protobuf.Timestamp + 10, // 14: google.cloud.commerce.consumer.procurement.v1.LineItemChange.update_time:type_name -> google.protobuf.Timestamp + 7, // 15: google.cloud.commerce.consumer.procurement.v1.LineItemInfo.parameters:type_name -> google.cloud.commerce.consumer.procurement.v1.Parameter + 8, // 16: google.cloud.commerce.consumer.procurement.v1.LineItemInfo.subscription:type_name -> google.cloud.commerce.consumer.procurement.v1.Subscription + 9, // 17: google.cloud.commerce.consumer.procurement.v1.Parameter.value:type_name -> google.cloud.commerce.consumer.procurement.v1.Parameter.Value + 10, // 18: google.cloud.commerce.consumer.procurement.v1.Subscription.start_time:type_name -> google.protobuf.Timestamp + 10, // 19: google.cloud.commerce.consumer.procurement.v1.Subscription.end_time:type_name -> google.protobuf.Timestamp + 20, // [20:20] is the sub-list for method output_type + 20, // [20:20] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name +} + +func init() { file_google_cloud_commerce_consumer_procurement_v1_order_proto_init() } +func file_google_cloud_commerce_consumer_procurement_v1_order_proto_init() { + if File_google_cloud_commerce_consumer_procurement_v1_order_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_commerce_consumer_procurement_v1_order_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Order); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_commerce_consumer_procurement_v1_order_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LineItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_commerce_consumer_procurement_v1_order_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LineItemChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_commerce_consumer_procurement_v1_order_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LineItemInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_commerce_consumer_procurement_v1_order_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Parameter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_commerce_consumer_procurement_v1_order_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Subscription); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_commerce_consumer_procurement_v1_order_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Parameter_Value); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_commerce_consumer_procurement_v1_order_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*Parameter_Value_Int64Value)(nil), + (*Parameter_Value_StringValue)(nil), + (*Parameter_Value_DoubleValue)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDesc, + NumEnums: 3, + NumMessages: 7, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_commerce_consumer_procurement_v1_order_proto_goTypes, + DependencyIndexes: file_google_cloud_commerce_consumer_procurement_v1_order_proto_depIdxs, + EnumInfos: file_google_cloud_commerce_consumer_procurement_v1_order_proto_enumTypes, + MessageInfos: file_google_cloud_commerce_consumer_procurement_v1_order_proto_msgTypes, + }.Build() + File_google_cloud_commerce_consumer_procurement_v1_order_proto = out.File + file_google_cloud_commerce_consumer_procurement_v1_order_proto_rawDesc = nil + file_google_cloud_commerce_consumer_procurement_v1_order_proto_goTypes = nil + file_google_cloud_commerce_consumer_procurement_v1_order_proto_depIdxs = nil +} diff --git a/commerce/consumer/procurement/apiv1/procurementpb/procurement_service.pb.go b/commerce/consumer/procurement/apiv1/procurementpb/procurement_service.pb.go new file mode 100755 index 00000000000..a82521a82c3 --- /dev/null +++ b/commerce/consumer/procurement/apiv1/procurementpb/procurement_service.pb.go @@ -0,0 +1,806 @@ +// 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.30.0 +// protoc v4.23.2 +// source: google/cloud/commerce/consumer/procurement/v1/procurement_service.proto + +package procurementpb + +import ( + context "context" + reflect "reflect" + sync "sync" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + _ "google.golang.org/genproto/googleapis/api/annotations" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + 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) +) + +// Request message for +// [ConsumerProcurementService.PlaceOrder][google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.PlaceOrder]. +type PlaceOrderRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the parent resource. + // This field has the form `billingAccounts/{billing-account-id}`. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The user-specified name of the order being placed. + DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Optional. Places order for offer. Required when an offer-based order is + // being placed. + LineItemInfo []*LineItemInfo `protobuf:"bytes,10,rep,name=line_item_info,json=lineItemInfo,proto3" json:"line_item_info,omitempty"` + // Optional. A unique identifier for this request. + // The server will ignore subsequent requests that provide a duplicate request + // ID for at least 120 minutes after the first request. + // + // The request ID must be a valid + // [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format). + RequestId string `protobuf:"bytes,7,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *PlaceOrderRequest) Reset() { + *x = PlaceOrderRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlaceOrderRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlaceOrderRequest) ProtoMessage() {} + +func (x *PlaceOrderRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_commerce_consumer_procurement_v1_procurement_service_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 PlaceOrderRequest.ProtoReflect.Descriptor instead. +func (*PlaceOrderRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_rawDescGZIP(), []int{0} +} + +func (x *PlaceOrderRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *PlaceOrderRequest) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *PlaceOrderRequest) GetLineItemInfo() []*LineItemInfo { + if x != nil { + return x.LineItemInfo + } + return nil +} + +func (x *PlaceOrderRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message stored in the metadata field of the Operation returned by +// [ConsumerProcurementService.PlaceOrder][google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.PlaceOrder]. +type PlaceOrderMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PlaceOrderMetadata) Reset() { + *x = PlaceOrderMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlaceOrderMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlaceOrderMetadata) ProtoMessage() {} + +func (x *PlaceOrderMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_commerce_consumer_procurement_v1_procurement_service_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 PlaceOrderMetadata.ProtoReflect.Descriptor instead. +func (*PlaceOrderMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_rawDescGZIP(), []int{1} +} + +// Request message for +// [ConsumerProcurementService.GetOrder][google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.GetOrder] +type GetOrderRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the order to retrieve. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetOrderRequest) Reset() { + *x = GetOrderRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetOrderRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOrderRequest) ProtoMessage() {} + +func (x *GetOrderRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_commerce_consumer_procurement_v1_procurement_service_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 GetOrderRequest.ProtoReflect.Descriptor instead. +func (*GetOrderRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_rawDescGZIP(), []int{2} +} + +func (x *GetOrderRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for +// [ConsumerProcurementService.ListOrders][google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.ListOrders]. +type ListOrdersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource to query for orders. + // This field has the form `billingAccounts/{billing-account-id}`. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of entries requested. + // The default page size is 25 and the maximum page size is 200. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The token for fetching the next page. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filter that you can use to limit the list request. + // + // A query string that can match a selected set of attributes + // with string values. For example, `display_name=abc`. + // Supported query attributes are + // + // * `display_name` + // + // If the query contains special characters other than letters, + // underscore, or digits, the phrase must be quoted with double quotes. For + // example, `display_name="foo:bar"`, where the display name needs to be + // quoted because it contains special character colon. + // + // Queries can be combined with `OR`, and `NOT` to form more complex queries. + // You can also group them to force a desired evaluation order. + // For example, `display_name=abc OR display_name=def`. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListOrdersRequest) Reset() { + *x = ListOrdersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListOrdersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListOrdersRequest) ProtoMessage() {} + +func (x *ListOrdersRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_commerce_consumer_procurement_v1_procurement_service_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 ListOrdersRequest.ProtoReflect.Descriptor instead. +func (*ListOrdersRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_rawDescGZIP(), []int{3} +} + +func (x *ListOrdersRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListOrdersRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListOrdersRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListOrdersRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +// Response message for +// [ConsumerProcurementService.ListOrders][google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.ListOrders]. +type ListOrdersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of orders in this response. + Orders []*Order `protobuf:"bytes,1,rep,name=orders,proto3" json:"orders,omitempty"` + // The token for fetching the next page. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListOrdersResponse) Reset() { + *x = ListOrdersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListOrdersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListOrdersResponse) ProtoMessage() {} + +func (x *ListOrdersResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_commerce_consumer_procurement_v1_procurement_service_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 ListOrdersResponse.ProtoReflect.Descriptor instead. +func (*ListOrdersResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_rawDescGZIP(), []int{4} +} + +func (x *ListOrdersResponse) GetOrders() []*Order { + if x != nil { + return x.Orders + } + return nil +} + +func (x *ListOrdersResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +var File_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto protoreflect.FileDescriptor + +var file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_rawDesc = []byte{ + 0x0a, 0x47, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, + 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 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, 0x39, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, + 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x63, + 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, + 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x93, 0x02, 0x0a, 0x11, + 0x50, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x4a, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x32, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2c, 0x0a, 0x2a, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, + 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x66, 0x0a, 0x0e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x74, + 0x65, 0x6d, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x0c, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, + 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x64, 0x22, 0x14, 0x0a, 0x12, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2a, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x22, 0x84, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x8a, 0x01, 0x0a, 0x12, 0x4c, + 0x69, 0x73, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xcc, 0x05, 0x0a, 0x1a, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc3, 0x01, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x63, 0x65, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x54, 0xca, 0x41, 0x1b, 0x0a, 0x05, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x12, 0x12, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x3a, 0x01, 0x2a, 0x22, + 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x62, 0x69, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x3a, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x12, 0xb6, 0x01, 0x0a, + 0x08, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, + 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, + 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x22, + 0x34, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc9, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x73, 0x12, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0xda, 0x41, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x73, 0x1a, 0x63, 0xca, 0x41, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x72, 0x63, 0x65, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x70, 0x72, 0x6f, 0x63, 0x75, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 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, 0x9f, 0x02, 0x0a, 0x31, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x72, 0x63, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x70, 0x72, + 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x50, 0x01, 0x5a, 0x53, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x70, 0x62, 0x3b, 0x70, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x70, 0x62, 0xaa, 0x02, 0x2d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x56, 0x31, 0xca, 0x02, 0x2d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x5c, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x5c, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x65, 0x72, 0x5c, 0x50, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x5c, 0x56, 0x31, 0xea, 0x02, 0x32, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x65, 0x3a, 0x3a, 0x43, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x63, 0x75, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_rawDescOnce sync.Once + file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_rawDescData = file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_rawDesc +) + +func file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_rawDescGZIP() []byte { + file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_rawDescOnce.Do(func() { + file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_rawDescData) + }) + return file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_rawDescData +} + +var file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_goTypes = []interface{}{ + (*PlaceOrderRequest)(nil), // 0: google.cloud.commerce.consumer.procurement.v1.PlaceOrderRequest + (*PlaceOrderMetadata)(nil), // 1: google.cloud.commerce.consumer.procurement.v1.PlaceOrderMetadata + (*GetOrderRequest)(nil), // 2: google.cloud.commerce.consumer.procurement.v1.GetOrderRequest + (*ListOrdersRequest)(nil), // 3: google.cloud.commerce.consumer.procurement.v1.ListOrdersRequest + (*ListOrdersResponse)(nil), // 4: google.cloud.commerce.consumer.procurement.v1.ListOrdersResponse + (*LineItemInfo)(nil), // 5: google.cloud.commerce.consumer.procurement.v1.LineItemInfo + (*Order)(nil), // 6: google.cloud.commerce.consumer.procurement.v1.Order + (*longrunningpb.Operation)(nil), // 7: google.longrunning.Operation +} +var file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_depIdxs = []int32{ + 5, // 0: google.cloud.commerce.consumer.procurement.v1.PlaceOrderRequest.line_item_info:type_name -> google.cloud.commerce.consumer.procurement.v1.LineItemInfo + 6, // 1: google.cloud.commerce.consumer.procurement.v1.ListOrdersResponse.orders:type_name -> google.cloud.commerce.consumer.procurement.v1.Order + 0, // 2: google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.PlaceOrder:input_type -> google.cloud.commerce.consumer.procurement.v1.PlaceOrderRequest + 2, // 3: google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.GetOrder:input_type -> google.cloud.commerce.consumer.procurement.v1.GetOrderRequest + 3, // 4: google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.ListOrders:input_type -> google.cloud.commerce.consumer.procurement.v1.ListOrdersRequest + 7, // 5: google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.PlaceOrder:output_type -> google.longrunning.Operation + 6, // 6: google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.GetOrder:output_type -> google.cloud.commerce.consumer.procurement.v1.Order + 4, // 7: google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.ListOrders:output_type -> google.cloud.commerce.consumer.procurement.v1.ListOrdersResponse + 5, // [5:8] is the sub-list for method output_type + 2, // [2:5] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_init() } +func file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_init() { + if File_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto != nil { + return + } + file_google_cloud_commerce_consumer_procurement_v1_order_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlaceOrderRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlaceOrderMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetOrderRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListOrdersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListOrdersResponse); 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_commerce_consumer_procurement_v1_procurement_service_proto_rawDesc, + NumEnums: 0, + NumMessages: 5, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_goTypes, + DependencyIndexes: file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_depIdxs, + MessageInfos: file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_msgTypes, + }.Build() + File_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto = out.File + file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_rawDesc = nil + file_google_cloud_commerce_consumer_procurement_v1_procurement_service_proto_goTypes = nil + file_google_cloud_commerce_consumer_procurement_v1_procurement_service_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 + +// ConsumerProcurementServiceClient is the client API for ConsumerProcurementService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type ConsumerProcurementServiceClient interface { + // Creates a new [Order][google.cloud.commerce.consumer.procurement.v1.Order]. + // + // This API only supports GCP spend-based committed use + // discounts specified by GCP documentation. + // + // The returned long-running operation is in-progress until the backend + // completes the creation of the resource. Once completed, the order is + // in + // [OrderState.ORDER_STATE_ACTIVE][google.cloud.commerce.consumer.procurement.v1.OrderState.ORDER_STATE_ACTIVE]. + // In case of failure, the order resource will be removed. + PlaceOrder(ctx context.Context, in *PlaceOrderRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Returns the requested + // [Order][google.cloud.commerce.consumer.procurement.v1.Order] resource. + GetOrder(ctx context.Context, in *GetOrderRequest, opts ...grpc.CallOption) (*Order, error) + // Lists [Order][google.cloud.commerce.consumer.procurement.v1.Order] + // resources that the user has access to, within the scope of the parent + // resource. + ListOrders(ctx context.Context, in *ListOrdersRequest, opts ...grpc.CallOption) (*ListOrdersResponse, error) +} + +type consumerProcurementServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewConsumerProcurementServiceClient(cc grpc.ClientConnInterface) ConsumerProcurementServiceClient { + return &consumerProcurementServiceClient{cc} +} + +func (c *consumerProcurementServiceClient) PlaceOrder(ctx context.Context, in *PlaceOrderRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService/PlaceOrder", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *consumerProcurementServiceClient) GetOrder(ctx context.Context, in *GetOrderRequest, opts ...grpc.CallOption) (*Order, error) { + out := new(Order) + err := c.cc.Invoke(ctx, "/google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService/GetOrder", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *consumerProcurementServiceClient) ListOrders(ctx context.Context, in *ListOrdersRequest, opts ...grpc.CallOption) (*ListOrdersResponse, error) { + out := new(ListOrdersResponse) + err := c.cc.Invoke(ctx, "/google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService/ListOrders", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ConsumerProcurementServiceServer is the server API for ConsumerProcurementService service. +type ConsumerProcurementServiceServer interface { + // Creates a new [Order][google.cloud.commerce.consumer.procurement.v1.Order]. + // + // This API only supports GCP spend-based committed use + // discounts specified by GCP documentation. + // + // The returned long-running operation is in-progress until the backend + // completes the creation of the resource. Once completed, the order is + // in + // [OrderState.ORDER_STATE_ACTIVE][google.cloud.commerce.consumer.procurement.v1.OrderState.ORDER_STATE_ACTIVE]. + // In case of failure, the order resource will be removed. + PlaceOrder(context.Context, *PlaceOrderRequest) (*longrunningpb.Operation, error) + // Returns the requested + // [Order][google.cloud.commerce.consumer.procurement.v1.Order] resource. + GetOrder(context.Context, *GetOrderRequest) (*Order, error) + // Lists [Order][google.cloud.commerce.consumer.procurement.v1.Order] + // resources that the user has access to, within the scope of the parent + // resource. + ListOrders(context.Context, *ListOrdersRequest) (*ListOrdersResponse, error) +} + +// UnimplementedConsumerProcurementServiceServer can be embedded to have forward compatible implementations. +type UnimplementedConsumerProcurementServiceServer struct { +} + +func (*UnimplementedConsumerProcurementServiceServer) PlaceOrder(context.Context, *PlaceOrderRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method PlaceOrder not implemented") +} +func (*UnimplementedConsumerProcurementServiceServer) GetOrder(context.Context, *GetOrderRequest) (*Order, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetOrder not implemented") +} +func (*UnimplementedConsumerProcurementServiceServer) ListOrders(context.Context, *ListOrdersRequest) (*ListOrdersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListOrders not implemented") +} + +func RegisterConsumerProcurementServiceServer(s *grpc.Server, srv ConsumerProcurementServiceServer) { + s.RegisterService(&_ConsumerProcurementService_serviceDesc, srv) +} + +func _ConsumerProcurementService_PlaceOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PlaceOrderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConsumerProcurementServiceServer).PlaceOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService/PlaceOrder", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConsumerProcurementServiceServer).PlaceOrder(ctx, req.(*PlaceOrderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ConsumerProcurementService_GetOrder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetOrderRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConsumerProcurementServiceServer).GetOrder(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService/GetOrder", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConsumerProcurementServiceServer).GetOrder(ctx, req.(*GetOrderRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ConsumerProcurementService_ListOrders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListOrdersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConsumerProcurementServiceServer).ListOrders(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService/ListOrders", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConsumerProcurementServiceServer).ListOrders(ctx, req.(*ListOrdersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _ConsumerProcurementService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService", + HandlerType: (*ConsumerProcurementServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "PlaceOrder", + Handler: _ConsumerProcurementService_PlaceOrder_Handler, + }, + { + MethodName: "GetOrder", + Handler: _ConsumerProcurementService_GetOrder_Handler, + }, + { + MethodName: "ListOrders", + Handler: _ConsumerProcurementService_ListOrders_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/commerce/consumer/procurement/v1/procurement_service.proto", +} diff --git a/commerce/consumer/procurement/apiv1/version.go b/commerce/consumer/procurement/apiv1/version.go new file mode 100644 index 00000000000..44c3968bbf0 --- /dev/null +++ b/commerce/consumer/procurement/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 procurement + +import "cloud.google.com/go/commerce/internal" + +func init() { + versionClient = internal.Version +} diff --git a/commerce/go.mod b/commerce/go.mod new file mode 100644 index 00000000000..4a5d85b2b1f --- /dev/null +++ b/commerce/go.mod @@ -0,0 +1,32 @@ +module cloud.google.com/go/commerce + +go 1.20 + +require ( + cloud.google.com/go/longrunning v0.5.1 + github.com/googleapis/gax-go/v2 v2.12.0 + google.golang.org/api v0.133.0 + google.golang.org/genproto/googleapis/api v0.0.0-20230724170836-66ad5b6ff146 + google.golang.org/grpc v1.56.2 + google.golang.org/protobuf v1.31.0 +) + +require ( + cloud.google.com/go v0.110.4 // indirect + cloud.google.com/go/compute v1.20.1 // indirect + cloud.google.com/go/compute/metadata v0.2.3 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/go-cmp v0.5.9 // indirect + github.com/google/s2a-go v0.1.4 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.2.5 // indirect + go.opencensus.io v0.24.0 // indirect + golang.org/x/crypto v0.11.0 // indirect + golang.org/x/net v0.12.0 // indirect + golang.org/x/oauth2 v0.10.0 // indirect + golang.org/x/sys v0.10.0 // indirect + golang.org/x/text v0.11.0 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230720185612-659f7aaaa771 // indirect +) diff --git a/commerce/go.sum b/commerce/go.sum new file mode 100644 index 00000000000..f638ab55fcb --- /dev/null +++ b/commerce/go.sum @@ -0,0 +1,197 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.110.4 h1:1JYyxKMN9hd5dR2MYTPWkGUgcoxVVhg0LKNKEo0qvmk= +cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= +cloud.google.com/go/compute v1.20.1 h1:6aKEtlUiwEpJzM001l0yFkpXmUVXaN8W+fbkb2AZNbg= +cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/longrunning v0.5.1 h1:Fr7TXftcqTudoyRJa113hyaqlGdiBQkp0Gq7tErFDWI= +cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHSQl/fRUUQJYJc= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= +github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.2.5 h1:UR4rDjcgpgEnqpIEvkiqTYKBCKLNmlge2eVjoZfySzM= +github.com/googleapis/enterprise-certificate-proxy v0.2.5/go.mod h1:RxW0N9901Cko1VOCW3SXCpWP+mlIEkk2tP7jnHy9a3w= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= +golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.10.0 h1:zHCpF2Khkwy4mMB4bv0U37YtJdTGW8jI0glAApi0Kh8= +golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.133.0 h1:N7Ym5Hl0Dpn0I0o7R1z4UpVA1GCDyS8vbPu1/ObV73A= +google.golang.org/api v0.133.0/go.mod h1:sjRL3UnjTx5UqNQS9EWr9N8p7xbHpy1k0XGRLCf3Spk= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 h1:Au6te5hbKUV8pIYWHqOUZ1pva5qK/rwbIhoXEUB9Lu8= +google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y= +google.golang.org/genproto/googleapis/api v0.0.0-20230724170836-66ad5b6ff146 h1:P60zJj7Yxq1VhZIxpRO7A5lDFyy07D6Dqa+HCixuFBM= +google.golang.org/genproto/googleapis/api v0.0.0-20230724170836-66ad5b6ff146/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230720185612-659f7aaaa771 h1:Z8qdAF9GFsmcUuWQ5KVYIpP3PCKydn/YKORnghIalu4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230720185612-659f7aaaa771/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.56.2 h1:fVRFRnXvU+x6C4IlHZewvJOVHoOv1TUuQyoRsYnB4bI= +google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/commerce/internal/version.go b/commerce/internal/version.go new file mode 100644 index 00000000000..2734cec844c --- /dev/null +++ b/commerce/internal/version.go @@ -0,0 +1,20 @@ +// 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 internal + +// Version is the current tagged release of the library. +const Version = "0.0.0" diff --git a/dataplex/apiv1/data_taxonomy_client.go b/dataplex/apiv1/data_taxonomy_client.go new file mode 100755 index 00000000000..cbdb392655f --- /dev/null +++ b/dataplex/apiv1/data_taxonomy_client.go @@ -0,0 +1,1675 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package dataplex + +import ( + "context" + "fmt" + "math" + "net/url" + "time" + + dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb" + "cloud.google.com/go/longrunning" + lroauto "cloud.google.com/go/longrunning/autogen" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/iterator" + "google.golang.org/api/option" + "google.golang.org/api/option/internaloption" + gtransport "google.golang.org/api/transport/grpc" + locationpb "google.golang.org/genproto/googleapis/cloud/location" + "google.golang.org/grpc" + "google.golang.org/grpc/metadata" + "google.golang.org/protobuf/proto" +) + +var newDataTaxonomyClientHook clientHook + +// DataTaxonomyCallOptions contains the retry settings for each method of DataTaxonomyClient. +type DataTaxonomyCallOptions struct { + CreateDataTaxonomy []gax.CallOption + UpdateDataTaxonomy []gax.CallOption + DeleteDataTaxonomy []gax.CallOption + ListDataTaxonomies []gax.CallOption + GetDataTaxonomy []gax.CallOption + CreateDataAttributeBinding []gax.CallOption + UpdateDataAttributeBinding []gax.CallOption + DeleteDataAttributeBinding []gax.CallOption + ListDataAttributeBindings []gax.CallOption + GetDataAttributeBinding []gax.CallOption + CreateDataAttribute []gax.CallOption + UpdateDataAttribute []gax.CallOption + DeleteDataAttribute []gax.CallOption + ListDataAttributes []gax.CallOption + GetDataAttribute []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption +} + +func defaultDataTaxonomyGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("dataplex.googleapis.com:443"), + internaloption.WithDefaultMTLSEndpoint("dataplex.mtls.googleapis.com:443"), + internaloption.WithDefaultAudience("https://dataplex.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultDataTaxonomyCallOptions() *DataTaxonomyCallOptions { + return &DataTaxonomyCallOptions{ + CreateDataTaxonomy: []gax.CallOption{}, + UpdateDataTaxonomy: []gax.CallOption{}, + DeleteDataTaxonomy: []gax.CallOption{}, + ListDataTaxonomies: []gax.CallOption{}, + GetDataTaxonomy: []gax.CallOption{}, + CreateDataAttributeBinding: []gax.CallOption{}, + UpdateDataAttributeBinding: []gax.CallOption{}, + DeleteDataAttributeBinding: []gax.CallOption{}, + ListDataAttributeBindings: []gax.CallOption{}, + GetDataAttributeBinding: []gax.CallOption{}, + CreateDataAttribute: []gax.CallOption{}, + UpdateDataAttribute: []gax.CallOption{}, + DeleteDataAttribute: []gax.CallOption{}, + ListDataAttributes: []gax.CallOption{}, + GetDataAttribute: []gax.CallOption{}, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +// internalDataTaxonomyClient is an interface that defines the methods available from Cloud Dataplex API. +type internalDataTaxonomyClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + CreateDataTaxonomy(context.Context, *dataplexpb.CreateDataTaxonomyRequest, ...gax.CallOption) (*CreateDataTaxonomyOperation, error) + CreateDataTaxonomyOperation(name string) *CreateDataTaxonomyOperation + UpdateDataTaxonomy(context.Context, *dataplexpb.UpdateDataTaxonomyRequest, ...gax.CallOption) (*UpdateDataTaxonomyOperation, error) + UpdateDataTaxonomyOperation(name string) *UpdateDataTaxonomyOperation + DeleteDataTaxonomy(context.Context, *dataplexpb.DeleteDataTaxonomyRequest, ...gax.CallOption) (*DeleteDataTaxonomyOperation, error) + DeleteDataTaxonomyOperation(name string) *DeleteDataTaxonomyOperation + ListDataTaxonomies(context.Context, *dataplexpb.ListDataTaxonomiesRequest, ...gax.CallOption) *DataTaxonomyIterator + GetDataTaxonomy(context.Context, *dataplexpb.GetDataTaxonomyRequest, ...gax.CallOption) (*dataplexpb.DataTaxonomy, error) + CreateDataAttributeBinding(context.Context, *dataplexpb.CreateDataAttributeBindingRequest, ...gax.CallOption) (*CreateDataAttributeBindingOperation, error) + CreateDataAttributeBindingOperation(name string) *CreateDataAttributeBindingOperation + UpdateDataAttributeBinding(context.Context, *dataplexpb.UpdateDataAttributeBindingRequest, ...gax.CallOption) (*UpdateDataAttributeBindingOperation, error) + UpdateDataAttributeBindingOperation(name string) *UpdateDataAttributeBindingOperation + DeleteDataAttributeBinding(context.Context, *dataplexpb.DeleteDataAttributeBindingRequest, ...gax.CallOption) (*DeleteDataAttributeBindingOperation, error) + DeleteDataAttributeBindingOperation(name string) *DeleteDataAttributeBindingOperation + ListDataAttributeBindings(context.Context, *dataplexpb.ListDataAttributeBindingsRequest, ...gax.CallOption) *DataAttributeBindingIterator + GetDataAttributeBinding(context.Context, *dataplexpb.GetDataAttributeBindingRequest, ...gax.CallOption) (*dataplexpb.DataAttributeBinding, error) + CreateDataAttribute(context.Context, *dataplexpb.CreateDataAttributeRequest, ...gax.CallOption) (*CreateDataAttributeOperation, error) + CreateDataAttributeOperation(name string) *CreateDataAttributeOperation + UpdateDataAttribute(context.Context, *dataplexpb.UpdateDataAttributeRequest, ...gax.CallOption) (*UpdateDataAttributeOperation, error) + UpdateDataAttributeOperation(name string) *UpdateDataAttributeOperation + DeleteDataAttribute(context.Context, *dataplexpb.DeleteDataAttributeRequest, ...gax.CallOption) (*DeleteDataAttributeOperation, error) + DeleteDataAttributeOperation(name string) *DeleteDataAttributeOperation + ListDataAttributes(context.Context, *dataplexpb.ListDataAttributesRequest, ...gax.CallOption) *DataAttributeIterator + GetDataAttribute(context.Context, *dataplexpb.GetDataAttributeRequest, ...gax.CallOption) (*dataplexpb.DataAttribute, error) + GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) + ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator + CancelOperation(context.Context, *longrunningpb.CancelOperationRequest, ...gax.CallOption) error + DeleteOperation(context.Context, *longrunningpb.DeleteOperationRequest, ...gax.CallOption) error + GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) + ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator +} + +// DataTaxonomyClient is a client for interacting with Cloud Dataplex API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// DataTaxonomyService enables attribute-based governance. The resources +// currently offered include DataTaxonomy and DataAttribute. +type DataTaxonomyClient struct { + // The internal transport-dependent client. + internalClient internalDataTaxonomyClient + + // The call options for this service. + CallOptions *DataTaxonomyCallOptions + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient *lroauto.OperationsClient +} + +// 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 *DataTaxonomyClient) 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 *DataTaxonomyClient) 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 *DataTaxonomyClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// CreateDataTaxonomy create a DataTaxonomy resource. +func (c *DataTaxonomyClient) CreateDataTaxonomy(ctx context.Context, req *dataplexpb.CreateDataTaxonomyRequest, opts ...gax.CallOption) (*CreateDataTaxonomyOperation, error) { + return c.internalClient.CreateDataTaxonomy(ctx, req, opts...) +} + +// CreateDataTaxonomyOperation returns a new CreateDataTaxonomyOperation from a given name. +// The name must be that of a previously created CreateDataTaxonomyOperation, possibly from a different process. +func (c *DataTaxonomyClient) CreateDataTaxonomyOperation(name string) *CreateDataTaxonomyOperation { + return c.internalClient.CreateDataTaxonomyOperation(name) +} + +// UpdateDataTaxonomy updates a DataTaxonomy resource. +func (c *DataTaxonomyClient) UpdateDataTaxonomy(ctx context.Context, req *dataplexpb.UpdateDataTaxonomyRequest, opts ...gax.CallOption) (*UpdateDataTaxonomyOperation, error) { + return c.internalClient.UpdateDataTaxonomy(ctx, req, opts...) +} + +// UpdateDataTaxonomyOperation returns a new UpdateDataTaxonomyOperation from a given name. +// The name must be that of a previously created UpdateDataTaxonomyOperation, possibly from a different process. +func (c *DataTaxonomyClient) UpdateDataTaxonomyOperation(name string) *UpdateDataTaxonomyOperation { + return c.internalClient.UpdateDataTaxonomyOperation(name) +} + +// DeleteDataTaxonomy deletes a DataTaxonomy resource. All attributes within the DataTaxonomy +// must be deleted before the DataTaxonomy can be deleted. +func (c *DataTaxonomyClient) DeleteDataTaxonomy(ctx context.Context, req *dataplexpb.DeleteDataTaxonomyRequest, opts ...gax.CallOption) (*DeleteDataTaxonomyOperation, error) { + return c.internalClient.DeleteDataTaxonomy(ctx, req, opts...) +} + +// DeleteDataTaxonomyOperation returns a new DeleteDataTaxonomyOperation from a given name. +// The name must be that of a previously created DeleteDataTaxonomyOperation, possibly from a different process. +func (c *DataTaxonomyClient) DeleteDataTaxonomyOperation(name string) *DeleteDataTaxonomyOperation { + return c.internalClient.DeleteDataTaxonomyOperation(name) +} + +// ListDataTaxonomies lists DataTaxonomy resources in a project and location. +func (c *DataTaxonomyClient) ListDataTaxonomies(ctx context.Context, req *dataplexpb.ListDataTaxonomiesRequest, opts ...gax.CallOption) *DataTaxonomyIterator { + return c.internalClient.ListDataTaxonomies(ctx, req, opts...) +} + +// GetDataTaxonomy retrieves a DataTaxonomy resource. +func (c *DataTaxonomyClient) GetDataTaxonomy(ctx context.Context, req *dataplexpb.GetDataTaxonomyRequest, opts ...gax.CallOption) (*dataplexpb.DataTaxonomy, error) { + return c.internalClient.GetDataTaxonomy(ctx, req, opts...) +} + +// CreateDataAttributeBinding create a DataAttributeBinding resource. +func (c *DataTaxonomyClient) CreateDataAttributeBinding(ctx context.Context, req *dataplexpb.CreateDataAttributeBindingRequest, opts ...gax.CallOption) (*CreateDataAttributeBindingOperation, error) { + return c.internalClient.CreateDataAttributeBinding(ctx, req, opts...) +} + +// CreateDataAttributeBindingOperation returns a new CreateDataAttributeBindingOperation from a given name. +// The name must be that of a previously created CreateDataAttributeBindingOperation, possibly from a different process. +func (c *DataTaxonomyClient) CreateDataAttributeBindingOperation(name string) *CreateDataAttributeBindingOperation { + return c.internalClient.CreateDataAttributeBindingOperation(name) +} + +// UpdateDataAttributeBinding updates a DataAttributeBinding resource. +func (c *DataTaxonomyClient) UpdateDataAttributeBinding(ctx context.Context, req *dataplexpb.UpdateDataAttributeBindingRequest, opts ...gax.CallOption) (*UpdateDataAttributeBindingOperation, error) { + return c.internalClient.UpdateDataAttributeBinding(ctx, req, opts...) +} + +// UpdateDataAttributeBindingOperation returns a new UpdateDataAttributeBindingOperation from a given name. +// The name must be that of a previously created UpdateDataAttributeBindingOperation, possibly from a different process. +func (c *DataTaxonomyClient) UpdateDataAttributeBindingOperation(name string) *UpdateDataAttributeBindingOperation { + return c.internalClient.UpdateDataAttributeBindingOperation(name) +} + +// DeleteDataAttributeBinding deletes a DataAttributeBinding resource. All attributes within the +// DataAttributeBinding must be deleted before the DataAttributeBinding can be +// deleted. +func (c *DataTaxonomyClient) DeleteDataAttributeBinding(ctx context.Context, req *dataplexpb.DeleteDataAttributeBindingRequest, opts ...gax.CallOption) (*DeleteDataAttributeBindingOperation, error) { + return c.internalClient.DeleteDataAttributeBinding(ctx, req, opts...) +} + +// DeleteDataAttributeBindingOperation returns a new DeleteDataAttributeBindingOperation from a given name. +// The name must be that of a previously created DeleteDataAttributeBindingOperation, possibly from a different process. +func (c *DataTaxonomyClient) DeleteDataAttributeBindingOperation(name string) *DeleteDataAttributeBindingOperation { + return c.internalClient.DeleteDataAttributeBindingOperation(name) +} + +// ListDataAttributeBindings lists DataAttributeBinding resources in a project and location. +func (c *DataTaxonomyClient) ListDataAttributeBindings(ctx context.Context, req *dataplexpb.ListDataAttributeBindingsRequest, opts ...gax.CallOption) *DataAttributeBindingIterator { + return c.internalClient.ListDataAttributeBindings(ctx, req, opts...) +} + +// GetDataAttributeBinding retrieves a DataAttributeBinding resource. +func (c *DataTaxonomyClient) GetDataAttributeBinding(ctx context.Context, req *dataplexpb.GetDataAttributeBindingRequest, opts ...gax.CallOption) (*dataplexpb.DataAttributeBinding, error) { + return c.internalClient.GetDataAttributeBinding(ctx, req, opts...) +} + +// CreateDataAttribute create a DataAttribute resource. +func (c *DataTaxonomyClient) CreateDataAttribute(ctx context.Context, req *dataplexpb.CreateDataAttributeRequest, opts ...gax.CallOption) (*CreateDataAttributeOperation, error) { + return c.internalClient.CreateDataAttribute(ctx, req, opts...) +} + +// CreateDataAttributeOperation returns a new CreateDataAttributeOperation from a given name. +// The name must be that of a previously created CreateDataAttributeOperation, possibly from a different process. +func (c *DataTaxonomyClient) CreateDataAttributeOperation(name string) *CreateDataAttributeOperation { + return c.internalClient.CreateDataAttributeOperation(name) +} + +// UpdateDataAttribute updates a DataAttribute resource. +func (c *DataTaxonomyClient) UpdateDataAttribute(ctx context.Context, req *dataplexpb.UpdateDataAttributeRequest, opts ...gax.CallOption) (*UpdateDataAttributeOperation, error) { + return c.internalClient.UpdateDataAttribute(ctx, req, opts...) +} + +// UpdateDataAttributeOperation returns a new UpdateDataAttributeOperation from a given name. +// The name must be that of a previously created UpdateDataAttributeOperation, possibly from a different process. +func (c *DataTaxonomyClient) UpdateDataAttributeOperation(name string) *UpdateDataAttributeOperation { + return c.internalClient.UpdateDataAttributeOperation(name) +} + +// DeleteDataAttribute deletes a Data Attribute resource. +func (c *DataTaxonomyClient) DeleteDataAttribute(ctx context.Context, req *dataplexpb.DeleteDataAttributeRequest, opts ...gax.CallOption) (*DeleteDataAttributeOperation, error) { + return c.internalClient.DeleteDataAttribute(ctx, req, opts...) +} + +// DeleteDataAttributeOperation returns a new DeleteDataAttributeOperation from a given name. +// The name must be that of a previously created DeleteDataAttributeOperation, possibly from a different process. +func (c *DataTaxonomyClient) DeleteDataAttributeOperation(name string) *DeleteDataAttributeOperation { + return c.internalClient.DeleteDataAttributeOperation(name) +} + +// ListDataAttributes lists Data Attribute resources in a DataTaxonomy. +func (c *DataTaxonomyClient) ListDataAttributes(ctx context.Context, req *dataplexpb.ListDataAttributesRequest, opts ...gax.CallOption) *DataAttributeIterator { + return c.internalClient.ListDataAttributes(ctx, req, opts...) +} + +// GetDataAttribute retrieves a Data Attribute resource. +func (c *DataTaxonomyClient) GetDataAttribute(ctx context.Context, req *dataplexpb.GetDataAttributeRequest, opts ...gax.CallOption) (*dataplexpb.DataAttribute, error) { + return c.internalClient.GetDataAttribute(ctx, req, opts...) +} + +// GetLocation gets information about a location. +func (c *DataTaxonomyClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + return c.internalClient.GetLocation(ctx, req, opts...) +} + +// ListLocations lists information about the supported locations for this service. +func (c *DataTaxonomyClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + return c.internalClient.ListLocations(ctx, req, opts...) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *DataTaxonomyClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.CancelOperation(ctx, req, opts...) +} + +// DeleteOperation is a utility method from google.longrunning.Operations. +func (c *DataTaxonomyClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteOperation(ctx, req, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *DataTaxonomyClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.GetOperation(ctx, req, opts...) +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *DataTaxonomyClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// dataTaxonomyGRPCClient is a client for interacting with Cloud Dataplex API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type dataTaxonomyGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing DataTaxonomyClient + CallOptions **DataTaxonomyCallOptions + + // The gRPC API client. + dataTaxonomyClient dataplexpb.DataTaxonomyServiceClient + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient **lroauto.OperationsClient + + operationsClient longrunningpb.OperationsClient + + locationsClient locationpb.LocationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogMetadata metadata.MD +} + +// NewDataTaxonomyClient creates a new data taxonomy service client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// DataTaxonomyService enables attribute-based governance. The resources +// currently offered include DataTaxonomy and DataAttribute. +func NewDataTaxonomyClient(ctx context.Context, opts ...option.ClientOption) (*DataTaxonomyClient, error) { + clientOpts := defaultDataTaxonomyGRPCClientOptions() + if newDataTaxonomyClientHook != nil { + hookOpts, err := newDataTaxonomyClientHook(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 := DataTaxonomyClient{CallOptions: defaultDataTaxonomyCallOptions()} + + c := &dataTaxonomyGRPCClient{ + connPool: connPool, + dataTaxonomyClient: dataplexpb.NewDataTaxonomyServiceClient(connPool), + CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(connPool), + locationsClient: locationpb.NewLocationsClient(connPool), + } + c.setGoogleClientInfo() + + client.internalClient = c + + client.LROClient, err = lroauto.NewOperationsClient(ctx, gtransport.WithConnPool(connPool)) + if err != nil { + // This error "should not happen", since we are just reusing old connection pool + // and never actually need to dial. + // If this does happen, we could leak connp. However, we cannot close conn: + // If the user invoked the constructor with option.WithGRPCConn, + // we would close a connection that's still in use. + // TODO: investigate error conditions. + return nil, err + } + c.LROClient = &client.LROClient + 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 *dataTaxonomyGRPCClient) 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 *dataTaxonomyGRPCClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) + c.xGoogMetadata = metadata.Pairs("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 *dataTaxonomyGRPCClient) Close() error { + return c.connPool.Close() +} + +func (c *dataTaxonomyGRPCClient) CreateDataTaxonomy(ctx context.Context, req *dataplexpb.CreateDataTaxonomyRequest, opts ...gax.CallOption) (*CreateDataTaxonomyOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).CreateDataTaxonomy[0:len((*c.CallOptions).CreateDataTaxonomy):len((*c.CallOptions).CreateDataTaxonomy)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.dataTaxonomyClient.CreateDataTaxonomy(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateDataTaxonomyOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *dataTaxonomyGRPCClient) UpdateDataTaxonomy(ctx context.Context, req *dataplexpb.UpdateDataTaxonomyRequest, opts ...gax.CallOption) (*UpdateDataTaxonomyOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "data_taxonomy.name", url.QueryEscape(req.GetDataTaxonomy().GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).UpdateDataTaxonomy[0:len((*c.CallOptions).UpdateDataTaxonomy):len((*c.CallOptions).UpdateDataTaxonomy)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.dataTaxonomyClient.UpdateDataTaxonomy(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateDataTaxonomyOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *dataTaxonomyGRPCClient) DeleteDataTaxonomy(ctx context.Context, req *dataplexpb.DeleteDataTaxonomyRequest, opts ...gax.CallOption) (*DeleteDataTaxonomyOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).DeleteDataTaxonomy[0:len((*c.CallOptions).DeleteDataTaxonomy):len((*c.CallOptions).DeleteDataTaxonomy)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.dataTaxonomyClient.DeleteDataTaxonomy(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteDataTaxonomyOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *dataTaxonomyGRPCClient) ListDataTaxonomies(ctx context.Context, req *dataplexpb.ListDataTaxonomiesRequest, opts ...gax.CallOption) *DataTaxonomyIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListDataTaxonomies[0:len((*c.CallOptions).ListDataTaxonomies):len((*c.CallOptions).ListDataTaxonomies)], opts...) + it := &DataTaxonomyIterator{} + req = proto.Clone(req).(*dataplexpb.ListDataTaxonomiesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*dataplexpb.DataTaxonomy, string, error) { + resp := &dataplexpb.ListDataTaxonomiesResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.dataTaxonomyClient.ListDataTaxonomies(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetDataTaxonomies(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *dataTaxonomyGRPCClient) GetDataTaxonomy(ctx context.Context, req *dataplexpb.GetDataTaxonomyRequest, opts ...gax.CallOption) (*dataplexpb.DataTaxonomy, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetDataTaxonomy[0:len((*c.CallOptions).GetDataTaxonomy):len((*c.CallOptions).GetDataTaxonomy)], opts...) + var resp *dataplexpb.DataTaxonomy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.dataTaxonomyClient.GetDataTaxonomy(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *dataTaxonomyGRPCClient) CreateDataAttributeBinding(ctx context.Context, req *dataplexpb.CreateDataAttributeBindingRequest, opts ...gax.CallOption) (*CreateDataAttributeBindingOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).CreateDataAttributeBinding[0:len((*c.CallOptions).CreateDataAttributeBinding):len((*c.CallOptions).CreateDataAttributeBinding)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.dataTaxonomyClient.CreateDataAttributeBinding(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateDataAttributeBindingOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *dataTaxonomyGRPCClient) UpdateDataAttributeBinding(ctx context.Context, req *dataplexpb.UpdateDataAttributeBindingRequest, opts ...gax.CallOption) (*UpdateDataAttributeBindingOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "data_attribute_binding.name", url.QueryEscape(req.GetDataAttributeBinding().GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).UpdateDataAttributeBinding[0:len((*c.CallOptions).UpdateDataAttributeBinding):len((*c.CallOptions).UpdateDataAttributeBinding)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.dataTaxonomyClient.UpdateDataAttributeBinding(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateDataAttributeBindingOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *dataTaxonomyGRPCClient) DeleteDataAttributeBinding(ctx context.Context, req *dataplexpb.DeleteDataAttributeBindingRequest, opts ...gax.CallOption) (*DeleteDataAttributeBindingOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).DeleteDataAttributeBinding[0:len((*c.CallOptions).DeleteDataAttributeBinding):len((*c.CallOptions).DeleteDataAttributeBinding)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.dataTaxonomyClient.DeleteDataAttributeBinding(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteDataAttributeBindingOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *dataTaxonomyGRPCClient) ListDataAttributeBindings(ctx context.Context, req *dataplexpb.ListDataAttributeBindingsRequest, opts ...gax.CallOption) *DataAttributeBindingIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListDataAttributeBindings[0:len((*c.CallOptions).ListDataAttributeBindings):len((*c.CallOptions).ListDataAttributeBindings)], opts...) + it := &DataAttributeBindingIterator{} + req = proto.Clone(req).(*dataplexpb.ListDataAttributeBindingsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*dataplexpb.DataAttributeBinding, string, error) { + resp := &dataplexpb.ListDataAttributeBindingsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.dataTaxonomyClient.ListDataAttributeBindings(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetDataAttributeBindings(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *dataTaxonomyGRPCClient) GetDataAttributeBinding(ctx context.Context, req *dataplexpb.GetDataAttributeBindingRequest, opts ...gax.CallOption) (*dataplexpb.DataAttributeBinding, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetDataAttributeBinding[0:len((*c.CallOptions).GetDataAttributeBinding):len((*c.CallOptions).GetDataAttributeBinding)], opts...) + var resp *dataplexpb.DataAttributeBinding + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.dataTaxonomyClient.GetDataAttributeBinding(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *dataTaxonomyGRPCClient) CreateDataAttribute(ctx context.Context, req *dataplexpb.CreateDataAttributeRequest, opts ...gax.CallOption) (*CreateDataAttributeOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).CreateDataAttribute[0:len((*c.CallOptions).CreateDataAttribute):len((*c.CallOptions).CreateDataAttribute)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.dataTaxonomyClient.CreateDataAttribute(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateDataAttributeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *dataTaxonomyGRPCClient) UpdateDataAttribute(ctx context.Context, req *dataplexpb.UpdateDataAttributeRequest, opts ...gax.CallOption) (*UpdateDataAttributeOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "data_attribute.name", url.QueryEscape(req.GetDataAttribute().GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).UpdateDataAttribute[0:len((*c.CallOptions).UpdateDataAttribute):len((*c.CallOptions).UpdateDataAttribute)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.dataTaxonomyClient.UpdateDataAttribute(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateDataAttributeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *dataTaxonomyGRPCClient) DeleteDataAttribute(ctx context.Context, req *dataplexpb.DeleteDataAttributeRequest, opts ...gax.CallOption) (*DeleteDataAttributeOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).DeleteDataAttribute[0:len((*c.CallOptions).DeleteDataAttribute):len((*c.CallOptions).DeleteDataAttribute)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.dataTaxonomyClient.DeleteDataAttribute(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteDataAttributeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *dataTaxonomyGRPCClient) ListDataAttributes(ctx context.Context, req *dataplexpb.ListDataAttributesRequest, opts ...gax.CallOption) *DataAttributeIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListDataAttributes[0:len((*c.CallOptions).ListDataAttributes):len((*c.CallOptions).ListDataAttributes)], opts...) + it := &DataAttributeIterator{} + req = proto.Clone(req).(*dataplexpb.ListDataAttributesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*dataplexpb.DataAttribute, string, error) { + resp := &dataplexpb.ListDataAttributesResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.dataTaxonomyClient.ListDataAttributes(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetDataAttributes(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *dataTaxonomyGRPCClient) GetDataAttribute(ctx context.Context, req *dataplexpb.GetDataAttributeRequest, opts ...gax.CallOption) (*dataplexpb.DataAttribute, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetDataAttribute[0:len((*c.CallOptions).GetDataAttribute):len((*c.CallOptions).GetDataAttribute)], opts...) + var resp *dataplexpb.DataAttribute + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.dataTaxonomyClient.GetDataAttribute(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *dataTaxonomyGRPCClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetLocation[0:len((*c.CallOptions).GetLocation):len((*c.CallOptions).GetLocation)], opts...) + var resp *locationpb.Location + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.locationsClient.GetLocation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *dataTaxonomyGRPCClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListLocations[0:len((*c.CallOptions).ListLocations):len((*c.CallOptions).ListLocations)], opts...) + it := &LocationIterator{} + req = proto.Clone(req).(*locationpb.ListLocationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*locationpb.Location, string, error) { + resp := &locationpb.ListLocationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.locationsClient.ListLocations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetLocations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *dataTaxonomyGRPCClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).CancelOperation[0:len((*c.CallOptions).CancelOperation):len((*c.CallOptions).CancelOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.operationsClient.CancelOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *dataTaxonomyGRPCClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).DeleteOperation[0:len((*c.CallOptions).DeleteOperation):len((*c.CallOptions).DeleteOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.operationsClient.DeleteOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *dataTaxonomyGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.GetOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *dataTaxonomyGRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.ListOperations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// CreateDataAttributeOperation manages a long-running operation from CreateDataAttribute. +type CreateDataAttributeOperation struct { + lro *longrunning.Operation +} + +// CreateDataAttributeOperation returns a new CreateDataAttributeOperation from a given name. +// The name must be that of a previously created CreateDataAttributeOperation, possibly from a different process. +func (c *dataTaxonomyGRPCClient) CreateDataAttributeOperation(name string) *CreateDataAttributeOperation { + return &CreateDataAttributeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateDataAttributeOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*dataplexpb.DataAttribute, error) { + var resp dataplexpb.DataAttribute + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateDataAttributeOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*dataplexpb.DataAttribute, error) { + var resp dataplexpb.DataAttribute + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateDataAttributeOperation) Metadata() (*dataplexpb.OperationMetadata, error) { + var meta dataplexpb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateDataAttributeOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateDataAttributeOperation) Name() string { + return op.lro.Name() +} + +// CreateDataAttributeBindingOperation manages a long-running operation from CreateDataAttributeBinding. +type CreateDataAttributeBindingOperation struct { + lro *longrunning.Operation +} + +// CreateDataAttributeBindingOperation returns a new CreateDataAttributeBindingOperation from a given name. +// The name must be that of a previously created CreateDataAttributeBindingOperation, possibly from a different process. +func (c *dataTaxonomyGRPCClient) CreateDataAttributeBindingOperation(name string) *CreateDataAttributeBindingOperation { + return &CreateDataAttributeBindingOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateDataAttributeBindingOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*dataplexpb.DataAttributeBinding, error) { + var resp dataplexpb.DataAttributeBinding + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateDataAttributeBindingOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*dataplexpb.DataAttributeBinding, error) { + var resp dataplexpb.DataAttributeBinding + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateDataAttributeBindingOperation) Metadata() (*dataplexpb.OperationMetadata, error) { + var meta dataplexpb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateDataAttributeBindingOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateDataAttributeBindingOperation) Name() string { + return op.lro.Name() +} + +// CreateDataTaxonomyOperation manages a long-running operation from CreateDataTaxonomy. +type CreateDataTaxonomyOperation struct { + lro *longrunning.Operation +} + +// CreateDataTaxonomyOperation returns a new CreateDataTaxonomyOperation from a given name. +// The name must be that of a previously created CreateDataTaxonomyOperation, possibly from a different process. +func (c *dataTaxonomyGRPCClient) CreateDataTaxonomyOperation(name string) *CreateDataTaxonomyOperation { + return &CreateDataTaxonomyOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateDataTaxonomyOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*dataplexpb.DataTaxonomy, error) { + var resp dataplexpb.DataTaxonomy + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateDataTaxonomyOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*dataplexpb.DataTaxonomy, error) { + var resp dataplexpb.DataTaxonomy + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateDataTaxonomyOperation) Metadata() (*dataplexpb.OperationMetadata, error) { + var meta dataplexpb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateDataTaxonomyOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateDataTaxonomyOperation) Name() string { + return op.lro.Name() +} + +// DeleteDataAttributeOperation manages a long-running operation from DeleteDataAttribute. +type DeleteDataAttributeOperation struct { + lro *longrunning.Operation +} + +// DeleteDataAttributeOperation returns a new DeleteDataAttributeOperation from a given name. +// The name must be that of a previously created DeleteDataAttributeOperation, possibly from a different process. +func (c *dataTaxonomyGRPCClient) DeleteDataAttributeOperation(name string) *DeleteDataAttributeOperation { + return &DeleteDataAttributeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteDataAttributeOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteDataAttributeOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteDataAttributeOperation) Metadata() (*dataplexpb.OperationMetadata, error) { + var meta dataplexpb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteDataAttributeOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteDataAttributeOperation) Name() string { + return op.lro.Name() +} + +// DeleteDataAttributeBindingOperation manages a long-running operation from DeleteDataAttributeBinding. +type DeleteDataAttributeBindingOperation struct { + lro *longrunning.Operation +} + +// DeleteDataAttributeBindingOperation returns a new DeleteDataAttributeBindingOperation from a given name. +// The name must be that of a previously created DeleteDataAttributeBindingOperation, possibly from a different process. +func (c *dataTaxonomyGRPCClient) DeleteDataAttributeBindingOperation(name string) *DeleteDataAttributeBindingOperation { + return &DeleteDataAttributeBindingOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteDataAttributeBindingOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteDataAttributeBindingOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteDataAttributeBindingOperation) Metadata() (*dataplexpb.OperationMetadata, error) { + var meta dataplexpb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteDataAttributeBindingOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteDataAttributeBindingOperation) Name() string { + return op.lro.Name() +} + +// DeleteDataTaxonomyOperation manages a long-running operation from DeleteDataTaxonomy. +type DeleteDataTaxonomyOperation struct { + lro *longrunning.Operation +} + +// DeleteDataTaxonomyOperation returns a new DeleteDataTaxonomyOperation from a given name. +// The name must be that of a previously created DeleteDataTaxonomyOperation, possibly from a different process. +func (c *dataTaxonomyGRPCClient) DeleteDataTaxonomyOperation(name string) *DeleteDataTaxonomyOperation { + return &DeleteDataTaxonomyOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteDataTaxonomyOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteDataTaxonomyOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteDataTaxonomyOperation) Metadata() (*dataplexpb.OperationMetadata, error) { + var meta dataplexpb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteDataTaxonomyOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteDataTaxonomyOperation) Name() string { + return op.lro.Name() +} + +// UpdateDataAttributeOperation manages a long-running operation from UpdateDataAttribute. +type UpdateDataAttributeOperation struct { + lro *longrunning.Operation +} + +// UpdateDataAttributeOperation returns a new UpdateDataAttributeOperation from a given name. +// The name must be that of a previously created UpdateDataAttributeOperation, possibly from a different process. +func (c *dataTaxonomyGRPCClient) UpdateDataAttributeOperation(name string) *UpdateDataAttributeOperation { + return &UpdateDataAttributeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *UpdateDataAttributeOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*dataplexpb.DataAttribute, error) { + var resp dataplexpb.DataAttribute + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *UpdateDataAttributeOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*dataplexpb.DataAttribute, error) { + var resp dataplexpb.DataAttribute + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *UpdateDataAttributeOperation) Metadata() (*dataplexpb.OperationMetadata, error) { + var meta dataplexpb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *UpdateDataAttributeOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *UpdateDataAttributeOperation) Name() string { + return op.lro.Name() +} + +// UpdateDataAttributeBindingOperation manages a long-running operation from UpdateDataAttributeBinding. +type UpdateDataAttributeBindingOperation struct { + lro *longrunning.Operation +} + +// UpdateDataAttributeBindingOperation returns a new UpdateDataAttributeBindingOperation from a given name. +// The name must be that of a previously created UpdateDataAttributeBindingOperation, possibly from a different process. +func (c *dataTaxonomyGRPCClient) UpdateDataAttributeBindingOperation(name string) *UpdateDataAttributeBindingOperation { + return &UpdateDataAttributeBindingOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *UpdateDataAttributeBindingOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*dataplexpb.DataAttributeBinding, error) { + var resp dataplexpb.DataAttributeBinding + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *UpdateDataAttributeBindingOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*dataplexpb.DataAttributeBinding, error) { + var resp dataplexpb.DataAttributeBinding + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *UpdateDataAttributeBindingOperation) Metadata() (*dataplexpb.OperationMetadata, error) { + var meta dataplexpb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *UpdateDataAttributeBindingOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *UpdateDataAttributeBindingOperation) Name() string { + return op.lro.Name() +} + +// UpdateDataTaxonomyOperation manages a long-running operation from UpdateDataTaxonomy. +type UpdateDataTaxonomyOperation struct { + lro *longrunning.Operation +} + +// UpdateDataTaxonomyOperation returns a new UpdateDataTaxonomyOperation from a given name. +// The name must be that of a previously created UpdateDataTaxonomyOperation, possibly from a different process. +func (c *dataTaxonomyGRPCClient) UpdateDataTaxonomyOperation(name string) *UpdateDataTaxonomyOperation { + return &UpdateDataTaxonomyOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *UpdateDataTaxonomyOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*dataplexpb.DataTaxonomy, error) { + var resp dataplexpb.DataTaxonomy + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *UpdateDataTaxonomyOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*dataplexpb.DataTaxonomy, error) { + var resp dataplexpb.DataTaxonomy + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *UpdateDataTaxonomyOperation) Metadata() (*dataplexpb.OperationMetadata, error) { + var meta dataplexpb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *UpdateDataTaxonomyOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *UpdateDataTaxonomyOperation) Name() string { + return op.lro.Name() +} + +// DataAttributeBindingIterator manages a stream of *dataplexpb.DataAttributeBinding. +type DataAttributeBindingIterator struct { + items []*dataplexpb.DataAttributeBinding + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*dataplexpb.DataAttributeBinding, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *DataAttributeBindingIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. 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 *DataAttributeBindingIterator) Next() (*dataplexpb.DataAttributeBinding, error) { + var item *dataplexpb.DataAttributeBinding + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *DataAttributeBindingIterator) bufLen() int { + return len(it.items) +} + +func (it *DataAttributeBindingIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// DataAttributeIterator manages a stream of *dataplexpb.DataAttribute. +type DataAttributeIterator struct { + items []*dataplexpb.DataAttribute + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*dataplexpb.DataAttribute, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *DataAttributeIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. 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 *DataAttributeIterator) Next() (*dataplexpb.DataAttribute, error) { + var item *dataplexpb.DataAttribute + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *DataAttributeIterator) bufLen() int { + return len(it.items) +} + +func (it *DataAttributeIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// DataTaxonomyIterator manages a stream of *dataplexpb.DataTaxonomy. +type DataTaxonomyIterator struct { + items []*dataplexpb.DataTaxonomy + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*dataplexpb.DataTaxonomy, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *DataTaxonomyIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. 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 *DataTaxonomyIterator) Next() (*dataplexpb.DataTaxonomy, error) { + var item *dataplexpb.DataTaxonomy + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *DataTaxonomyIterator) bufLen() int { + return len(it.items) +} + +func (it *DataTaxonomyIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} diff --git a/dataplex/apiv1/data_taxonomy_client_example_test.go b/dataplex/apiv1/data_taxonomy_client_example_test.go new file mode 100644 index 00000000000..43425ea276f --- /dev/null +++ b/dataplex/apiv1/data_taxonomy_client_example_test.go @@ -0,0 +1,634 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package dataplex_test + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleNewDataTaxonomyClient() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleDataTaxonomyClient_CreateDataTaxonomy() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.CreateDataTaxonomyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#CreateDataTaxonomyRequest. + } + op, err := c.CreateDataTaxonomy(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTaxonomyClient_UpdateDataTaxonomy() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.UpdateDataTaxonomyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#UpdateDataTaxonomyRequest. + } + op, err := c.UpdateDataTaxonomy(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTaxonomyClient_DeleteDataTaxonomy() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.DeleteDataTaxonomyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#DeleteDataTaxonomyRequest. + } + op, err := c.DeleteDataTaxonomy(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleDataTaxonomyClient_ListDataTaxonomies() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.ListDataTaxonomiesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#ListDataTaxonomiesRequest. + } + it := c.ListDataTaxonomies(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleDataTaxonomyClient_GetDataTaxonomy() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.GetDataTaxonomyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#GetDataTaxonomyRequest. + } + resp, err := c.GetDataTaxonomy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTaxonomyClient_CreateDataAttributeBinding() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.CreateDataAttributeBindingRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#CreateDataAttributeBindingRequest. + } + op, err := c.CreateDataAttributeBinding(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTaxonomyClient_UpdateDataAttributeBinding() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.UpdateDataAttributeBindingRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#UpdateDataAttributeBindingRequest. + } + op, err := c.UpdateDataAttributeBinding(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTaxonomyClient_DeleteDataAttributeBinding() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.DeleteDataAttributeBindingRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#DeleteDataAttributeBindingRequest. + } + op, err := c.DeleteDataAttributeBinding(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleDataTaxonomyClient_ListDataAttributeBindings() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.ListDataAttributeBindingsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#ListDataAttributeBindingsRequest. + } + it := c.ListDataAttributeBindings(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleDataTaxonomyClient_GetDataAttributeBinding() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.GetDataAttributeBindingRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#GetDataAttributeBindingRequest. + } + resp, err := c.GetDataAttributeBinding(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTaxonomyClient_CreateDataAttribute() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.CreateDataAttributeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#CreateDataAttributeRequest. + } + op, err := c.CreateDataAttribute(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTaxonomyClient_UpdateDataAttribute() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.UpdateDataAttributeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#UpdateDataAttributeRequest. + } + op, err := c.UpdateDataAttribute(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTaxonomyClient_DeleteDataAttribute() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.DeleteDataAttributeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#DeleteDataAttributeRequest. + } + op, err := c.DeleteDataAttribute(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleDataTaxonomyClient_ListDataAttributes() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.ListDataAttributesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#ListDataAttributesRequest. + } + it := c.ListDataAttributes(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleDataTaxonomyClient_GetDataAttribute() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.GetDataAttributeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#GetDataAttributeRequest. + } + resp, err := c.GetDataAttribute(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTaxonomyClient_GetLocation() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTaxonomyClient_ListLocations() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleDataTaxonomyClient_CancelOperation() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleDataTaxonomyClient_DeleteOperation() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleDataTaxonomyClient_GetOperation() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTaxonomyClient_ListOperations() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} diff --git a/dataplex/apiv1/dataplexpb/data_profile.pb.go b/dataplex/apiv1/dataplexpb/data_profile.pb.go index f2e37098116..a0637807bf8 100755 --- a/dataplex/apiv1/dataplexpb/data_profile.pb.go +++ b/dataplex/apiv1/dataplexpb/data_profile.pb.go @@ -36,11 +36,95 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +// Execution state for the exporting. +type DataProfileResult_PostScanActionsResult_BigQueryExportResult_State int32 + +const ( + // The exporting state is unspecified. + DataProfileResult_PostScanActionsResult_BigQueryExportResult_STATE_UNSPECIFIED DataProfileResult_PostScanActionsResult_BigQueryExportResult_State = 0 + // The exporting completed successfully. + DataProfileResult_PostScanActionsResult_BigQueryExportResult_SUCCEEDED DataProfileResult_PostScanActionsResult_BigQueryExportResult_State = 1 + // The exporting is no longer running due to an error. + DataProfileResult_PostScanActionsResult_BigQueryExportResult_FAILED DataProfileResult_PostScanActionsResult_BigQueryExportResult_State = 2 + // The exporting is skipped due to no valid scan result to export + // (usually caused by scan failed). + DataProfileResult_PostScanActionsResult_BigQueryExportResult_SKIPPED DataProfileResult_PostScanActionsResult_BigQueryExportResult_State = 3 +) + +// Enum value maps for DataProfileResult_PostScanActionsResult_BigQueryExportResult_State. +var ( + DataProfileResult_PostScanActionsResult_BigQueryExportResult_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "SUCCEEDED", + 2: "FAILED", + 3: "SKIPPED", + } + DataProfileResult_PostScanActionsResult_BigQueryExportResult_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "SUCCEEDED": 1, + "FAILED": 2, + "SKIPPED": 3, + } +) + +func (x DataProfileResult_PostScanActionsResult_BigQueryExportResult_State) Enum() *DataProfileResult_PostScanActionsResult_BigQueryExportResult_State { + p := new(DataProfileResult_PostScanActionsResult_BigQueryExportResult_State) + *p = x + return p +} + +func (x DataProfileResult_PostScanActionsResult_BigQueryExportResult_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DataProfileResult_PostScanActionsResult_BigQueryExportResult_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dataplex_v1_data_profile_proto_enumTypes[0].Descriptor() +} + +func (DataProfileResult_PostScanActionsResult_BigQueryExportResult_State) Type() protoreflect.EnumType { + return &file_google_cloud_dataplex_v1_data_profile_proto_enumTypes[0] +} + +func (x DataProfileResult_PostScanActionsResult_BigQueryExportResult_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DataProfileResult_PostScanActionsResult_BigQueryExportResult_State.Descriptor instead. +func (DataProfileResult_PostScanActionsResult_BigQueryExportResult_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_profile_proto_rawDescGZIP(), []int{1, 1, 0, 0} +} + // DataProfileScan related setting. type DataProfileSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Optional. The percentage of the records to be selected from the dataset for + // DataScan. + // + // * Value can range between 0.0 and 100.0 with up to 3 significant decimal + // digits. + // * Sampling is not applied if `sampling_percent` is not specified, 0 or + // 100. + SamplingPercent float32 `protobuf:"fixed32,2,opt,name=sampling_percent,json=samplingPercent,proto3" json:"sampling_percent,omitempty"` + // Optional. A filter applied to all rows in a single DataScan job. + // The filter needs to be a valid SQL expression for a WHERE clause in + // BigQuery standard SQL syntax. + // Example: col1 >= 0 AND col2 < 10 + RowFilter string `protobuf:"bytes,3,opt,name=row_filter,json=rowFilter,proto3" json:"row_filter,omitempty"` + // Optional. Actions to take upon job completion.. + PostScanActions *DataProfileSpec_PostScanActions `protobuf:"bytes,4,opt,name=post_scan_actions,json=postScanActions,proto3" json:"post_scan_actions,omitempty"` + // Optional. The fields to include in data profile. + // + // If not specified, all fields at the time of profile scan job execution are + // included, except for ones listed in `exclude_fields`. + IncludeFields *DataProfileSpec_SelectedFields `protobuf:"bytes,5,opt,name=include_fields,json=includeFields,proto3" json:"include_fields,omitempty"` + // Optional. The fields to exclude from data profile. + // + // If specified, the fields will be excluded from data profile, regardless of + // `include_fields` value. + ExcludeFields *DataProfileSpec_SelectedFields `protobuf:"bytes,6,opt,name=exclude_fields,json=excludeFields,proto3" json:"exclude_fields,omitempty"` } func (x *DataProfileSpec) Reset() { @@ -75,6 +159,41 @@ func (*DataProfileSpec) Descriptor() ([]byte, []int) { return file_google_cloud_dataplex_v1_data_profile_proto_rawDescGZIP(), []int{0} } +func (x *DataProfileSpec) GetSamplingPercent() float32 { + if x != nil { + return x.SamplingPercent + } + return 0 +} + +func (x *DataProfileSpec) GetRowFilter() string { + if x != nil { + return x.RowFilter + } + return "" +} + +func (x *DataProfileSpec) GetPostScanActions() *DataProfileSpec_PostScanActions { + if x != nil { + return x.PostScanActions + } + return nil +} + +func (x *DataProfileSpec) GetIncludeFields() *DataProfileSpec_SelectedFields { + if x != nil { + return x.IncludeFields + } + return nil +} + +func (x *DataProfileSpec) GetExcludeFields() *DataProfileSpec_SelectedFields { + if x != nil { + return x.ExcludeFields + } + return nil +} + // DataProfileResult defines the output of DataProfileScan. Each field of the // table will have field type specific profile result. type DataProfileResult struct { @@ -88,6 +207,8 @@ type DataProfileResult struct { Profile *DataProfileResult_Profile `protobuf:"bytes,4,opt,name=profile,proto3" json:"profile,omitempty"` // The data scanned for this result. ScannedData *ScannedData `protobuf:"bytes,5,opt,name=scanned_data,json=scannedData,proto3" json:"scanned_data,omitempty"` + // Output only. The result of post scan actions. + PostScanActionsResult *DataProfileResult_PostScanActionsResult `protobuf:"bytes,6,opt,name=post_scan_actions_result,json=postScanActionsResult,proto3" json:"post_scan_actions_result,omitempty"` } func (x *DataProfileResult) Reset() { @@ -143,6 +264,169 @@ func (x *DataProfileResult) GetScannedData() *ScannedData { return nil } +func (x *DataProfileResult) GetPostScanActionsResult() *DataProfileResult_PostScanActionsResult { + if x != nil { + return x.PostScanActionsResult + } + return nil +} + +// The configuration of post scan actions of DataProfileScan job. +type DataProfileSpec_PostScanActions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. If set, results will be exported to the provided BigQuery + // table. + BigqueryExport *DataProfileSpec_PostScanActions_BigQueryExport `protobuf:"bytes,1,opt,name=bigquery_export,json=bigqueryExport,proto3" json:"bigquery_export,omitempty"` +} + +func (x *DataProfileSpec_PostScanActions) Reset() { + *x = DataProfileSpec_PostScanActions{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataProfileSpec_PostScanActions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataProfileSpec_PostScanActions) ProtoMessage() {} + +func (x *DataProfileSpec_PostScanActions) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_profile_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 DataProfileSpec_PostScanActions.ProtoReflect.Descriptor instead. +func (*DataProfileSpec_PostScanActions) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_profile_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *DataProfileSpec_PostScanActions) GetBigqueryExport() *DataProfileSpec_PostScanActions_BigQueryExport { + if x != nil { + return x.BigqueryExport + } + return nil +} + +// The specification for fields to include or exclude in data profile scan. +type DataProfileSpec_SelectedFields struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Expected input is a list of fully qualified names of fields as + // in the schema. + // + // Only top-level field names for nested fields are supported. + // For instance, if 'x' is of nested field type, listing 'x' is supported + // but 'x.y.z' is not supported. Here 'y' and 'y.z' are nested fields of + // 'x'. + FieldNames []string `protobuf:"bytes,1,rep,name=field_names,json=fieldNames,proto3" json:"field_names,omitempty"` +} + +func (x *DataProfileSpec_SelectedFields) Reset() { + *x = DataProfileSpec_SelectedFields{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataProfileSpec_SelectedFields) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataProfileSpec_SelectedFields) ProtoMessage() {} + +func (x *DataProfileSpec_SelectedFields) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_profile_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 DataProfileSpec_SelectedFields.ProtoReflect.Descriptor instead. +func (*DataProfileSpec_SelectedFields) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_profile_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *DataProfileSpec_SelectedFields) GetFieldNames() []string { + if x != nil { + return x.FieldNames + } + return nil +} + +// The configuration of BigQuery export post scan action. +type DataProfileSpec_PostScanActions_BigQueryExport struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. The BigQuery table to export DataProfileScan results to. + // Format: + // projects/{project}/datasets/{dataset}/tables/{table} + ResultsTable string `protobuf:"bytes,1,opt,name=results_table,json=resultsTable,proto3" json:"results_table,omitempty"` +} + +func (x *DataProfileSpec_PostScanActions_BigQueryExport) Reset() { + *x = DataProfileSpec_PostScanActions_BigQueryExport{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataProfileSpec_PostScanActions_BigQueryExport) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataProfileSpec_PostScanActions_BigQueryExport) ProtoMessage() {} + +func (x *DataProfileSpec_PostScanActions_BigQueryExport) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_profile_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 DataProfileSpec_PostScanActions_BigQueryExport.ProtoReflect.Descriptor instead. +func (*DataProfileSpec_PostScanActions_BigQueryExport) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_profile_proto_rawDescGZIP(), []int{0, 0, 0} +} + +func (x *DataProfileSpec_PostScanActions_BigQueryExport) GetResultsTable() string { + if x != nil { + return x.ResultsTable + } + return "" +} + // Contains name, type, mode and field type specific profile information. type DataProfileResult_Profile struct { state protoimpl.MessageState @@ -156,7 +440,7 @@ type DataProfileResult_Profile struct { func (x *DataProfileResult_Profile) Reset() { *x = DataProfileResult_Profile{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[2] + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -169,7 +453,7 @@ func (x *DataProfileResult_Profile) String() string { func (*DataProfileResult_Profile) ProtoMessage() {} func (x *DataProfileResult_Profile) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[2] + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -192,6 +476,55 @@ func (x *DataProfileResult_Profile) GetFields() []*DataProfileResult_Profile_Fie return nil } +// The result of post scan actions of DataProfileScan job. +type DataProfileResult_PostScanActionsResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The result of BigQuery export post scan action. + BigqueryExportResult *DataProfileResult_PostScanActionsResult_BigQueryExportResult `protobuf:"bytes,1,opt,name=bigquery_export_result,json=bigqueryExportResult,proto3" json:"bigquery_export_result,omitempty"` +} + +func (x *DataProfileResult_PostScanActionsResult) Reset() { + *x = DataProfileResult_PostScanActionsResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataProfileResult_PostScanActionsResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataProfileResult_PostScanActionsResult) ProtoMessage() {} + +func (x *DataProfileResult_PostScanActionsResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_profile_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 DataProfileResult_PostScanActionsResult.ProtoReflect.Descriptor instead. +func (*DataProfileResult_PostScanActionsResult) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_profile_proto_rawDescGZIP(), []int{1, 1} +} + +func (x *DataProfileResult_PostScanActionsResult) GetBigqueryExportResult() *DataProfileResult_PostScanActionsResult_BigQueryExportResult { + if x != nil { + return x.BigqueryExportResult + } + return nil +} + // A field within a table. type DataProfileResult_Profile_Field struct { state protoimpl.MessageState @@ -219,7 +552,7 @@ type DataProfileResult_Profile_Field struct { func (x *DataProfileResult_Profile_Field) Reset() { *x = DataProfileResult_Profile_Field{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[3] + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -232,7 +565,7 @@ func (x *DataProfileResult_Profile_Field) String() string { func (*DataProfileResult_Profile_Field) ProtoMessage() {} func (x *DataProfileResult_Profile_Field) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[3] + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -288,10 +621,11 @@ type DataProfileResult_Profile_Field_ProfileInfo struct { // Not available for complex non-groupable field type RECORD and fields // with REPEATABLE mode. DistinctRatio float64 `protobuf:"fixed64,3,opt,name=distinct_ratio,json=distinctRatio,proto3" json:"distinct_ratio,omitempty"` - // The list of top N non-null values and number of times they occur in - // the scanned data. N is 10 or equal to the number of distinct values - // in the field, whichever is smaller. Not available for complex - // non-groupable field type RECORD and fields with REPEATABLE mode. + // The list of top N non-null values, frequency and ratio with which + // they occur in the scanned data. N is 10 or equal to the number of + // distinct values in the field, whichever is smaller. Not available for + // complex non-groupable field type RECORD and fields with REPEATABLE + // mode. TopNValues []*DataProfileResult_Profile_Field_ProfileInfo_TopNValue `protobuf:"bytes,4,rep,name=top_n_values,json=topNValues,proto3" json:"top_n_values,omitempty"` // Structural and profile information for specific field type. Not // available, if mode is REPEATABLE. @@ -306,7 +640,7 @@ type DataProfileResult_Profile_Field_ProfileInfo struct { func (x *DataProfileResult_Profile_Field_ProfileInfo) Reset() { *x = DataProfileResult_Profile_Field_ProfileInfo{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[4] + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -319,7 +653,7 @@ func (x *DataProfileResult_Profile_Field_ProfileInfo) String() string { func (*DataProfileResult_Profile_Field_ProfileInfo) ProtoMessage() {} func (x *DataProfileResult_Profile_Field_ProfileInfo) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[4] + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -429,7 +763,7 @@ type DataProfileResult_Profile_Field_ProfileInfo_StringFieldInfo struct { func (x *DataProfileResult_Profile_Field_ProfileInfo_StringFieldInfo) Reset() { *x = DataProfileResult_Profile_Field_ProfileInfo_StringFieldInfo{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[5] + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -442,7 +776,7 @@ func (x *DataProfileResult_Profile_Field_ProfileInfo_StringFieldInfo) String() s func (*DataProfileResult_Profile_Field_ProfileInfo_StringFieldInfo) ProtoMessage() {} func (x *DataProfileResult_Profile_Field_ProfileInfo_StringFieldInfo) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[5] + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -503,8 +837,9 @@ type DataProfileResult_Profile_Field_ProfileInfo_IntegerFieldInfo struct { // below this point. The third quartile (Q3) splits off the highest // 25% of data from the lowest 75%. It is known as the upper or 75th // empirical quartile, as 75% of the data lies below this point. - // Here, the quartiles is provided as an ordered list of quartile - // values for the scanned data, occurring in order Q1, median, Q3. + // Here, the quartiles is provided as an ordered list of approximate + // quartile values for the scanned data, occurring in order Q1, + // median, Q3. Quartiles []int64 `protobuf:"varint,6,rep,packed,name=quartiles,proto3" json:"quartiles,omitempty"` // Maximum of non-null values in the scanned data. NaN, if the field // has a NaN. @@ -514,7 +849,7 @@ type DataProfileResult_Profile_Field_ProfileInfo_IntegerFieldInfo struct { func (x *DataProfileResult_Profile_Field_ProfileInfo_IntegerFieldInfo) Reset() { *x = DataProfileResult_Profile_Field_ProfileInfo_IntegerFieldInfo{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[6] + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -527,7 +862,7 @@ func (x *DataProfileResult_Profile_Field_ProfileInfo_IntegerFieldInfo) String() func (*DataProfileResult_Profile_Field_ProfileInfo_IntegerFieldInfo) ProtoMessage() {} func (x *DataProfileResult_Profile_Field_ProfileInfo_IntegerFieldInfo) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[6] + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -613,7 +948,7 @@ type DataProfileResult_Profile_Field_ProfileInfo_DoubleFieldInfo struct { func (x *DataProfileResult_Profile_Field_ProfileInfo_DoubleFieldInfo) Reset() { *x = DataProfileResult_Profile_Field_ProfileInfo_DoubleFieldInfo{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[7] + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -626,7 +961,7 @@ func (x *DataProfileResult_Profile_Field_ProfileInfo_DoubleFieldInfo) String() s func (*DataProfileResult_Profile_Field_ProfileInfo_DoubleFieldInfo) ProtoMessage() {} func (x *DataProfileResult_Profile_Field_ProfileInfo_DoubleFieldInfo) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[7] + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -687,12 +1022,15 @@ type DataProfileResult_Profile_Field_ProfileInfo_TopNValue struct { Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // Count of the corresponding value in the scanned data. Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` + // Ratio of the corresponding value in the field against the total + // number of rows in the scanned data. + Ratio float64 `protobuf:"fixed64,3,opt,name=ratio,proto3" json:"ratio,omitempty"` } func (x *DataProfileResult_Profile_Field_ProfileInfo_TopNValue) Reset() { *x = DataProfileResult_Profile_Field_ProfileInfo_TopNValue{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[8] + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -705,7 +1043,7 @@ func (x *DataProfileResult_Profile_Field_ProfileInfo_TopNValue) String() string func (*DataProfileResult_Profile_Field_ProfileInfo_TopNValue) ProtoMessage() {} func (x *DataProfileResult_Profile_Field_ProfileInfo_TopNValue) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[8] + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -735,6 +1073,71 @@ func (x *DataProfileResult_Profile_Field_ProfileInfo_TopNValue) GetCount() int64 return 0 } +func (x *DataProfileResult_Profile_Field_ProfileInfo_TopNValue) GetRatio() float64 { + if x != nil { + return x.Ratio + } + return 0 +} + +// The result of BigQuery export post scan action. +type DataProfileResult_PostScanActionsResult_BigQueryExportResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Execution state for the BigQuery exporting. + State DataProfileResult_PostScanActionsResult_BigQueryExportResult_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.dataplex.v1.DataProfileResult_PostScanActionsResult_BigQueryExportResult_State" json:"state,omitempty"` + // Output only. Additional information about the BigQuery exporting. + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *DataProfileResult_PostScanActionsResult_BigQueryExportResult) Reset() { + *x = DataProfileResult_PostScanActionsResult_BigQueryExportResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataProfileResult_PostScanActionsResult_BigQueryExportResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataProfileResult_PostScanActionsResult_BigQueryExportResult) ProtoMessage() {} + +func (x *DataProfileResult_PostScanActionsResult_BigQueryExportResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_profile_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 DataProfileResult_PostScanActionsResult_BigQueryExportResult.ProtoReflect.Descriptor instead. +func (*DataProfileResult_PostScanActionsResult_BigQueryExportResult) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_profile_proto_rawDescGZIP(), []int{1, 1, 0} +} + +func (x *DataProfileResult_PostScanActionsResult_BigQueryExportResult) GetState() DataProfileResult_PostScanActionsResult_BigQueryExportResult_State { + if x != nil { + return x.State + } + return DataProfileResult_PostScanActionsResult_BigQueryExportResult_STATE_UNSPECIFIED +} + +func (x *DataProfileResult_PostScanActionsResult_BigQueryExportResult) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + var File_google_cloud_dataplex_v1_data_profile_proto protoreflect.FileDescriptor var file_google_cloud_dataplex_v1_data_profile_proto_rawDesc = []byte{ @@ -744,116 +1147,197 @@ var file_google_cloud_dataplex_v1_data_profile_proto_rawDesc = []byte{ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 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, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x22, 0x9a, 0x0c, 0x0a, 0x11, 0x44, 0x61, 0x74, 0x61, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1b, 0x0a, 0x09, - 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x08, 0x72, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x07, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, + 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, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbf, + 0x05, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, + 0x65, 0x63, 0x12, 0x2e, 0x0a, 0x10, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, + 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x63, 0x65, + 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x6f, 0x77, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x6f, 0x77, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x6a, 0x0a, 0x11, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x73, + 0x63, 0x61, 0x6e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x6f, 0x73, + 0x74, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0f, 0x70, 0x6f, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x64, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, - 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x48, 0x0a, 0x0c, 0x73, 0x63, 0x61, 0x6e, - 0x6e, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x1a, 0xce, 0x0a, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x51, - 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x73, 0x1a, 0xef, 0x09, 0x0a, 0x05, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x5f, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0xc8, 0x08, 0x0a, 0x0b, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, - 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6e, 0x75, - 0x6c, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x63, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x71, - 0x0a, 0x0c, 0x74, 0x6f, 0x70, 0x5f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x65, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x64, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0xe7, + 0x01, 0x0a, 0x0f, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x76, 0x0a, 0x0f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x62, 0x69, 0x67, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x5c, 0x0a, 0x0e, 0x42, 0x69, + 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x4a, 0x0a, 0x0d, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x01, 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, 0x0c, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x36, 0x0a, 0x0e, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x22, 0xd8, 0x10, 0x0a, 0x11, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x72, 0x6f, 0x77, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x6f, 0x70, 0x4e, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x4e, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x7e, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x12, 0x48, 0x0a, 0x0c, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x7f, 0x0a, 0x18, + 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x74, + 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x70, 0x6f, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0xe4, 0x0a, + 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x51, 0x0a, 0x06, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, - 0x48, 0x00, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, - 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x7e, 0x0a, 0x0e, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, - 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x55, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x76, 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x69, - 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x61, 0x78, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, - 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x1a, 0x9d, 0x01, - 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x07, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x12, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, - 0x72, 0x64, 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x1c, 0x0a, - 0x09, 0x71, 0x75, 0x61, 0x72, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, - 0x52, 0x09, 0x71, 0x75, 0x61, 0x72, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x1a, 0x9c, 0x01, - 0x0a, 0x0f, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x01, 0x52, 0x07, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x73, - 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, - 0x64, 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, - 0x71, 0x75, 0x61, 0x72, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x01, 0x52, - 0x09, 0x71, 0x75, 0x61, 0x72, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, - 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x1a, 0x37, 0x0a, 0x09, - 0x54, 0x6f, 0x70, 0x4e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x42, 0x6c, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x85, 0x0a, 0x0a, + 0x05, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, + 0x64, 0x65, 0x12, 0x5f, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x1a, 0xde, 0x08, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x52, 0x61, 0x74, + 0x69, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x74, 0x5f, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x63, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x71, 0x0a, 0x0c, 0x74, 0x6f, 0x70, + 0x5f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x4f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x54, 0x6f, 0x70, 0x4e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x4e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x7e, 0x0a, 0x0e, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x65, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0d, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x81, 0x01, 0x0a, + 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x49, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, + 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x12, 0x7e, 0x0a, 0x0e, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, - 0x2e, 0x76, 0x31, 0x42, 0x10, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, - 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, + 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x48, + 0x00, 0x52, 0x0d, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x1a, 0x76, 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x61, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x1a, 0x9d, 0x01, 0x0a, 0x10, 0x49, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, + 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x11, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x76, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x61, 0x72, + 0x74, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x52, 0x09, 0x71, 0x75, 0x61, + 0x72, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x1a, 0x9c, 0x01, 0x0a, 0x0f, 0x44, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, + 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x61, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x11, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x76, 0x69, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x61, 0x72, 0x74, + 0x69, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x01, 0x52, 0x09, 0x71, 0x75, 0x61, 0x72, + 0x74, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x1a, 0x4d, 0x0a, 0x09, 0x54, 0x6f, 0x70, 0x4e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x05, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x69, 0x6e, 0x66, 0x6f, 0x1a, 0xa4, 0x03, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x63, 0x61, + 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x91, + 0x01, 0x0a, 0x16, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x56, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x6f, 0x73, + 0x74, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x14, 0x62, 0x69, + 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x1a, 0xf6, 0x01, 0x0a, 0x14, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x77, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x5c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x42, 0x69, + 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x22, 0x46, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, + 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0b, + 0x0a, 0x07, 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, 0x44, 0x10, 0x03, 0x42, 0x6c, 0x0a, 0x1c, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x44, 0x61, 0x74, + 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x61, 0x70, + 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x3b, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -868,33 +1352,47 @@ func file_google_cloud_dataplex_v1_data_profile_proto_rawDescGZIP() []byte { return file_google_cloud_dataplex_v1_data_profile_proto_rawDescData } -var file_google_cloud_dataplex_v1_data_profile_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_google_cloud_dataplex_v1_data_profile_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_dataplex_v1_data_profile_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_google_cloud_dataplex_v1_data_profile_proto_goTypes = []interface{}{ - (*DataProfileSpec)(nil), // 0: google.cloud.dataplex.v1.DataProfileSpec - (*DataProfileResult)(nil), // 1: google.cloud.dataplex.v1.DataProfileResult - (*DataProfileResult_Profile)(nil), // 2: google.cloud.dataplex.v1.DataProfileResult.Profile - (*DataProfileResult_Profile_Field)(nil), // 3: google.cloud.dataplex.v1.DataProfileResult.Profile.Field - (*DataProfileResult_Profile_Field_ProfileInfo)(nil), // 4: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo - (*DataProfileResult_Profile_Field_ProfileInfo_StringFieldInfo)(nil), // 5: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.StringFieldInfo - (*DataProfileResult_Profile_Field_ProfileInfo_IntegerFieldInfo)(nil), // 6: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.IntegerFieldInfo - (*DataProfileResult_Profile_Field_ProfileInfo_DoubleFieldInfo)(nil), // 7: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.DoubleFieldInfo - (*DataProfileResult_Profile_Field_ProfileInfo_TopNValue)(nil), // 8: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.TopNValue - (*ScannedData)(nil), // 9: google.cloud.dataplex.v1.ScannedData + (DataProfileResult_PostScanActionsResult_BigQueryExportResult_State)(0), // 0: google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResult.BigQueryExportResult.State + (*DataProfileSpec)(nil), // 1: google.cloud.dataplex.v1.DataProfileSpec + (*DataProfileResult)(nil), // 2: google.cloud.dataplex.v1.DataProfileResult + (*DataProfileSpec_PostScanActions)(nil), // 3: google.cloud.dataplex.v1.DataProfileSpec.PostScanActions + (*DataProfileSpec_SelectedFields)(nil), // 4: google.cloud.dataplex.v1.DataProfileSpec.SelectedFields + (*DataProfileSpec_PostScanActions_BigQueryExport)(nil), // 5: google.cloud.dataplex.v1.DataProfileSpec.PostScanActions.BigQueryExport + (*DataProfileResult_Profile)(nil), // 6: google.cloud.dataplex.v1.DataProfileResult.Profile + (*DataProfileResult_PostScanActionsResult)(nil), // 7: google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResult + (*DataProfileResult_Profile_Field)(nil), // 8: google.cloud.dataplex.v1.DataProfileResult.Profile.Field + (*DataProfileResult_Profile_Field_ProfileInfo)(nil), // 9: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo + (*DataProfileResult_Profile_Field_ProfileInfo_StringFieldInfo)(nil), // 10: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.StringFieldInfo + (*DataProfileResult_Profile_Field_ProfileInfo_IntegerFieldInfo)(nil), // 11: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.IntegerFieldInfo + (*DataProfileResult_Profile_Field_ProfileInfo_DoubleFieldInfo)(nil), // 12: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.DoubleFieldInfo + (*DataProfileResult_Profile_Field_ProfileInfo_TopNValue)(nil), // 13: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.TopNValue + (*DataProfileResult_PostScanActionsResult_BigQueryExportResult)(nil), // 14: google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResult.BigQueryExportResult + (*ScannedData)(nil), // 15: google.cloud.dataplex.v1.ScannedData } var file_google_cloud_dataplex_v1_data_profile_proto_depIdxs = []int32{ - 2, // 0: google.cloud.dataplex.v1.DataProfileResult.profile:type_name -> google.cloud.dataplex.v1.DataProfileResult.Profile - 9, // 1: google.cloud.dataplex.v1.DataProfileResult.scanned_data:type_name -> google.cloud.dataplex.v1.ScannedData - 3, // 2: google.cloud.dataplex.v1.DataProfileResult.Profile.fields:type_name -> google.cloud.dataplex.v1.DataProfileResult.Profile.Field - 4, // 3: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.profile:type_name -> google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo - 8, // 4: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.top_n_values:type_name -> google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.TopNValue - 5, // 5: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.string_profile:type_name -> google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.StringFieldInfo - 6, // 6: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.integer_profile:type_name -> google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.IntegerFieldInfo - 7, // 7: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.double_profile:type_name -> google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.DoubleFieldInfo - 8, // [8:8] is the sub-list for method output_type - 8, // [8:8] is the sub-list for method input_type - 8, // [8:8] is the sub-list for extension type_name - 8, // [8:8] is the sub-list for extension extendee - 0, // [0:8] is the sub-list for field type_name + 3, // 0: google.cloud.dataplex.v1.DataProfileSpec.post_scan_actions:type_name -> google.cloud.dataplex.v1.DataProfileSpec.PostScanActions + 4, // 1: google.cloud.dataplex.v1.DataProfileSpec.include_fields:type_name -> google.cloud.dataplex.v1.DataProfileSpec.SelectedFields + 4, // 2: google.cloud.dataplex.v1.DataProfileSpec.exclude_fields:type_name -> google.cloud.dataplex.v1.DataProfileSpec.SelectedFields + 6, // 3: google.cloud.dataplex.v1.DataProfileResult.profile:type_name -> google.cloud.dataplex.v1.DataProfileResult.Profile + 15, // 4: google.cloud.dataplex.v1.DataProfileResult.scanned_data:type_name -> google.cloud.dataplex.v1.ScannedData + 7, // 5: google.cloud.dataplex.v1.DataProfileResult.post_scan_actions_result:type_name -> google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResult + 5, // 6: google.cloud.dataplex.v1.DataProfileSpec.PostScanActions.bigquery_export:type_name -> google.cloud.dataplex.v1.DataProfileSpec.PostScanActions.BigQueryExport + 8, // 7: google.cloud.dataplex.v1.DataProfileResult.Profile.fields:type_name -> google.cloud.dataplex.v1.DataProfileResult.Profile.Field + 14, // 8: google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResult.bigquery_export_result:type_name -> google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResult.BigQueryExportResult + 9, // 9: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.profile:type_name -> google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo + 13, // 10: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.top_n_values:type_name -> google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.TopNValue + 10, // 11: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.string_profile:type_name -> google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.StringFieldInfo + 11, // 12: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.integer_profile:type_name -> google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.IntegerFieldInfo + 12, // 13: google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.double_profile:type_name -> google.cloud.dataplex.v1.DataProfileResult.Profile.Field.ProfileInfo.DoubleFieldInfo + 0, // 14: google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResult.BigQueryExportResult.state:type_name -> google.cloud.dataplex.v1.DataProfileResult.PostScanActionsResult.BigQueryExportResult.State + 15, // [15:15] is the sub-list for method output_type + 15, // [15:15] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name } func init() { file_google_cloud_dataplex_v1_data_profile_proto_init() } @@ -929,7 +1427,7 @@ func file_google_cloud_dataplex_v1_data_profile_proto_init() { } } file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataProfileResult_Profile); i { + switch v := v.(*DataProfileSpec_PostScanActions); i { case 0: return &v.state case 1: @@ -941,7 +1439,7 @@ func file_google_cloud_dataplex_v1_data_profile_proto_init() { } } file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataProfileResult_Profile_Field); i { + switch v := v.(*DataProfileSpec_SelectedFields); i { case 0: return &v.state case 1: @@ -953,7 +1451,7 @@ func file_google_cloud_dataplex_v1_data_profile_proto_init() { } } file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataProfileResult_Profile_Field_ProfileInfo); i { + switch v := v.(*DataProfileSpec_PostScanActions_BigQueryExport); i { case 0: return &v.state case 1: @@ -965,7 +1463,7 @@ func file_google_cloud_dataplex_v1_data_profile_proto_init() { } } file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataProfileResult_Profile_Field_ProfileInfo_StringFieldInfo); i { + switch v := v.(*DataProfileResult_Profile); i { case 0: return &v.state case 1: @@ -977,7 +1475,7 @@ func file_google_cloud_dataplex_v1_data_profile_proto_init() { } } file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataProfileResult_Profile_Field_ProfileInfo_IntegerFieldInfo); i { + switch v := v.(*DataProfileResult_PostScanActionsResult); i { case 0: return &v.state case 1: @@ -989,7 +1487,7 @@ func file_google_cloud_dataplex_v1_data_profile_proto_init() { } } file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataProfileResult_Profile_Field_ProfileInfo_DoubleFieldInfo); i { + switch v := v.(*DataProfileResult_Profile_Field); i { case 0: return &v.state case 1: @@ -1001,6 +1499,54 @@ func file_google_cloud_dataplex_v1_data_profile_proto_init() { } } file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataProfileResult_Profile_Field_ProfileInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataProfileResult_Profile_Field_ProfileInfo_StringFieldInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataProfileResult_Profile_Field_ProfileInfo_IntegerFieldInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataProfileResult_Profile_Field_ProfileInfo_DoubleFieldInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataProfileResult_Profile_Field_ProfileInfo_TopNValue); i { case 0: return &v.state @@ -1012,8 +1558,20 @@ func file_google_cloud_dataplex_v1_data_profile_proto_init() { return nil } } + file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataProfileResult_PostScanActionsResult_BigQueryExportResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } - file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[4].OneofWrappers = []interface{}{ + file_google_cloud_dataplex_v1_data_profile_proto_msgTypes[8].OneofWrappers = []interface{}{ (*DataProfileResult_Profile_Field_ProfileInfo_StringProfile)(nil), (*DataProfileResult_Profile_Field_ProfileInfo_IntegerProfile)(nil), (*DataProfileResult_Profile_Field_ProfileInfo_DoubleProfile)(nil), @@ -1023,13 +1581,14 @@ func file_google_cloud_dataplex_v1_data_profile_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_dataplex_v1_data_profile_proto_rawDesc, - NumEnums: 0, - NumMessages: 9, + NumEnums: 1, + NumMessages: 14, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_cloud_dataplex_v1_data_profile_proto_goTypes, DependencyIndexes: file_google_cloud_dataplex_v1_data_profile_proto_depIdxs, + EnumInfos: file_google_cloud_dataplex_v1_data_profile_proto_enumTypes, MessageInfos: file_google_cloud_dataplex_v1_data_profile_proto_msgTypes, }.Build() File_google_cloud_dataplex_v1_data_profile_proto = out.File diff --git a/dataplex/apiv1/dataplexpb/data_quality.pb.go b/dataplex/apiv1/dataplexpb/data_quality.pb.go index 36672e370a0..748e70be3aa 100755 --- a/dataplex/apiv1/dataplexpb/data_quality.pb.go +++ b/dataplex/apiv1/dataplexpb/data_quality.pb.go @@ -36,6 +36,64 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +// Execution state for the exporting. +type DataQualityResult_PostScanActionsResult_BigQueryExportResult_State int32 + +const ( + // The exporting state is unspecified. + DataQualityResult_PostScanActionsResult_BigQueryExportResult_STATE_UNSPECIFIED DataQualityResult_PostScanActionsResult_BigQueryExportResult_State = 0 + // The exporting completed successfully. + DataQualityResult_PostScanActionsResult_BigQueryExportResult_SUCCEEDED DataQualityResult_PostScanActionsResult_BigQueryExportResult_State = 1 + // The exporting is no longer running due to an error. + DataQualityResult_PostScanActionsResult_BigQueryExportResult_FAILED DataQualityResult_PostScanActionsResult_BigQueryExportResult_State = 2 + // The exporting is skipped due to no valid scan result to export + // (usually caused by scan failed). + DataQualityResult_PostScanActionsResult_BigQueryExportResult_SKIPPED DataQualityResult_PostScanActionsResult_BigQueryExportResult_State = 3 +) + +// Enum value maps for DataQualityResult_PostScanActionsResult_BigQueryExportResult_State. +var ( + DataQualityResult_PostScanActionsResult_BigQueryExportResult_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "SUCCEEDED", + 2: "FAILED", + 3: "SKIPPED", + } + DataQualityResult_PostScanActionsResult_BigQueryExportResult_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "SUCCEEDED": 1, + "FAILED": 2, + "SKIPPED": 3, + } +) + +func (x DataQualityResult_PostScanActionsResult_BigQueryExportResult_State) Enum() *DataQualityResult_PostScanActionsResult_BigQueryExportResult_State { + p := new(DataQualityResult_PostScanActionsResult_BigQueryExportResult_State) + *p = x + return p +} + +func (x DataQualityResult_PostScanActionsResult_BigQueryExportResult_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DataQualityResult_PostScanActionsResult_BigQueryExportResult_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dataplex_v1_data_quality_proto_enumTypes[0].Descriptor() +} + +func (DataQualityResult_PostScanActionsResult_BigQueryExportResult_State) Type() protoreflect.EnumType { + return &file_google_cloud_dataplex_v1_data_quality_proto_enumTypes[0] +} + +func (x DataQualityResult_PostScanActionsResult_BigQueryExportResult_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DataQualityResult_PostScanActionsResult_BigQueryExportResult_State.Descriptor instead. +func (DataQualityResult_PostScanActionsResult_BigQueryExportResult_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_quality_proto_rawDescGZIP(), []int{1, 0, 0, 0} +} + // The list of aggregate metrics a rule can be evaluated against. type DataQualityRule_StatisticRangeExpectation_ColumnStatistic int32 @@ -77,11 +135,11 @@ func (x DataQualityRule_StatisticRangeExpectation_ColumnStatistic) String() stri } func (DataQualityRule_StatisticRangeExpectation_ColumnStatistic) Descriptor() protoreflect.EnumDescriptor { - return file_google_cloud_dataplex_v1_data_quality_proto_enumTypes[0].Descriptor() + return file_google_cloud_dataplex_v1_data_quality_proto_enumTypes[1].Descriptor() } func (DataQualityRule_StatisticRangeExpectation_ColumnStatistic) Type() protoreflect.EnumType { - return &file_google_cloud_dataplex_v1_data_quality_proto_enumTypes[0] + return &file_google_cloud_dataplex_v1_data_quality_proto_enumTypes[1] } func (x DataQualityRule_StatisticRangeExpectation_ColumnStatistic) Number() protoreflect.EnumNumber { @@ -99,9 +157,24 @@ type DataQualitySpec struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The list of rules to evaluate against a data source. At least one rule is - // required. + // Required. The list of rules to evaluate against a data source. At least one + // rule is required. Rules []*DataQualityRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"` + // Optional. The percentage of the records to be selected from the dataset for + // DataScan. + // + // * Value can range between 0.0 and 100.0 with up to 3 significant decimal + // digits. + // * Sampling is not applied if `sampling_percent` is not specified, 0 or + // 100. + SamplingPercent float32 `protobuf:"fixed32,4,opt,name=sampling_percent,json=samplingPercent,proto3" json:"sampling_percent,omitempty"` + // Optional. A filter applied to all rows in a single DataScan job. + // The filter needs to be a valid SQL expression for a WHERE clause in + // BigQuery standard SQL syntax. + // Example: col1 >= 0 AND col2 < 10 + RowFilter string `protobuf:"bytes,5,opt,name=row_filter,json=rowFilter,proto3" json:"row_filter,omitempty"` + // Optional. Actions to take upon job completion. + PostScanActions *DataQualitySpec_PostScanActions `protobuf:"bytes,6,opt,name=post_scan_actions,json=postScanActions,proto3" json:"post_scan_actions,omitempty"` } func (x *DataQualitySpec) Reset() { @@ -143,6 +216,27 @@ func (x *DataQualitySpec) GetRules() []*DataQualityRule { return nil } +func (x *DataQualitySpec) GetSamplingPercent() float32 { + if x != nil { + return x.SamplingPercent + } + return 0 +} + +func (x *DataQualitySpec) GetRowFilter() string { + if x != nil { + return x.RowFilter + } + return "" +} + +func (x *DataQualitySpec) GetPostScanActions() *DataQualitySpec_PostScanActions { + if x != nil { + return x.PostScanActions + } + return nil +} + // The output of a DataQualityScan. type DataQualityResult struct { state protoimpl.MessageState @@ -159,6 +253,8 @@ type DataQualityResult struct { RowCount int64 `protobuf:"varint,4,opt,name=row_count,json=rowCount,proto3" json:"row_count,omitempty"` // The data scanned for this result. ScannedData *ScannedData `protobuf:"bytes,7,opt,name=scanned_data,json=scannedData,proto3" json:"scanned_data,omitempty"` + // Output only. The result of post scan actions. + PostScanActionsResult *DataQualityResult_PostScanActionsResult `protobuf:"bytes,8,opt,name=post_scan_actions_result,json=postScanActionsResult,proto3" json:"post_scan_actions_result,omitempty"` } func (x *DataQualityResult) Reset() { @@ -228,6 +324,13 @@ func (x *DataQualityResult) GetScannedData() *ScannedData { return nil } +func (x *DataQualityResult) GetPostScanActionsResult() *DataQualityResult_PostScanActionsResult { + if x != nil { + return x.PostScanActionsResult + } + return nil +} + // DataQualityRuleResult provides a more detailed, per-rule view of the results. type DataQualityRuleResult struct { state protoimpl.MessageState @@ -238,8 +341,9 @@ type DataQualityRuleResult struct { Rule *DataQualityRule `protobuf:"bytes,1,opt,name=rule,proto3" json:"rule,omitempty"` // Whether the rule passed or failed. Passed bool `protobuf:"varint,7,opt,name=passed,proto3" json:"passed,omitempty"` - // The number of rows a rule was evaluated against. This field is only valid - // for ColumnMap type rules. + // The number of rows a rule was evaluated against. + // + // This field is only valid for row-level type rules. // // Evaluated count can be configured to either // @@ -249,15 +353,18 @@ type DataQualityRuleResult struct { // `ignore_nulls = true`. EvaluatedCount int64 `protobuf:"varint,9,opt,name=evaluated_count,json=evaluatedCount,proto3" json:"evaluated_count,omitempty"` // The number of rows which passed a rule evaluation. - // This field is only valid for ColumnMap type rules. + // + // This field is only valid for row-level type rules. PassedCount int64 `protobuf:"varint,8,opt,name=passed_count,json=passedCount,proto3" json:"passed_count,omitempty"` // The number of rows with null values in the specified column. NullCount int64 `protobuf:"varint,5,opt,name=null_count,json=nullCount,proto3" json:"null_count,omitempty"` // The ratio of **passed_count / evaluated_count**. - // This field is only valid for ColumnMap type rules. + // + // This field is only valid for row-level type rules. PassRatio float64 `protobuf:"fixed64,6,opt,name=pass_ratio,json=passRatio,proto3" json:"pass_ratio,omitempty"` // The query to find rows that did not pass this rule. - // Only applies to ColumnMap and RowCondition rules. + // + // This field is only valid for row-level type rules. FailingRowsQuery string `protobuf:"bytes,10,opt,name=failing_rows_query,json=failingRowsQuery,proto3" json:"failing_rows_query,omitempty"` } @@ -416,7 +523,7 @@ type DataQualityRule struct { // `ignore_null` is `true`. In that case, such `null` rows are trivially // considered passing. // - // Only applicable to ColumnMap rules. + // This field is only valid for row-level type rules. IgnoreNull bool `protobuf:"varint,501,opt,name=ignore_null,json=ignoreNull,proto3" json:"ignore_null,omitempty"` // Required. The dimension a rule belongs to. Results are also aggregated at // the dimension level. Supported dimensions are **["COMPLETENESS", @@ -426,7 +533,21 @@ type DataQualityRule struct { // pass this rule, with a range of [0.0, 1.0]. // // 0 indicates default value (i.e. 1.0). + // + // This field is only valid for row-level type rules. Threshold float64 `protobuf:"fixed64,503,opt,name=threshold,proto3" json:"threshold,omitempty"` + // Optional. A mutable name for the rule. + // + // * The name must contain only letters (a-z, A-Z), numbers (0-9), or + // hyphens (-). + // * The maximum length is 63 characters. + // * Must start with a letter. + // * Must end with a number or a letter. + Name string `protobuf:"bytes,504,opt,name=name,proto3" json:"name,omitempty"` + // Optional. Description of the rule. + // + // * The maximum length is 1,024 characters. + Description string `protobuf:"bytes,505,opt,name=description,proto3" json:"description,omitempty"` } func (x *DataQualityRule) Reset() { @@ -552,52 +673,67 @@ func (x *DataQualityRule) GetThreshold() float64 { return 0 } +func (x *DataQualityRule) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DataQualityRule) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + type isDataQualityRule_RuleType interface { isDataQualityRule_RuleType() } type DataQualityRule_RangeExpectation_ struct { - // ColumnMap rule which evaluates whether each column value lies between a + // Row-level rule which evaluates whether each column value lies between a // specified range. RangeExpectation *DataQualityRule_RangeExpectation `protobuf:"bytes,1,opt,name=range_expectation,json=rangeExpectation,proto3,oneof"` } type DataQualityRule_NonNullExpectation_ struct { - // ColumnMap rule which evaluates whether each column value is null. + // Row-level rule which evaluates whether each column value is null. NonNullExpectation *DataQualityRule_NonNullExpectation `protobuf:"bytes,2,opt,name=non_null_expectation,json=nonNullExpectation,proto3,oneof"` } type DataQualityRule_SetExpectation_ struct { - // ColumnMap rule which evaluates whether each column value is contained by + // Row-level rule which evaluates whether each column value is contained by // a specified set. SetExpectation *DataQualityRule_SetExpectation `protobuf:"bytes,3,opt,name=set_expectation,json=setExpectation,proto3,oneof"` } type DataQualityRule_RegexExpectation_ struct { - // ColumnMap rule which evaluates whether each column value matches a + // Row-level rule which evaluates whether each column value matches a // specified regex. RegexExpectation *DataQualityRule_RegexExpectation `protobuf:"bytes,4,opt,name=regex_expectation,json=regexExpectation,proto3,oneof"` } type DataQualityRule_UniquenessExpectation_ struct { - // ColumnAggregate rule which evaluates whether the column has duplicates. + // Row-level rule which evaluates whether each column value is unique. UniquenessExpectation *DataQualityRule_UniquenessExpectation `protobuf:"bytes,100,opt,name=uniqueness_expectation,json=uniquenessExpectation,proto3,oneof"` } type DataQualityRule_StatisticRangeExpectation_ struct { - // ColumnAggregate rule which evaluates whether the column aggregate + // Aggregate rule which evaluates whether the column aggregate // statistic lies between a specified range. StatisticRangeExpectation *DataQualityRule_StatisticRangeExpectation `protobuf:"bytes,101,opt,name=statistic_range_expectation,json=statisticRangeExpectation,proto3,oneof"` } type DataQualityRule_RowConditionExpectation_ struct { - // Table rule which evaluates whether each row passes the specified - // condition. + // Row-level rule which evaluates whether each row in a table passes the + // specified condition. RowConditionExpectation *DataQualityRule_RowConditionExpectation `protobuf:"bytes,200,opt,name=row_condition_expectation,json=rowConditionExpectation,proto3,oneof"` } type DataQualityRule_TableConditionExpectation_ struct { - // Table rule which evaluates whether the provided expression is true. + // Aggregate rule which evaluates whether the provided expression is true + // for a table. TableConditionExpectation *DataQualityRule_TableConditionExpectation `protobuf:"bytes,201,opt,name=table_condition_expectation,json=tableConditionExpectation,proto3,oneof"` } @@ -617,6 +753,214 @@ func (*DataQualityRule_RowConditionExpectation_) isDataQualityRule_RuleType() {} func (*DataQualityRule_TableConditionExpectation_) isDataQualityRule_RuleType() {} +// The configuration of post scan actions of DataQualityScan. +type DataQualitySpec_PostScanActions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. If set, results will be exported to the provided BigQuery + // table. + BigqueryExport *DataQualitySpec_PostScanActions_BigQueryExport `protobuf:"bytes,1,opt,name=bigquery_export,json=bigqueryExport,proto3" json:"bigquery_export,omitempty"` +} + +func (x *DataQualitySpec_PostScanActions) Reset() { + *x = DataQualitySpec_PostScanActions{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataQualitySpec_PostScanActions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataQualitySpec_PostScanActions) ProtoMessage() {} + +func (x *DataQualitySpec_PostScanActions) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_quality_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 DataQualitySpec_PostScanActions.ProtoReflect.Descriptor instead. +func (*DataQualitySpec_PostScanActions) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_quality_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *DataQualitySpec_PostScanActions) GetBigqueryExport() *DataQualitySpec_PostScanActions_BigQueryExport { + if x != nil { + return x.BigqueryExport + } + return nil +} + +// The configuration of BigQuery export post scan action. +type DataQualitySpec_PostScanActions_BigQueryExport struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. The BigQuery table to export DataQualityScan results to. + // Format: + // projects/{project}/datasets/{dataset}/tables/{table} + ResultsTable string `protobuf:"bytes,1,opt,name=results_table,json=resultsTable,proto3" json:"results_table,omitempty"` +} + +func (x *DataQualitySpec_PostScanActions_BigQueryExport) Reset() { + *x = DataQualitySpec_PostScanActions_BigQueryExport{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataQualitySpec_PostScanActions_BigQueryExport) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataQualitySpec_PostScanActions_BigQueryExport) ProtoMessage() {} + +func (x *DataQualitySpec_PostScanActions_BigQueryExport) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_quality_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 DataQualitySpec_PostScanActions_BigQueryExport.ProtoReflect.Descriptor instead. +func (*DataQualitySpec_PostScanActions_BigQueryExport) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_quality_proto_rawDescGZIP(), []int{0, 0, 0} +} + +func (x *DataQualitySpec_PostScanActions_BigQueryExport) GetResultsTable() string { + if x != nil { + return x.ResultsTable + } + return "" +} + +// The result of post scan actions of DataQualityScan job. +type DataQualityResult_PostScanActionsResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The result of BigQuery export post scan action. + BigqueryExportResult *DataQualityResult_PostScanActionsResult_BigQueryExportResult `protobuf:"bytes,1,opt,name=bigquery_export_result,json=bigqueryExportResult,proto3" json:"bigquery_export_result,omitempty"` +} + +func (x *DataQualityResult_PostScanActionsResult) Reset() { + *x = DataQualityResult_PostScanActionsResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataQualityResult_PostScanActionsResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataQualityResult_PostScanActionsResult) ProtoMessage() {} + +func (x *DataQualityResult_PostScanActionsResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_quality_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 DataQualityResult_PostScanActionsResult.ProtoReflect.Descriptor instead. +func (*DataQualityResult_PostScanActionsResult) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_quality_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *DataQualityResult_PostScanActionsResult) GetBigqueryExportResult() *DataQualityResult_PostScanActionsResult_BigQueryExportResult { + if x != nil { + return x.BigqueryExportResult + } + return nil +} + +// The result of BigQuery export post scan action. +type DataQualityResult_PostScanActionsResult_BigQueryExportResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Execution state for the BigQuery exporting. + State DataQualityResult_PostScanActionsResult_BigQueryExportResult_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.dataplex.v1.DataQualityResult_PostScanActionsResult_BigQueryExportResult_State" json:"state,omitempty"` + // Output only. Additional information about the BigQuery exporting. + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *DataQualityResult_PostScanActionsResult_BigQueryExportResult) Reset() { + *x = DataQualityResult_PostScanActionsResult_BigQueryExportResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataQualityResult_PostScanActionsResult_BigQueryExportResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataQualityResult_PostScanActionsResult_BigQueryExportResult) ProtoMessage() {} + +func (x *DataQualityResult_PostScanActionsResult_BigQueryExportResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_quality_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 DataQualityResult_PostScanActionsResult_BigQueryExportResult.ProtoReflect.Descriptor instead. +func (*DataQualityResult_PostScanActionsResult_BigQueryExportResult) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_quality_proto_rawDescGZIP(), []int{1, 0, 0} +} + +func (x *DataQualityResult_PostScanActionsResult_BigQueryExportResult) GetState() DataQualityResult_PostScanActionsResult_BigQueryExportResult_State { + if x != nil { + return x.State + } + return DataQualityResult_PostScanActionsResult_BigQueryExportResult_STATE_UNSPECIFIED +} + +func (x *DataQualityResult_PostScanActionsResult_BigQueryExportResult) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + // Evaluates whether each column value lies between a specified range. type DataQualityRule_RangeExpectation struct { state protoimpl.MessageState @@ -646,7 +990,7 @@ type DataQualityRule_RangeExpectation struct { func (x *DataQualityRule_RangeExpectation) Reset() { *x = DataQualityRule_RangeExpectation{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[5] + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -659,7 +1003,7 @@ func (x *DataQualityRule_RangeExpectation) String() string { func (*DataQualityRule_RangeExpectation) ProtoMessage() {} func (x *DataQualityRule_RangeExpectation) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[5] + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -713,7 +1057,7 @@ type DataQualityRule_NonNullExpectation struct { func (x *DataQualityRule_NonNullExpectation) Reset() { *x = DataQualityRule_NonNullExpectation{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[6] + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -726,7 +1070,7 @@ func (x *DataQualityRule_NonNullExpectation) String() string { func (*DataQualityRule_NonNullExpectation) ProtoMessage() {} func (x *DataQualityRule_NonNullExpectation) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[6] + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -748,14 +1092,14 @@ type DataQualityRule_SetExpectation struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Expected values for the column value. + // Optional. Expected values for the column value. Values []string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` } func (x *DataQualityRule_SetExpectation) Reset() { *x = DataQualityRule_SetExpectation{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[7] + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -768,7 +1112,7 @@ func (x *DataQualityRule_SetExpectation) String() string { func (*DataQualityRule_SetExpectation) ProtoMessage() {} func (x *DataQualityRule_SetExpectation) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[7] + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -797,14 +1141,14 @@ type DataQualityRule_RegexExpectation struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A regular expression the column value is expected to match. + // Optional. A regular expression the column value is expected to match. Regex string `protobuf:"bytes,1,opt,name=regex,proto3" json:"regex,omitempty"` } func (x *DataQualityRule_RegexExpectation) Reset() { *x = DataQualityRule_RegexExpectation{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[8] + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -817,7 +1161,7 @@ func (x *DataQualityRule_RegexExpectation) String() string { func (*DataQualityRule_RegexExpectation) ProtoMessage() {} func (x *DataQualityRule_RegexExpectation) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[8] + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -850,7 +1194,7 @@ type DataQualityRule_UniquenessExpectation struct { func (x *DataQualityRule_UniquenessExpectation) Reset() { *x = DataQualityRule_UniquenessExpectation{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[9] + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -863,7 +1207,7 @@ func (x *DataQualityRule_UniquenessExpectation) String() string { func (*DataQualityRule_UniquenessExpectation) ProtoMessage() {} func (x *DataQualityRule_UniquenessExpectation) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[9] + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -886,25 +1230,25 @@ type DataQualityRule_StatisticRangeExpectation struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The aggregate metric to evaluate. + // Optional. The aggregate metric to evaluate. Statistic DataQualityRule_StatisticRangeExpectation_ColumnStatistic `protobuf:"varint,1,opt,name=statistic,proto3,enum=google.cloud.dataplex.v1.DataQualityRule_StatisticRangeExpectation_ColumnStatistic" json:"statistic,omitempty"` - // The minimum column statistic value allowed for a row to pass this - // validation. + // Optional. The minimum column statistic value allowed for a row to pass + // this validation. // // At least one of `min_value` and `max_value` need to be provided. MinValue string `protobuf:"bytes,2,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"` - // The maximum column statistic value allowed for a row to pass this - // validation. + // Optional. The maximum column statistic value allowed for a row to pass + // this validation. // // At least one of `min_value` and `max_value` need to be provided. MaxValue string `protobuf:"bytes,3,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"` - // Whether column statistic needs to be strictly greater than ('>') - // the minimum, or if equality is allowed. + // Optional. Whether column statistic needs to be strictly greater than + // ('>') the minimum, or if equality is allowed. // // Only relevant if a `min_value` has been defined. Default = false. StrictMinEnabled bool `protobuf:"varint,4,opt,name=strict_min_enabled,json=strictMinEnabled,proto3" json:"strict_min_enabled,omitempty"` - // Whether column statistic needs to be strictly lesser than ('<') the - // maximum, or if equality is allowed. + // Optional. Whether column statistic needs to be strictly lesser than ('<') + // the maximum, or if equality is allowed. // // Only relevant if a `max_value` has been defined. Default = false. StrictMaxEnabled bool `protobuf:"varint,5,opt,name=strict_max_enabled,json=strictMaxEnabled,proto3" json:"strict_max_enabled,omitempty"` @@ -913,7 +1257,7 @@ type DataQualityRule_StatisticRangeExpectation struct { func (x *DataQualityRule_StatisticRangeExpectation) Reset() { *x = DataQualityRule_StatisticRangeExpectation{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[10] + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -926,7 +1270,7 @@ func (x *DataQualityRule_StatisticRangeExpectation) String() string { func (*DataQualityRule_StatisticRangeExpectation) ProtoMessage() {} func (x *DataQualityRule_StatisticRangeExpectation) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[10] + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -988,14 +1332,14 @@ type DataQualityRule_RowConditionExpectation struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The SQL expression. + // Optional. The SQL expression. SqlExpression string `protobuf:"bytes,1,opt,name=sql_expression,json=sqlExpression,proto3" json:"sql_expression,omitempty"` } func (x *DataQualityRule_RowConditionExpectation) Reset() { *x = DataQualityRule_RowConditionExpectation{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[11] + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1008,7 +1352,7 @@ func (x *DataQualityRule_RowConditionExpectation) String() string { func (*DataQualityRule_RowConditionExpectation) ProtoMessage() {} func (x *DataQualityRule_RowConditionExpectation) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[11] + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1042,14 +1386,14 @@ type DataQualityRule_TableConditionExpectation struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The SQL expression. + // Optional. The SQL expression. SqlExpression string `protobuf:"bytes,1,opt,name=sql_expression,json=sqlExpression,proto3" json:"sql_expression,omitempty"` } func (x *DataQualityRule_TableConditionExpectation) Reset() { *x = DataQualityRule_TableConditionExpectation{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[12] + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1062,7 +1406,7 @@ func (x *DataQualityRule_TableConditionExpectation) String() string { func (*DataQualityRule_TableConditionExpectation) ProtoMessage() {} func (x *DataQualityRule_TableConditionExpectation) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[12] + mi := &file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1094,185 +1438,261 @@ var file_google_cloud_dataplex_v1_data_quality_proto_rawDesc = []byte{ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 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, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0x52, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, - 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x3f, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, - 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0xaf, 0x02, 0x0a, 0x11, 0x44, 0x61, 0x74, 0x61, - 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, - 0x61, 0x73, 0x73, 0x65, 0x64, 0x12, 0x54, 0x0a, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, - 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, - 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, - 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x05, 0x72, - 0x75, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, - 0x79, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x72, 0x75, 0x6c, - 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x72, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x48, 0x0a, 0x0c, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x73, 0x63, - 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x22, 0xa6, 0x02, 0x0a, 0x15, 0x44, 0x61, - 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 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, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x81, + 0x04, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, + 0x65, 0x63, 0x12, 0x44, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, - 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x75, - 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x76, - 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x65, - 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x70, 0x61, 0x73, 0x73, 0x52, - 0x61, 0x74, 0x69, 0x6f, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f, - 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x6f, 0x77, 0x73, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x22, 0x34, 0x0a, 0x1a, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, - 0x79, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x22, 0x9d, 0x0f, 0x0a, 0x0f, 0x44, 0x61, 0x74, - 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x69, 0x0a, 0x11, - 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x73, 0x61, 0x6d, 0x70, + 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, + 0x67, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x6f, 0x77, 0x5f, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x09, 0x72, 0x6f, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x6a, 0x0a, 0x11, + 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, - 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, - 0x6c, 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x65, - 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x70, 0x0a, 0x14, 0x6e, 0x6f, 0x6e, 0x5f, 0x6e, - 0x75, 0x6c, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, + 0x65, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x70, 0x6f, 0x73, 0x74, 0x53, 0x63, 0x61, + 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xe7, 0x01, 0x0a, 0x0f, 0x50, 0x6f, 0x73, + 0x74, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x76, 0x0a, 0x0f, + 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, + 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x5c, 0x0a, 0x0e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x4a, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, + 0x41, 0x01, 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, 0x0c, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x22, 0xd7, 0x06, 0x0a, 0x11, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x73, 0x73, + 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, + 0x12, 0x54, 0x0a, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x44, 0x69, 0x6d, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0a, 0x64, 0x69, 0x6d, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, - 0x2e, 0x4e, 0x6f, 0x6e, 0x4e, 0x75, 0x6c, 0x6c, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x12, 0x6e, 0x6f, 0x6e, 0x4e, 0x75, 0x6c, 0x6c, 0x45, 0x78, - 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x63, 0x0a, 0x0f, 0x73, 0x65, 0x74, - 0x5f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, - 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x53, 0x65, - 0x74, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, - 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x69, - 0x0a, 0x11, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, - 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, - 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x72, 0x65, 0x67, 0x65, 0x78, 0x45, 0x78, - 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x78, 0x0a, 0x16, 0x75, 0x6e, 0x69, - 0x71, 0x75, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, - 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, - 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x45, - 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x15, 0x75, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x85, 0x01, 0x0a, 0x1b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, - 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, - 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x19, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x80, 0x01, 0x0a, 0x19, - 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, - 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x0a, + 0x09, 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x72, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0c, 0x73, 0x63, + 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x61, 0x6e, + 0x6e, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x7f, 0x0a, 0x18, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x61, + 0x6e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, + 0x70, 0x6f, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0xa4, 0x03, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x63, + 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x91, 0x01, 0x0a, 0x16, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x56, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, - 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x52, 0x6f, 0x77, 0x43, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x17, 0x72, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x86, - 0x01, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xc9, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x6f, + 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x14, 0x62, + 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x1a, 0xf6, 0x01, 0x0a, 0x14, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x77, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x5c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x63, 0x61, + 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x42, + 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x22, 0x46, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, + 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, + 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, + 0x0b, 0x0a, 0x07, 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, 0x44, 0x10, 0x03, 0x22, 0xa6, 0x02, 0x0a, + 0x15, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x52, + 0x04, 0x72, 0x75, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x12, 0x27, 0x0a, + 0x0f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, + 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, + 0x73, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x75, 0x6c, + 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6e, + 0x75, 0x6c, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x73, + 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x70, 0x61, + 0x73, 0x73, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x61, 0x69, 0x6c, 0x69, + 0x6e, 0x67, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x6f, 0x77, 0x73, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x22, 0x34, 0x0a, 0x1a, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x22, 0x8c, 0x10, 0x0a, 0x0f, + 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x12, + 0x69, 0x0a, 0x11, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x45, + 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x70, 0x0a, 0x14, 0x6e, 0x6f, + 0x6e, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, + 0x75, 0x6c, 0x65, 0x2e, 0x4e, 0x6f, 0x6e, 0x4e, 0x75, 0x6c, 0x6c, 0x45, 0x78, 0x70, 0x65, 0x63, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x12, 0x6e, 0x6f, 0x6e, 0x4e, 0x75, 0x6c, + 0x6c, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x63, 0x0a, 0x0f, + 0x73, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, - 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, - 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x19, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x65, - 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x18, 0xf4, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x63, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x25, 0x0a, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, - 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0xf5, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x0a, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4e, 0x75, 0x6c, 0x6c, 0x12, 0x22, 0x0a, 0x09, - 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xf6, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x22, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0xf7, 0x03, - 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x1a, 0xbc, 0x01, 0x0a, 0x10, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, - 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6d, - 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x31, 0x0a, - 0x12, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, - 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4d, 0x69, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x12, 0x31, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x10, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4d, 0x61, 0x78, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x1a, 0x14, 0x0a, 0x12, 0x4e, 0x6f, 0x6e, 0x4e, 0x75, 0x6c, 0x6c, 0x45, 0x78, - 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x28, 0x0a, 0x0e, 0x53, 0x65, 0x74, - 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x1a, 0x28, 0x0a, 0x10, 0x52, 0x65, 0x67, 0x65, 0x78, 0x45, 0x78, 0x70, 0x65, - 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x1a, 0x17, 0x0a, - 0x15, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x45, 0x78, 0x70, 0x65, 0x63, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xec, 0x02, 0x0a, 0x19, 0x53, 0x74, 0x61, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x63, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x71, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x53, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, - 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, - 0x6c, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x09, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, - 0x74, 0x72, 0x69, 0x63, 0x74, 0x4d, 0x69, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, - 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x74, 0x72, - 0x69, 0x63, 0x74, 0x4d, 0x61, 0x78, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x46, 0x0a, - 0x0f, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, - 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, 0x54, 0x49, 0x53, 0x54, 0x49, 0x43, 0x5f, 0x55, 0x4e, - 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x45, 0x41, - 0x4e, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x49, 0x4e, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, - 0x4d, 0x41, 0x58, 0x10, 0x03, 0x1a, 0x40, 0x0a, 0x17, 0x52, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x42, 0x0a, 0x19, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x71, - 0x6c, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x72, - 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x6c, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, - 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, - 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x3b, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x53, 0x65, 0x74, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, + 0x00, 0x52, 0x0e, 0x73, 0x65, 0x74, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x69, 0x0a, 0x11, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x63, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x45, 0x78, 0x70, + 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x72, 0x65, 0x67, 0x65, + 0x78, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x78, 0x0a, 0x16, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x63, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6e, 0x65, + 0x73, 0x73, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x15, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x45, 0x78, 0x70, 0x65, 0x63, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x85, 0x01, 0x0a, 0x1b, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x63, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x63, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x19, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x80, + 0x01, 0x0a, 0x19, 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xc8, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x52, + 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x65, 0x63, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x17, 0x72, 0x6f, 0x77, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x86, 0x01, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, + 0x75, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x06, 0x63, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0xf4, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x25, 0x0a, 0x0b, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0xf5, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4e, 0x75, 0x6c, 0x6c, 0x12, + 0x22, 0x0a, 0x09, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xf6, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x18, 0xf7, 0x03, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x74, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x18, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0xf8, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x26, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0xf9, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xbc, 0x01, 0x0a, 0x10, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, + 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x6d, 0x69, 0x6e, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x10, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4d, 0x69, 0x6e, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, + 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4d, 0x61, + 0x78, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x14, 0x0a, 0x12, 0x4e, 0x6f, 0x6e, 0x4e, + 0x75, 0x6c, 0x6c, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x2d, + 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x2d, 0x0a, + 0x10, 0x52, 0x65, 0x67, 0x65, 0x78, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x19, 0x0a, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x1a, 0x17, 0x0a, 0x15, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x85, 0x03, 0x0a, 0x19, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x63, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x76, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x53, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, + 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x6d, + 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, + 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x31, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x10, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4d, 0x69, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x6d, 0x61, 0x78, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x10, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4d, 0x61, 0x78, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x46, 0x0a, 0x0f, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, 0x54, + 0x49, 0x53, 0x54, 0x49, 0x43, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x45, 0x41, 0x4e, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4d, + 0x49, 0x4e, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x41, 0x58, 0x10, 0x03, 0x1a, 0x45, 0x0a, + 0x17, 0x52, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, + 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x71, 0x6c, 0x5f, + 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x47, 0x0a, 0x19, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x71, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, + 0x73, 0x71, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, + 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0xc4, 0x01, 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, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 0x2e, 0x76, 0x31, 0x42, 0x10, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1287,45 +1707,55 @@ func file_google_cloud_dataplex_v1_data_quality_proto_rawDescGZIP() []byte { return file_google_cloud_dataplex_v1_data_quality_proto_rawDescData } -var file_google_cloud_dataplex_v1_data_quality_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_google_cloud_dataplex_v1_data_quality_proto_msgTypes = make([]protoimpl.MessageInfo, 13) +var file_google_cloud_dataplex_v1_data_quality_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_google_cloud_dataplex_v1_data_quality_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_google_cloud_dataplex_v1_data_quality_proto_goTypes = []interface{}{ - (DataQualityRule_StatisticRangeExpectation_ColumnStatistic)(0), // 0: google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectation.ColumnStatistic - (*DataQualitySpec)(nil), // 1: google.cloud.dataplex.v1.DataQualitySpec - (*DataQualityResult)(nil), // 2: google.cloud.dataplex.v1.DataQualityResult - (*DataQualityRuleResult)(nil), // 3: google.cloud.dataplex.v1.DataQualityRuleResult - (*DataQualityDimensionResult)(nil), // 4: google.cloud.dataplex.v1.DataQualityDimensionResult - (*DataQualityRule)(nil), // 5: google.cloud.dataplex.v1.DataQualityRule - (*DataQualityRule_RangeExpectation)(nil), // 6: google.cloud.dataplex.v1.DataQualityRule.RangeExpectation - (*DataQualityRule_NonNullExpectation)(nil), // 7: google.cloud.dataplex.v1.DataQualityRule.NonNullExpectation - (*DataQualityRule_SetExpectation)(nil), // 8: google.cloud.dataplex.v1.DataQualityRule.SetExpectation - (*DataQualityRule_RegexExpectation)(nil), // 9: google.cloud.dataplex.v1.DataQualityRule.RegexExpectation - (*DataQualityRule_UniquenessExpectation)(nil), // 10: google.cloud.dataplex.v1.DataQualityRule.UniquenessExpectation - (*DataQualityRule_StatisticRangeExpectation)(nil), // 11: google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectation - (*DataQualityRule_RowConditionExpectation)(nil), // 12: google.cloud.dataplex.v1.DataQualityRule.RowConditionExpectation - (*DataQualityRule_TableConditionExpectation)(nil), // 13: google.cloud.dataplex.v1.DataQualityRule.TableConditionExpectation - (*ScannedData)(nil), // 14: google.cloud.dataplex.v1.ScannedData + (DataQualityResult_PostScanActionsResult_BigQueryExportResult_State)(0), // 0: google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResult.BigQueryExportResult.State + (DataQualityRule_StatisticRangeExpectation_ColumnStatistic)(0), // 1: google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectation.ColumnStatistic + (*DataQualitySpec)(nil), // 2: google.cloud.dataplex.v1.DataQualitySpec + (*DataQualityResult)(nil), // 3: google.cloud.dataplex.v1.DataQualityResult + (*DataQualityRuleResult)(nil), // 4: google.cloud.dataplex.v1.DataQualityRuleResult + (*DataQualityDimensionResult)(nil), // 5: google.cloud.dataplex.v1.DataQualityDimensionResult + (*DataQualityRule)(nil), // 6: google.cloud.dataplex.v1.DataQualityRule + (*DataQualitySpec_PostScanActions)(nil), // 7: google.cloud.dataplex.v1.DataQualitySpec.PostScanActions + (*DataQualitySpec_PostScanActions_BigQueryExport)(nil), // 8: google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.BigQueryExport + (*DataQualityResult_PostScanActionsResult)(nil), // 9: google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResult + (*DataQualityResult_PostScanActionsResult_BigQueryExportResult)(nil), // 10: google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResult.BigQueryExportResult + (*DataQualityRule_RangeExpectation)(nil), // 11: google.cloud.dataplex.v1.DataQualityRule.RangeExpectation + (*DataQualityRule_NonNullExpectation)(nil), // 12: google.cloud.dataplex.v1.DataQualityRule.NonNullExpectation + (*DataQualityRule_SetExpectation)(nil), // 13: google.cloud.dataplex.v1.DataQualityRule.SetExpectation + (*DataQualityRule_RegexExpectation)(nil), // 14: google.cloud.dataplex.v1.DataQualityRule.RegexExpectation + (*DataQualityRule_UniquenessExpectation)(nil), // 15: google.cloud.dataplex.v1.DataQualityRule.UniquenessExpectation + (*DataQualityRule_StatisticRangeExpectation)(nil), // 16: google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectation + (*DataQualityRule_RowConditionExpectation)(nil), // 17: google.cloud.dataplex.v1.DataQualityRule.RowConditionExpectation + (*DataQualityRule_TableConditionExpectation)(nil), // 18: google.cloud.dataplex.v1.DataQualityRule.TableConditionExpectation + (*ScannedData)(nil), // 19: google.cloud.dataplex.v1.ScannedData } var file_google_cloud_dataplex_v1_data_quality_proto_depIdxs = []int32{ - 5, // 0: google.cloud.dataplex.v1.DataQualitySpec.rules:type_name -> google.cloud.dataplex.v1.DataQualityRule - 4, // 1: google.cloud.dataplex.v1.DataQualityResult.dimensions:type_name -> google.cloud.dataplex.v1.DataQualityDimensionResult - 3, // 2: google.cloud.dataplex.v1.DataQualityResult.rules:type_name -> google.cloud.dataplex.v1.DataQualityRuleResult - 14, // 3: google.cloud.dataplex.v1.DataQualityResult.scanned_data:type_name -> google.cloud.dataplex.v1.ScannedData - 5, // 4: google.cloud.dataplex.v1.DataQualityRuleResult.rule:type_name -> google.cloud.dataplex.v1.DataQualityRule - 6, // 5: google.cloud.dataplex.v1.DataQualityRule.range_expectation:type_name -> google.cloud.dataplex.v1.DataQualityRule.RangeExpectation - 7, // 6: google.cloud.dataplex.v1.DataQualityRule.non_null_expectation:type_name -> google.cloud.dataplex.v1.DataQualityRule.NonNullExpectation - 8, // 7: google.cloud.dataplex.v1.DataQualityRule.set_expectation:type_name -> google.cloud.dataplex.v1.DataQualityRule.SetExpectation - 9, // 8: google.cloud.dataplex.v1.DataQualityRule.regex_expectation:type_name -> google.cloud.dataplex.v1.DataQualityRule.RegexExpectation - 10, // 9: google.cloud.dataplex.v1.DataQualityRule.uniqueness_expectation:type_name -> google.cloud.dataplex.v1.DataQualityRule.UniquenessExpectation - 11, // 10: google.cloud.dataplex.v1.DataQualityRule.statistic_range_expectation:type_name -> google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectation - 12, // 11: google.cloud.dataplex.v1.DataQualityRule.row_condition_expectation:type_name -> google.cloud.dataplex.v1.DataQualityRule.RowConditionExpectation - 13, // 12: google.cloud.dataplex.v1.DataQualityRule.table_condition_expectation:type_name -> google.cloud.dataplex.v1.DataQualityRule.TableConditionExpectation - 0, // 13: google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectation.statistic:type_name -> google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectation.ColumnStatistic - 14, // [14:14] is the sub-list for method output_type - 14, // [14:14] is the sub-list for method input_type - 14, // [14:14] is the sub-list for extension type_name - 14, // [14:14] is the sub-list for extension extendee - 0, // [0:14] is the sub-list for field type_name + 6, // 0: google.cloud.dataplex.v1.DataQualitySpec.rules:type_name -> google.cloud.dataplex.v1.DataQualityRule + 7, // 1: google.cloud.dataplex.v1.DataQualitySpec.post_scan_actions:type_name -> google.cloud.dataplex.v1.DataQualitySpec.PostScanActions + 5, // 2: google.cloud.dataplex.v1.DataQualityResult.dimensions:type_name -> google.cloud.dataplex.v1.DataQualityDimensionResult + 4, // 3: google.cloud.dataplex.v1.DataQualityResult.rules:type_name -> google.cloud.dataplex.v1.DataQualityRuleResult + 19, // 4: google.cloud.dataplex.v1.DataQualityResult.scanned_data:type_name -> google.cloud.dataplex.v1.ScannedData + 9, // 5: google.cloud.dataplex.v1.DataQualityResult.post_scan_actions_result:type_name -> google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResult + 6, // 6: google.cloud.dataplex.v1.DataQualityRuleResult.rule:type_name -> google.cloud.dataplex.v1.DataQualityRule + 11, // 7: google.cloud.dataplex.v1.DataQualityRule.range_expectation:type_name -> google.cloud.dataplex.v1.DataQualityRule.RangeExpectation + 12, // 8: google.cloud.dataplex.v1.DataQualityRule.non_null_expectation:type_name -> google.cloud.dataplex.v1.DataQualityRule.NonNullExpectation + 13, // 9: google.cloud.dataplex.v1.DataQualityRule.set_expectation:type_name -> google.cloud.dataplex.v1.DataQualityRule.SetExpectation + 14, // 10: google.cloud.dataplex.v1.DataQualityRule.regex_expectation:type_name -> google.cloud.dataplex.v1.DataQualityRule.RegexExpectation + 15, // 11: google.cloud.dataplex.v1.DataQualityRule.uniqueness_expectation:type_name -> google.cloud.dataplex.v1.DataQualityRule.UniquenessExpectation + 16, // 12: google.cloud.dataplex.v1.DataQualityRule.statistic_range_expectation:type_name -> google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectation + 17, // 13: google.cloud.dataplex.v1.DataQualityRule.row_condition_expectation:type_name -> google.cloud.dataplex.v1.DataQualityRule.RowConditionExpectation + 18, // 14: google.cloud.dataplex.v1.DataQualityRule.table_condition_expectation:type_name -> google.cloud.dataplex.v1.DataQualityRule.TableConditionExpectation + 8, // 15: google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.bigquery_export:type_name -> google.cloud.dataplex.v1.DataQualitySpec.PostScanActions.BigQueryExport + 10, // 16: google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResult.bigquery_export_result:type_name -> google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResult.BigQueryExportResult + 0, // 17: google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResult.BigQueryExportResult.state:type_name -> google.cloud.dataplex.v1.DataQualityResult.PostScanActionsResult.BigQueryExportResult.State + 1, // 18: google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectation.statistic:type_name -> google.cloud.dataplex.v1.DataQualityRule.StatisticRangeExpectation.ColumnStatistic + 19, // [19:19] is the sub-list for method output_type + 19, // [19:19] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name } func init() { file_google_cloud_dataplex_v1_data_quality_proto_init() } @@ -1396,7 +1826,7 @@ func file_google_cloud_dataplex_v1_data_quality_proto_init() { } } file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataQualityRule_RangeExpectation); i { + switch v := v.(*DataQualitySpec_PostScanActions); i { case 0: return &v.state case 1: @@ -1408,7 +1838,7 @@ func file_google_cloud_dataplex_v1_data_quality_proto_init() { } } file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataQualityRule_NonNullExpectation); i { + switch v := v.(*DataQualitySpec_PostScanActions_BigQueryExport); i { case 0: return &v.state case 1: @@ -1420,7 +1850,7 @@ func file_google_cloud_dataplex_v1_data_quality_proto_init() { } } file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataQualityRule_SetExpectation); i { + switch v := v.(*DataQualityResult_PostScanActionsResult); i { case 0: return &v.state case 1: @@ -1432,7 +1862,7 @@ func file_google_cloud_dataplex_v1_data_quality_proto_init() { } } file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataQualityRule_RegexExpectation); i { + switch v := v.(*DataQualityResult_PostScanActionsResult_BigQueryExportResult); i { case 0: return &v.state case 1: @@ -1444,7 +1874,7 @@ func file_google_cloud_dataplex_v1_data_quality_proto_init() { } } file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataQualityRule_UniquenessExpectation); i { + switch v := v.(*DataQualityRule_RangeExpectation); i { case 0: return &v.state case 1: @@ -1456,7 +1886,7 @@ func file_google_cloud_dataplex_v1_data_quality_proto_init() { } } file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataQualityRule_StatisticRangeExpectation); i { + switch v := v.(*DataQualityRule_NonNullExpectation); i { case 0: return &v.state case 1: @@ -1468,7 +1898,7 @@ func file_google_cloud_dataplex_v1_data_quality_proto_init() { } } file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DataQualityRule_RowConditionExpectation); i { + switch v := v.(*DataQualityRule_SetExpectation); i { case 0: return &v.state case 1: @@ -1480,6 +1910,54 @@ func file_google_cloud_dataplex_v1_data_quality_proto_init() { } } file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataQualityRule_RegexExpectation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataQualityRule_UniquenessExpectation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataQualityRule_StatisticRangeExpectation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataQualityRule_RowConditionExpectation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_quality_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataQualityRule_TableConditionExpectation); i { case 0: return &v.state @@ -1507,8 +1985,8 @@ func file_google_cloud_dataplex_v1_data_quality_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_dataplex_v1_data_quality_proto_rawDesc, - NumEnums: 1, - NumMessages: 13, + NumEnums: 2, + NumMessages: 17, NumExtensions: 0, NumServices: 0, }, diff --git a/dataplex/apiv1/dataplexpb/data_taxonomy.pb.go b/dataplex/apiv1/dataplexpb/data_taxonomy.pb.go new file mode 100755 index 00000000000..3b639c491b4 --- /dev/null +++ b/dataplex/apiv1/dataplexpb/data_taxonomy.pb.go @@ -0,0 +1,3541 @@ +// 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.30.0 +// protoc v4.23.2 +// source: google/cloud/dataplex/v1/data_taxonomy.proto + +package dataplexpb + +import ( + context "context" + reflect "reflect" + sync "sync" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + _ "google.golang.org/genproto/googleapis/api/annotations" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + 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) +) + +// DataTaxonomy represents a set of hierarchical DataAttributes resources, +// grouped with a common theme Eg: 'SensitiveDataTaxonomy' can have attributes +// to manage PII data. It is defined at project level. +type DataTaxonomy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The relative resource name of the DataTaxonomy, of the form: + // projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id}. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. System generated globally unique ID for the dataTaxonomy. This + // ID will be different if the DataTaxonomy is deleted and re-created with the + // same name. + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` + // Output only. The time when the DataTaxonomy was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time when the DataTaxonomy was last updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Optional. Description of the DataTaxonomy. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // Optional. User friendly display name. + DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Optional. User-defined labels for the DataTaxonomy. + Labels map[string]string `protobuf:"bytes,8,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. The number of attributes in the DataTaxonomy. + AttributeCount int32 `protobuf:"varint,9,opt,name=attribute_count,json=attributeCount,proto3" json:"attribute_count,omitempty"` + // This checksum is computed by the server based on the value of other + // fields, and may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + Etag string `protobuf:"bytes,10,opt,name=etag,proto3" json:"etag,omitempty"` + // Output only. The number of classes in the DataTaxonomy. + ClassCount int32 `protobuf:"varint,11,opt,name=class_count,json=classCount,proto3" json:"class_count,omitempty"` +} + +func (x *DataTaxonomy) Reset() { + *x = DataTaxonomy{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataTaxonomy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataTaxonomy) ProtoMessage() {} + +func (x *DataTaxonomy) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 DataTaxonomy.ProtoReflect.Descriptor instead. +func (*DataTaxonomy) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{0} +} + +func (x *DataTaxonomy) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DataTaxonomy) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *DataTaxonomy) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *DataTaxonomy) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *DataTaxonomy) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *DataTaxonomy) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *DataTaxonomy) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *DataTaxonomy) GetAttributeCount() int32 { + if x != nil { + return x.AttributeCount + } + return 0 +} + +func (x *DataTaxonomy) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *DataTaxonomy) GetClassCount() int32 { + if x != nil { + return x.ClassCount + } + return 0 +} + +// Denotes one dataAttribute in a dataTaxonomy, for example, PII. +// DataAttribute resources can be defined in a hierarchy. +// A single dataAttribute resource can contain specs of multiple types +// +// ``` +// PII +// - ResourceAccessSpec : +// - readers :foo@bar.com +// - DataAccessSpec : +// - readers :bar@foo.com +// +// ``` +type DataAttribute struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The relative resource name of the dataAttribute, of the form: + // projects/{project_number}/locations/{location_id}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id}. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. System generated globally unique ID for the DataAttribute. + // This ID will be different if the DataAttribute is deleted and re-created + // with the same name. + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` + // Output only. The time when the DataAttribute was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time when the DataAttribute was last updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Optional. Description of the DataAttribute. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // Optional. User friendly display name. + DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Optional. User-defined labels for the DataAttribute. + Labels map[string]string `protobuf:"bytes,7,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. The ID of the parent DataAttribute resource, should belong to the + // same data taxonomy. Circular dependency in parent chain is not valid. + // Maximum depth of the hierarchy allowed is 4. + // [a -> b -> c -> d -> e, depth = 4] + ParentId string `protobuf:"bytes,8,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"` + // Output only. The number of child attributes present for this attribute. + AttributeCount int32 `protobuf:"varint,9,opt,name=attribute_count,json=attributeCount,proto3" json:"attribute_count,omitempty"` + // This checksum is computed by the server based on the value of other + // fields, and may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + Etag string `protobuf:"bytes,10,opt,name=etag,proto3" json:"etag,omitempty"` + // Optional. Specified when applied to a resource (eg: Cloud Storage bucket, + // BigQuery dataset, BigQuery table). + ResourceAccessSpec *ResourceAccessSpec `protobuf:"bytes,100,opt,name=resource_access_spec,json=resourceAccessSpec,proto3" json:"resource_access_spec,omitempty"` + // Optional. Specified when applied to data stored on the resource (eg: rows, + // columns in BigQuery Tables). + DataAccessSpec *DataAccessSpec `protobuf:"bytes,101,opt,name=data_access_spec,json=dataAccessSpec,proto3" json:"data_access_spec,omitempty"` +} + +func (x *DataAttribute) Reset() { + *x = DataAttribute{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataAttribute) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataAttribute) ProtoMessage() {} + +func (x *DataAttribute) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 DataAttribute.ProtoReflect.Descriptor instead. +func (*DataAttribute) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{1} +} + +func (x *DataAttribute) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DataAttribute) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *DataAttribute) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *DataAttribute) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *DataAttribute) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *DataAttribute) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *DataAttribute) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *DataAttribute) GetParentId() string { + if x != nil { + return x.ParentId + } + return "" +} + +func (x *DataAttribute) GetAttributeCount() int32 { + if x != nil { + return x.AttributeCount + } + return 0 +} + +func (x *DataAttribute) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *DataAttribute) GetResourceAccessSpec() *ResourceAccessSpec { + if x != nil { + return x.ResourceAccessSpec + } + return nil +} + +func (x *DataAttribute) GetDataAccessSpec() *DataAccessSpec { + if x != nil { + return x.DataAccessSpec + } + return nil +} + +// DataAttributeBinding represents binding of attributes to resources. Eg: Bind +// 'CustomerInfo' entity with 'PII' attribute. +type DataAttributeBinding struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The relative resource name of the Data Attribute Binding, of + // the form: + // projects/{project_number}/locations/{location}/dataAttributeBindings/{data_attribute_binding_id} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. System generated globally unique ID for the + // DataAttributeBinding. This ID will be different if the DataAttributeBinding + // is deleted and re-created with the same name. + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` + // Output only. The time when the DataAttributeBinding was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time when the DataAttributeBinding was last updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Optional. Description of the DataAttributeBinding. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // Optional. User friendly display name. + DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Optional. User-defined labels for the DataAttributeBinding. + Labels map[string]string `protobuf:"bytes,7,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // This checksum is computed by the server based on the value of other + // fields, and may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + // Etags must be used when calling the DeleteDataAttributeBinding and the + // UpdateDataAttributeBinding method. + Etag string `protobuf:"bytes,8,opt,name=etag,proto3" json:"etag,omitempty"` + // The reference to the resource that is associated to attributes, or + // the query to match resources and associate attributes. + // + // Types that are assignable to ResourceReference: + // *DataAttributeBinding_Resource + ResourceReference isDataAttributeBinding_ResourceReference `protobuf_oneof:"resource_reference"` + // Optional. List of attributes to be associated with the resource, provided + // in the form: + // projects/{project}/locations/{location}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id} + Attributes []string `protobuf:"bytes,110,rep,name=attributes,proto3" json:"attributes,omitempty"` + // Optional. The list of paths for items within the associated resource (eg. + // columns and partitions within a table) along with attribute bindings. + Paths []*DataAttributeBinding_Path `protobuf:"bytes,120,rep,name=paths,proto3" json:"paths,omitempty"` +} + +func (x *DataAttributeBinding) Reset() { + *x = DataAttributeBinding{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataAttributeBinding) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataAttributeBinding) ProtoMessage() {} + +func (x *DataAttributeBinding) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 DataAttributeBinding.ProtoReflect.Descriptor instead. +func (*DataAttributeBinding) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{2} +} + +func (x *DataAttributeBinding) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DataAttributeBinding) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *DataAttributeBinding) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *DataAttributeBinding) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *DataAttributeBinding) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *DataAttributeBinding) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *DataAttributeBinding) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *DataAttributeBinding) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (m *DataAttributeBinding) GetResourceReference() isDataAttributeBinding_ResourceReference { + if m != nil { + return m.ResourceReference + } + return nil +} + +func (x *DataAttributeBinding) GetResource() string { + if x, ok := x.GetResourceReference().(*DataAttributeBinding_Resource); ok { + return x.Resource + } + return "" +} + +func (x *DataAttributeBinding) GetAttributes() []string { + if x != nil { + return x.Attributes + } + return nil +} + +func (x *DataAttributeBinding) GetPaths() []*DataAttributeBinding_Path { + if x != nil { + return x.Paths + } + return nil +} + +type isDataAttributeBinding_ResourceReference interface { + isDataAttributeBinding_ResourceReference() +} + +type DataAttributeBinding_Resource struct { + // Optional. Immutable. The resource name of the resource that is associated + // to attributes. Presently, only entity resource is supported in the form: + // projects/{project}/locations/{location}/lakes/{lake}/zones/{zone}/entities/{entity_id} + // Must belong in the same project and region as the attribute binding, and + // there can only exist one active binding for a resource. + Resource string `protobuf:"bytes,100,opt,name=resource,proto3,oneof"` +} + +func (*DataAttributeBinding_Resource) isDataAttributeBinding_ResourceReference() {} + +// Create DataTaxonomy request. +type CreateDataTaxonomyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the data taxonomy location, of the form: + // projects/{project_number}/locations/{location_id} + // where `location_id` refers to a GCP region. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. DataTaxonomy identifier. + // * Must contain only lowercase letters, numbers and hyphens. + // * Must start with a letter. + // * Must be between 1-63 characters. + // * Must end with a number or a letter. + // * Must be unique within the Project. + DataTaxonomyId string `protobuf:"bytes,2,opt,name=data_taxonomy_id,json=dataTaxonomyId,proto3" json:"data_taxonomy_id,omitempty"` + // Required. DataTaxonomy resource. + DataTaxonomy *DataTaxonomy `protobuf:"bytes,3,opt,name=data_taxonomy,json=dataTaxonomy,proto3" json:"data_taxonomy,omitempty"` + // Optional. Only validate the request, but do not perform mutations. + // The default is false. + ValidateOnly bool `protobuf:"varint,4,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` +} + +func (x *CreateDataTaxonomyRequest) Reset() { + *x = CreateDataTaxonomyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateDataTaxonomyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateDataTaxonomyRequest) ProtoMessage() {} + +func (x *CreateDataTaxonomyRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 CreateDataTaxonomyRequest.ProtoReflect.Descriptor instead. +func (*CreateDataTaxonomyRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateDataTaxonomyRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateDataTaxonomyRequest) GetDataTaxonomyId() string { + if x != nil { + return x.DataTaxonomyId + } + return "" +} + +func (x *CreateDataTaxonomyRequest) GetDataTaxonomy() *DataTaxonomy { + if x != nil { + return x.DataTaxonomy + } + return nil +} + +func (x *CreateDataTaxonomyRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +// Update DataTaxonomy request. +type UpdateDataTaxonomyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Mask of fields to update. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. Only fields specified in `update_mask` are updated. + DataTaxonomy *DataTaxonomy `protobuf:"bytes,2,opt,name=data_taxonomy,json=dataTaxonomy,proto3" json:"data_taxonomy,omitempty"` + // Optional. Only validate the request, but do not perform mutations. + // The default is false. + ValidateOnly bool `protobuf:"varint,3,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` +} + +func (x *UpdateDataTaxonomyRequest) Reset() { + *x = UpdateDataTaxonomyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateDataTaxonomyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateDataTaxonomyRequest) ProtoMessage() {} + +func (x *UpdateDataTaxonomyRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 UpdateDataTaxonomyRequest.ProtoReflect.Descriptor instead. +func (*UpdateDataTaxonomyRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{4} +} + +func (x *UpdateDataTaxonomyRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateDataTaxonomyRequest) GetDataTaxonomy() *DataTaxonomy { + if x != nil { + return x.DataTaxonomy + } + return nil +} + +func (x *UpdateDataTaxonomyRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +// Get DataTaxonomy request. +type GetDataTaxonomyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the DataTaxonomy: + // projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetDataTaxonomyRequest) Reset() { + *x = GetDataTaxonomyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDataTaxonomyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDataTaxonomyRequest) ProtoMessage() {} + +func (x *GetDataTaxonomyRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 GetDataTaxonomyRequest.ProtoReflect.Descriptor instead. +func (*GetDataTaxonomyRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{5} +} + +func (x *GetDataTaxonomyRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// List DataTaxonomies request. +type ListDataTaxonomiesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the DataTaxonomy location, of the form: + // projects/{project_number}/locations/{location_id} + // where `location_id` refers to a GCP region. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. Maximum number of DataTaxonomies to return. The service may + // return fewer than this value. If unspecified, at most 10 DataTaxonomies + // will be returned. The maximum value is 1000; values above 1000 will be + // coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. Page token received from a previous ` ListDataTaxonomies` call. + // Provide this to retrieve the subsequent page. When paginating, all other + // parameters provided to ` ListDataTaxonomies` must match the call that + // provided the page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Optional. Filter request. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Optional. Order by fields for the result. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListDataTaxonomiesRequest) Reset() { + *x = ListDataTaxonomiesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDataTaxonomiesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDataTaxonomiesRequest) ProtoMessage() {} + +func (x *ListDataTaxonomiesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 ListDataTaxonomiesRequest.ProtoReflect.Descriptor instead. +func (*ListDataTaxonomiesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{6} +} + +func (x *ListDataTaxonomiesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListDataTaxonomiesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListDataTaxonomiesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListDataTaxonomiesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListDataTaxonomiesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// List DataTaxonomies response. +type ListDataTaxonomiesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // DataTaxonomies under the given parent location. + DataTaxonomies []*DataTaxonomy `protobuf:"bytes,1,rep,name=data_taxonomies,json=dataTaxonomies,proto3" json:"data_taxonomies,omitempty"` + // Token to retrieve the next page of results, or empty if there are no more + // results in the list. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + UnreachableLocations []string `protobuf:"bytes,3,rep,name=unreachable_locations,json=unreachableLocations,proto3" json:"unreachable_locations,omitempty"` +} + +func (x *ListDataTaxonomiesResponse) Reset() { + *x = ListDataTaxonomiesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDataTaxonomiesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDataTaxonomiesResponse) ProtoMessage() {} + +func (x *ListDataTaxonomiesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 ListDataTaxonomiesResponse.ProtoReflect.Descriptor instead. +func (*ListDataTaxonomiesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{7} +} + +func (x *ListDataTaxonomiesResponse) GetDataTaxonomies() []*DataTaxonomy { + if x != nil { + return x.DataTaxonomies + } + return nil +} + +func (x *ListDataTaxonomiesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListDataTaxonomiesResponse) GetUnreachableLocations() []string { + if x != nil { + return x.UnreachableLocations + } + return nil +} + +// Delete DataTaxonomy request. +type DeleteDataTaxonomyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the DataTaxonomy: + // projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. If the client provided etag value does not match the current etag + // value,the DeleteDataTaxonomy method returns an ABORTED error. + Etag string `protobuf:"bytes,2,opt,name=etag,proto3" json:"etag,omitempty"` +} + +func (x *DeleteDataTaxonomyRequest) Reset() { + *x = DeleteDataTaxonomyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteDataTaxonomyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteDataTaxonomyRequest) ProtoMessage() {} + +func (x *DeleteDataTaxonomyRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 DeleteDataTaxonomyRequest.ProtoReflect.Descriptor instead. +func (*DeleteDataTaxonomyRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{8} +} + +func (x *DeleteDataTaxonomyRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteDataTaxonomyRequest) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +// Create DataAttribute request. +type CreateDataAttributeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the parent data taxonomy + // projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id} + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. DataAttribute identifier. + // * Must contain only lowercase letters, numbers and hyphens. + // * Must start with a letter. + // * Must be between 1-63 characters. + // * Must end with a number or a letter. + // * Must be unique within the DataTaxonomy. + DataAttributeId string `protobuf:"bytes,2,opt,name=data_attribute_id,json=dataAttributeId,proto3" json:"data_attribute_id,omitempty"` + // Required. DataAttribute resource. + DataAttribute *DataAttribute `protobuf:"bytes,3,opt,name=data_attribute,json=dataAttribute,proto3" json:"data_attribute,omitempty"` + // Optional. Only validate the request, but do not perform mutations. + // The default is false. + ValidateOnly bool `protobuf:"varint,4,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` +} + +func (x *CreateDataAttributeRequest) Reset() { + *x = CreateDataAttributeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateDataAttributeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateDataAttributeRequest) ProtoMessage() {} + +func (x *CreateDataAttributeRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 CreateDataAttributeRequest.ProtoReflect.Descriptor instead. +func (*CreateDataAttributeRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{9} +} + +func (x *CreateDataAttributeRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateDataAttributeRequest) GetDataAttributeId() string { + if x != nil { + return x.DataAttributeId + } + return "" +} + +func (x *CreateDataAttributeRequest) GetDataAttribute() *DataAttribute { + if x != nil { + return x.DataAttribute + } + return nil +} + +func (x *CreateDataAttributeRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +// Update DataAttribute request. +type UpdateDataAttributeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Mask of fields to update. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. Only fields specified in `update_mask` are updated. + DataAttribute *DataAttribute `protobuf:"bytes,2,opt,name=data_attribute,json=dataAttribute,proto3" json:"data_attribute,omitempty"` + // Optional. Only validate the request, but do not perform mutations. + // The default is false. + ValidateOnly bool `protobuf:"varint,3,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` +} + +func (x *UpdateDataAttributeRequest) Reset() { + *x = UpdateDataAttributeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateDataAttributeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateDataAttributeRequest) ProtoMessage() {} + +func (x *UpdateDataAttributeRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 UpdateDataAttributeRequest.ProtoReflect.Descriptor instead. +func (*UpdateDataAttributeRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{10} +} + +func (x *UpdateDataAttributeRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateDataAttributeRequest) GetDataAttribute() *DataAttribute { + if x != nil { + return x.DataAttribute + } + return nil +} + +func (x *UpdateDataAttributeRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +// Get DataAttribute request. +type GetDataAttributeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the dataAttribute: + // projects/{project_number}/locations/{location_id}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetDataAttributeRequest) Reset() { + *x = GetDataAttributeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDataAttributeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDataAttributeRequest) ProtoMessage() {} + +func (x *GetDataAttributeRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 GetDataAttributeRequest.ProtoReflect.Descriptor instead. +func (*GetDataAttributeRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{11} +} + +func (x *GetDataAttributeRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// List DataAttributes request. +type ListDataAttributesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the DataTaxonomy: + // projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id} + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. Maximum number of DataAttributes to return. The service may + // return fewer than this value. If unspecified, at most 10 dataAttributes + // will be returned. The maximum value is 1000; values above 1000 will be + // coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. Page token received from a previous `ListDataAttributes` call. + // Provide this to retrieve the subsequent page. When paginating, all other + // parameters provided to `ListDataAttributes` must match the call that + // provided the page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Optional. Filter request. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Optional. Order by fields for the result. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListDataAttributesRequest) Reset() { + *x = ListDataAttributesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDataAttributesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDataAttributesRequest) ProtoMessage() {} + +func (x *ListDataAttributesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 ListDataAttributesRequest.ProtoReflect.Descriptor instead. +func (*ListDataAttributesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{12} +} + +func (x *ListDataAttributesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListDataAttributesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListDataAttributesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListDataAttributesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListDataAttributesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// List DataAttributes response. +type ListDataAttributesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // DataAttributes under the given parent DataTaxonomy. + DataAttributes []*DataAttribute `protobuf:"bytes,1,rep,name=data_attributes,json=dataAttributes,proto3" json:"data_attributes,omitempty"` + // Token to retrieve the next page of results, or empty if there are no more + // results in the list. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + UnreachableLocations []string `protobuf:"bytes,3,rep,name=unreachable_locations,json=unreachableLocations,proto3" json:"unreachable_locations,omitempty"` +} + +func (x *ListDataAttributesResponse) Reset() { + *x = ListDataAttributesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDataAttributesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDataAttributesResponse) ProtoMessage() {} + +func (x *ListDataAttributesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 ListDataAttributesResponse.ProtoReflect.Descriptor instead. +func (*ListDataAttributesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{13} +} + +func (x *ListDataAttributesResponse) GetDataAttributes() []*DataAttribute { + if x != nil { + return x.DataAttributes + } + return nil +} + +func (x *ListDataAttributesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListDataAttributesResponse) GetUnreachableLocations() []string { + if x != nil { + return x.UnreachableLocations + } + return nil +} + +// Delete DataAttribute request. +type DeleteDataAttributeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the DataAttribute: + // projects/{project_number}/locations/{location_id}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. If the client provided etag value does not match the current etag + // value, the DeleteDataAttribute method returns an ABORTED error response. + Etag string `protobuf:"bytes,2,opt,name=etag,proto3" json:"etag,omitempty"` +} + +func (x *DeleteDataAttributeRequest) Reset() { + *x = DeleteDataAttributeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteDataAttributeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteDataAttributeRequest) ProtoMessage() {} + +func (x *DeleteDataAttributeRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 DeleteDataAttributeRequest.ProtoReflect.Descriptor instead. +func (*DeleteDataAttributeRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{14} +} + +func (x *DeleteDataAttributeRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteDataAttributeRequest) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +// Create DataAttributeBinding request. +type CreateDataAttributeBindingRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the parent data taxonomy + // projects/{project_number}/locations/{location_id} + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. DataAttributeBinding identifier. + // * Must contain only lowercase letters, numbers and hyphens. + // * Must start with a letter. + // * Must be between 1-63 characters. + // * Must end with a number or a letter. + // * Must be unique within the Location. + DataAttributeBindingId string `protobuf:"bytes,2,opt,name=data_attribute_binding_id,json=dataAttributeBindingId,proto3" json:"data_attribute_binding_id,omitempty"` + // Required. DataAttributeBinding resource. + DataAttributeBinding *DataAttributeBinding `protobuf:"bytes,3,opt,name=data_attribute_binding,json=dataAttributeBinding,proto3" json:"data_attribute_binding,omitempty"` + // Optional. Only validate the request, but do not perform mutations. + // The default is false. + ValidateOnly bool `protobuf:"varint,4,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` +} + +func (x *CreateDataAttributeBindingRequest) Reset() { + *x = CreateDataAttributeBindingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateDataAttributeBindingRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateDataAttributeBindingRequest) ProtoMessage() {} + +func (x *CreateDataAttributeBindingRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 CreateDataAttributeBindingRequest.ProtoReflect.Descriptor instead. +func (*CreateDataAttributeBindingRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{15} +} + +func (x *CreateDataAttributeBindingRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateDataAttributeBindingRequest) GetDataAttributeBindingId() string { + if x != nil { + return x.DataAttributeBindingId + } + return "" +} + +func (x *CreateDataAttributeBindingRequest) GetDataAttributeBinding() *DataAttributeBinding { + if x != nil { + return x.DataAttributeBinding + } + return nil +} + +func (x *CreateDataAttributeBindingRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +// Update DataAttributeBinding request. +type UpdateDataAttributeBindingRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Mask of fields to update. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. Only fields specified in `update_mask` are updated. + DataAttributeBinding *DataAttributeBinding `protobuf:"bytes,2,opt,name=data_attribute_binding,json=dataAttributeBinding,proto3" json:"data_attribute_binding,omitempty"` + // Optional. Only validate the request, but do not perform mutations. + // The default is false. + ValidateOnly bool `protobuf:"varint,3,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` +} + +func (x *UpdateDataAttributeBindingRequest) Reset() { + *x = UpdateDataAttributeBindingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateDataAttributeBindingRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateDataAttributeBindingRequest) ProtoMessage() {} + +func (x *UpdateDataAttributeBindingRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 UpdateDataAttributeBindingRequest.ProtoReflect.Descriptor instead. +func (*UpdateDataAttributeBindingRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{16} +} + +func (x *UpdateDataAttributeBindingRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateDataAttributeBindingRequest) GetDataAttributeBinding() *DataAttributeBinding { + if x != nil { + return x.DataAttributeBinding + } + return nil +} + +func (x *UpdateDataAttributeBindingRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +// Get DataAttributeBinding request. +type GetDataAttributeBindingRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the DataAttributeBinding: + // projects/{project_number}/locations/{location_id}/dataAttributeBindings/{data_attribute_binding_id} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetDataAttributeBindingRequest) Reset() { + *x = GetDataAttributeBindingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDataAttributeBindingRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDataAttributeBindingRequest) ProtoMessage() {} + +func (x *GetDataAttributeBindingRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 GetDataAttributeBindingRequest.ProtoReflect.Descriptor instead. +func (*GetDataAttributeBindingRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{17} +} + +func (x *GetDataAttributeBindingRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// List DataAttributeBindings request. +type ListDataAttributeBindingsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the Location: + // projects/{project_number}/locations/{location_id} + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. Maximum number of DataAttributeBindings to return. The service + // may return fewer than this value. If unspecified, at most 10 + // DataAttributeBindings will be returned. The maximum value is 1000; values + // above 1000 will be coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. Page token received from a previous `ListDataAttributeBindings` + // call. Provide this to retrieve the subsequent page. When paginating, all + // other parameters provided to `ListDataAttributeBindings` must match the + // call that provided the page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Optional. Filter request. + // Filter using resource: filter=resource:"resource-name" + // Filter using attribute: filter=attributes:"attribute-name" + // Filter using attribute in paths list: + // filter=paths.attributes:"attribute-name" + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Optional. Order by fields for the result. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListDataAttributeBindingsRequest) Reset() { + *x = ListDataAttributeBindingsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDataAttributeBindingsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDataAttributeBindingsRequest) ProtoMessage() {} + +func (x *ListDataAttributeBindingsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 ListDataAttributeBindingsRequest.ProtoReflect.Descriptor instead. +func (*ListDataAttributeBindingsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{18} +} + +func (x *ListDataAttributeBindingsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListDataAttributeBindingsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListDataAttributeBindingsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListDataAttributeBindingsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListDataAttributeBindingsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// List DataAttributeBindings response. +type ListDataAttributeBindingsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // DataAttributeBindings under the given parent Location. + DataAttributeBindings []*DataAttributeBinding `protobuf:"bytes,1,rep,name=data_attribute_bindings,json=dataAttributeBindings,proto3" json:"data_attribute_bindings,omitempty"` + // Token to retrieve the next page of results, or empty if there are no more + // results in the list. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + UnreachableLocations []string `protobuf:"bytes,3,rep,name=unreachable_locations,json=unreachableLocations,proto3" json:"unreachable_locations,omitempty"` +} + +func (x *ListDataAttributeBindingsResponse) Reset() { + *x = ListDataAttributeBindingsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDataAttributeBindingsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDataAttributeBindingsResponse) ProtoMessage() {} + +func (x *ListDataAttributeBindingsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 ListDataAttributeBindingsResponse.ProtoReflect.Descriptor instead. +func (*ListDataAttributeBindingsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{19} +} + +func (x *ListDataAttributeBindingsResponse) GetDataAttributeBindings() []*DataAttributeBinding { + if x != nil { + return x.DataAttributeBindings + } + return nil +} + +func (x *ListDataAttributeBindingsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListDataAttributeBindingsResponse) GetUnreachableLocations() []string { + if x != nil { + return x.UnreachableLocations + } + return nil +} + +// Delete DataAttributeBinding request. +type DeleteDataAttributeBindingRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the DataAttributeBinding: + // projects/{project_number}/locations/{location_id}/dataAttributeBindings/{data_attribute_binding_id} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. If the client provided etag value does not match the current etag + // value, the DeleteDataAttributeBindingRequest method returns an ABORTED + // error response. Etags must be used when calling the + // DeleteDataAttributeBinding. + Etag string `protobuf:"bytes,2,opt,name=etag,proto3" json:"etag,omitempty"` +} + +func (x *DeleteDataAttributeBindingRequest) Reset() { + *x = DeleteDataAttributeBindingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteDataAttributeBindingRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteDataAttributeBindingRequest) ProtoMessage() {} + +func (x *DeleteDataAttributeBindingRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_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 DeleteDataAttributeBindingRequest.ProtoReflect.Descriptor instead. +func (*DeleteDataAttributeBindingRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{20} +} + +func (x *DeleteDataAttributeBindingRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteDataAttributeBindingRequest) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +// Represents a subresource of the given resource, and associated bindings +// with it. Currently supported subresources are column and partition schema +// fields within a table. +type DataAttributeBinding_Path struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name identifier of the path. + // Nested columns should be of the form: 'address.city'. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. List of attributes to be associated with the path of the + // resource, provided in the form: + // projects/{project}/locations/{location}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id} + Attributes []string `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty"` +} + +func (x *DataAttributeBinding_Path) Reset() { + *x = DataAttributeBinding_Path{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataAttributeBinding_Path) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataAttributeBinding_Path) ProtoMessage() {} + +func (x *DataAttributeBinding_Path) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[23] + 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 DataAttributeBinding_Path.ProtoReflect.Descriptor instead. +func (*DataAttributeBinding_Path) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP(), []int{2, 0} +} + +func (x *DataAttributeBinding_Path) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DataAttributeBinding_Path) GetAttributes() []string { + if x != nil { + return x.Attributes + } + return nil +} + +var File_google_cloud_dataplex_v1_data_taxonomy_proto protoreflect.FileDescriptor + +var file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDesc = []byte{ + 0x0a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x74, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x65, 0x78, 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, 0x27, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x76, 0x31, 0x2f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0xa4, 0x05, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, + 0x6d, 0x79, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2c, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4f, + 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, + 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, + 0x2c, 0x0a, 0x0f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, + 0x67, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 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, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x3a, 0x74, 0xea, 0x41, 0x71, 0x0a, 0x24, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, + 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x12, 0x49, 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, 0x64, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, + 0x6f, 0x6d, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x61, 0x78, 0x6f, + 0x6e, 0x6f, 0x6d, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x22, 0xa9, 0x07, 0x0a, 0x0d, 0x44, 0x61, 0x74, + 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x27, + 0x0a, 0x25, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, + 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x03, 0x75, 0x69, 0x64, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 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, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, + 0x01, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x08, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x63, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, + 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, + 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x57, 0x0a, 0x10, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x63, + 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x70, 0x65, 0x63, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x53, 0x70, 0x65, 0x63, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x3a, 0x91, 0x01, 0xea, 0x41, 0x8d, 0x01, 0x0a, 0x25, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, + 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x64, + 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, 0x64, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, + 0x6e, 0x6f, 0x6d, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, + 0x6e, 0x6f, 0x6d, 0x79, 0x7d, 0x2f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x5f, 0x69, 0x64, 0x7d, 0x22, 0xcd, 0x07, 0x0a, 0x14, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x48, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0xe0, 0x41, 0x03, + 0xfa, 0x41, 0x2e, 0x0a, 0x2c, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, + 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x57, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, + 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x24, + 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x05, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x18, 0x6e, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x27, + 0x0a, 0x25, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x78, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x70, 0x61, + 0x74, 0x68, 0x73, 0x1a, 0x6e, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 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, 0x4d, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x27, + 0x0a, 0x25, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x8d, + 0x01, 0xea, 0x41, 0x89, 0x01, 0x0a, 0x2c, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, + 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x12, 0x59, 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, 0x64, 0x61, 0x74, + 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x7d, 0x42, 0x14, + 0x0a, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x22, 0x89, 0x02, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x61, + 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, + 0x6d, 0x79, 0x49, 0x64, 0x12, 0x50, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x61, 0x78, + 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, + 0x6f, 0x6d, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x54, 0x61, + 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x12, 0x28, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, + 0x22, 0xd9, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x54, + 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, + 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, + 0x12, 0x50, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, + 0x6d, 0x79, 0x12, 0x28, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, + 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x5a, 0x0a, 0x16, + 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, + 0x6d, 0x79, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe1, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xca, 0x01, 0x0a, + 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x74, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x52, 0x0e, 0x64, 0x61, + 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x33, 0x0a, 0x15, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x14, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x76, 0x0a, 0x19, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, + 0x6d, 0x79, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x65, 0x74, 0x61, + 0x67, 0x22, 0x92, 0x02, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x44, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x52, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x49, 0x64, 0x12, 0x53, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x64, + 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0xdd, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x53, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x64, + 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x5c, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, + 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, + 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xcb, 0x01, 0x0a, 0x1a, + 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0f, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x0e, 0x64, 0x61, + 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x33, 0x0a, 0x15, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x14, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x78, 0x0a, 0x1a, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x65, 0x74, + 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x65, + 0x74, 0x61, 0x67, 0x22, 0xbb, 0x02, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x19, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x62, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, 0x64, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x69, 0x0a, 0x16, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x62, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x14, 0x64, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, + 0x79, 0x22, 0xfa, 0x01, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x69, 0x0a, 0x16, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, + 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x6a, + 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x48, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2e, 0x0a, 0x2c, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe8, 0x01, 0x0a, 0x20, 0x4c, + 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xe8, 0x01, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x17, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x62, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x15, 0x64, 0x61, + 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, + 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x33, 0x0a, 0x15, 0x75, + 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x75, 0x6e, 0x72, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0x86, 0x01, 0x0a, 0x21, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2e, 0x0a, 0x2c, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x17, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x32, 0x8b, 0x1d, 0x0a, 0x13, 0x44, 0x61, + 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x80, 0x02, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, + 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, + 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x95, 0x01, 0xca, + 0x41, 0x21, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, + 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xda, 0x41, 0x25, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x74, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x2c, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x74, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x43, 0x3a, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, + 0x22, 0x32, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, + 0x6d, 0x69, 0x65, 0x73, 0x12, 0x82, 0x02, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x12, 0x33, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x97, 0x01, 0xca, 0x41, 0x21, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, + 0x6f, 0x6d, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x19, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x61, + 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x3a, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, + 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x32, 0x40, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x74, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x2e, 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, 0x64, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, + 0x6e, 0x6f, 0x6d, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd8, 0x01, 0x0a, 0x12, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, + 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, + 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, + 0x2a, 0x32, 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, 0x64, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x65, + 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc4, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x54, + 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x65, 0x73, 0x12, 0xae, 0x01, 0x0a, 0x0f, + 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x12, + 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x22, 0x41, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 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, 0x64, 0x61, 0x74, 0x61, 0x54, + 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xba, 0x02, 0x0a, + 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbf, 0x01, 0xca, 0x41, 0x29, 0x0a, 0x14, 0x44, + 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x37, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x62, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x2c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, 0x3a, 0x16, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x39, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0xbc, 0x02, 0x0a, 0x1a, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, + 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc1, 0x01, 0xca, 0x41, 0x29, 0x0a, 0x14, 0x44, 0x61, 0x74, 0x61, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xda, 0x41, 0x22, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x2c, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6a, 0x3a, 0x16, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x62, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x32, 0x50, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x2e, 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, + 0x64, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xef, 0x01, 0x0a, 0x1a, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, + 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x75, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, + 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x2a, + 0x39, 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, 0x64, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe0, 0x01, 0x0a, 0x19, 0x4c, + 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x4a, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12, 0xcd, 0x01, + 0x0a, 0x17, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, + 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x22, 0x48, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3b, 0x12, 0x39, 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, 0x64, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x93, 0x02, + 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa6, 0x01, 0xca, 0x41, 0x22, + 0x0a, 0x0d, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xda, 0x41, 0x27, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x51, 0x3a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x22, 0x3f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, + 0x6f, 0x6d, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x12, 0x95, 0x02, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, + 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0xa8, 0x01, 0xca, 0x41, 0x22, 0x0a, 0x0d, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x1a, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x60, 0x3a, 0x0e, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x32, 0x4e, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x2e, 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, 0x64, 0x61, 0x74, + 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe7, 0x01, 0x0a, 0x13, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7b, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x41, 0x2a, 0x3f, 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, 0x64, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, + 0x6f, 0x6d, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd1, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x12, 0x3f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0xbe, 0x01, 0x0a, 0x10, 0x47, 0x65, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x22, 0x4e, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x12, 0x3f, 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, 0x64, 0x61, 0x74, 0x61, + 0x54, 0x61, 0x78, 0x6f, 0x6e, 0x6f, 0x6d, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x1a, 0x4b, 0xca, 0x41, 0x17, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 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, 0x6d, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x42, 0x11, 0x44, 0x61, 0x74, 0x61, 0x54, 0x61, 0x78, + 0x6f, 0x6e, 0x6f, 0x6d, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, + 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, + 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x3b, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescOnce sync.Once + file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescData = file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDesc +) + +func file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescGZIP() []byte { + file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescOnce.Do(func() { + file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescData) + }) + return file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDescData +} + +var file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes = make([]protoimpl.MessageInfo, 25) +var file_google_cloud_dataplex_v1_data_taxonomy_proto_goTypes = []interface{}{ + (*DataTaxonomy)(nil), // 0: google.cloud.dataplex.v1.DataTaxonomy + (*DataAttribute)(nil), // 1: google.cloud.dataplex.v1.DataAttribute + (*DataAttributeBinding)(nil), // 2: google.cloud.dataplex.v1.DataAttributeBinding + (*CreateDataTaxonomyRequest)(nil), // 3: google.cloud.dataplex.v1.CreateDataTaxonomyRequest + (*UpdateDataTaxonomyRequest)(nil), // 4: google.cloud.dataplex.v1.UpdateDataTaxonomyRequest + (*GetDataTaxonomyRequest)(nil), // 5: google.cloud.dataplex.v1.GetDataTaxonomyRequest + (*ListDataTaxonomiesRequest)(nil), // 6: google.cloud.dataplex.v1.ListDataTaxonomiesRequest + (*ListDataTaxonomiesResponse)(nil), // 7: google.cloud.dataplex.v1.ListDataTaxonomiesResponse + (*DeleteDataTaxonomyRequest)(nil), // 8: google.cloud.dataplex.v1.DeleteDataTaxonomyRequest + (*CreateDataAttributeRequest)(nil), // 9: google.cloud.dataplex.v1.CreateDataAttributeRequest + (*UpdateDataAttributeRequest)(nil), // 10: google.cloud.dataplex.v1.UpdateDataAttributeRequest + (*GetDataAttributeRequest)(nil), // 11: google.cloud.dataplex.v1.GetDataAttributeRequest + (*ListDataAttributesRequest)(nil), // 12: google.cloud.dataplex.v1.ListDataAttributesRequest + (*ListDataAttributesResponse)(nil), // 13: google.cloud.dataplex.v1.ListDataAttributesResponse + (*DeleteDataAttributeRequest)(nil), // 14: google.cloud.dataplex.v1.DeleteDataAttributeRequest + (*CreateDataAttributeBindingRequest)(nil), // 15: google.cloud.dataplex.v1.CreateDataAttributeBindingRequest + (*UpdateDataAttributeBindingRequest)(nil), // 16: google.cloud.dataplex.v1.UpdateDataAttributeBindingRequest + (*GetDataAttributeBindingRequest)(nil), // 17: google.cloud.dataplex.v1.GetDataAttributeBindingRequest + (*ListDataAttributeBindingsRequest)(nil), // 18: google.cloud.dataplex.v1.ListDataAttributeBindingsRequest + (*ListDataAttributeBindingsResponse)(nil), // 19: google.cloud.dataplex.v1.ListDataAttributeBindingsResponse + (*DeleteDataAttributeBindingRequest)(nil), // 20: google.cloud.dataplex.v1.DeleteDataAttributeBindingRequest + nil, // 21: google.cloud.dataplex.v1.DataTaxonomy.LabelsEntry + nil, // 22: google.cloud.dataplex.v1.DataAttribute.LabelsEntry + (*DataAttributeBinding_Path)(nil), // 23: google.cloud.dataplex.v1.DataAttributeBinding.Path + nil, // 24: google.cloud.dataplex.v1.DataAttributeBinding.LabelsEntry + (*timestamppb.Timestamp)(nil), // 25: google.protobuf.Timestamp + (*ResourceAccessSpec)(nil), // 26: google.cloud.dataplex.v1.ResourceAccessSpec + (*DataAccessSpec)(nil), // 27: google.cloud.dataplex.v1.DataAccessSpec + (*fieldmaskpb.FieldMask)(nil), // 28: google.protobuf.FieldMask + (*longrunningpb.Operation)(nil), // 29: google.longrunning.Operation +} +var file_google_cloud_dataplex_v1_data_taxonomy_proto_depIdxs = []int32{ + 25, // 0: google.cloud.dataplex.v1.DataTaxonomy.create_time:type_name -> google.protobuf.Timestamp + 25, // 1: google.cloud.dataplex.v1.DataTaxonomy.update_time:type_name -> google.protobuf.Timestamp + 21, // 2: google.cloud.dataplex.v1.DataTaxonomy.labels:type_name -> google.cloud.dataplex.v1.DataTaxonomy.LabelsEntry + 25, // 3: google.cloud.dataplex.v1.DataAttribute.create_time:type_name -> google.protobuf.Timestamp + 25, // 4: google.cloud.dataplex.v1.DataAttribute.update_time:type_name -> google.protobuf.Timestamp + 22, // 5: google.cloud.dataplex.v1.DataAttribute.labels:type_name -> google.cloud.dataplex.v1.DataAttribute.LabelsEntry + 26, // 6: google.cloud.dataplex.v1.DataAttribute.resource_access_spec:type_name -> google.cloud.dataplex.v1.ResourceAccessSpec + 27, // 7: google.cloud.dataplex.v1.DataAttribute.data_access_spec:type_name -> google.cloud.dataplex.v1.DataAccessSpec + 25, // 8: google.cloud.dataplex.v1.DataAttributeBinding.create_time:type_name -> google.protobuf.Timestamp + 25, // 9: google.cloud.dataplex.v1.DataAttributeBinding.update_time:type_name -> google.protobuf.Timestamp + 24, // 10: google.cloud.dataplex.v1.DataAttributeBinding.labels:type_name -> google.cloud.dataplex.v1.DataAttributeBinding.LabelsEntry + 23, // 11: google.cloud.dataplex.v1.DataAttributeBinding.paths:type_name -> google.cloud.dataplex.v1.DataAttributeBinding.Path + 0, // 12: google.cloud.dataplex.v1.CreateDataTaxonomyRequest.data_taxonomy:type_name -> google.cloud.dataplex.v1.DataTaxonomy + 28, // 13: google.cloud.dataplex.v1.UpdateDataTaxonomyRequest.update_mask:type_name -> google.protobuf.FieldMask + 0, // 14: google.cloud.dataplex.v1.UpdateDataTaxonomyRequest.data_taxonomy:type_name -> google.cloud.dataplex.v1.DataTaxonomy + 0, // 15: google.cloud.dataplex.v1.ListDataTaxonomiesResponse.data_taxonomies:type_name -> google.cloud.dataplex.v1.DataTaxonomy + 1, // 16: google.cloud.dataplex.v1.CreateDataAttributeRequest.data_attribute:type_name -> google.cloud.dataplex.v1.DataAttribute + 28, // 17: google.cloud.dataplex.v1.UpdateDataAttributeRequest.update_mask:type_name -> google.protobuf.FieldMask + 1, // 18: google.cloud.dataplex.v1.UpdateDataAttributeRequest.data_attribute:type_name -> google.cloud.dataplex.v1.DataAttribute + 1, // 19: google.cloud.dataplex.v1.ListDataAttributesResponse.data_attributes:type_name -> google.cloud.dataplex.v1.DataAttribute + 2, // 20: google.cloud.dataplex.v1.CreateDataAttributeBindingRequest.data_attribute_binding:type_name -> google.cloud.dataplex.v1.DataAttributeBinding + 28, // 21: google.cloud.dataplex.v1.UpdateDataAttributeBindingRequest.update_mask:type_name -> google.protobuf.FieldMask + 2, // 22: google.cloud.dataplex.v1.UpdateDataAttributeBindingRequest.data_attribute_binding:type_name -> google.cloud.dataplex.v1.DataAttributeBinding + 2, // 23: google.cloud.dataplex.v1.ListDataAttributeBindingsResponse.data_attribute_bindings:type_name -> google.cloud.dataplex.v1.DataAttributeBinding + 3, // 24: google.cloud.dataplex.v1.DataTaxonomyService.CreateDataTaxonomy:input_type -> google.cloud.dataplex.v1.CreateDataTaxonomyRequest + 4, // 25: google.cloud.dataplex.v1.DataTaxonomyService.UpdateDataTaxonomy:input_type -> google.cloud.dataplex.v1.UpdateDataTaxonomyRequest + 8, // 26: google.cloud.dataplex.v1.DataTaxonomyService.DeleteDataTaxonomy:input_type -> google.cloud.dataplex.v1.DeleteDataTaxonomyRequest + 6, // 27: google.cloud.dataplex.v1.DataTaxonomyService.ListDataTaxonomies:input_type -> google.cloud.dataplex.v1.ListDataTaxonomiesRequest + 5, // 28: google.cloud.dataplex.v1.DataTaxonomyService.GetDataTaxonomy:input_type -> google.cloud.dataplex.v1.GetDataTaxonomyRequest + 15, // 29: google.cloud.dataplex.v1.DataTaxonomyService.CreateDataAttributeBinding:input_type -> google.cloud.dataplex.v1.CreateDataAttributeBindingRequest + 16, // 30: google.cloud.dataplex.v1.DataTaxonomyService.UpdateDataAttributeBinding:input_type -> google.cloud.dataplex.v1.UpdateDataAttributeBindingRequest + 20, // 31: google.cloud.dataplex.v1.DataTaxonomyService.DeleteDataAttributeBinding:input_type -> google.cloud.dataplex.v1.DeleteDataAttributeBindingRequest + 18, // 32: google.cloud.dataplex.v1.DataTaxonomyService.ListDataAttributeBindings:input_type -> google.cloud.dataplex.v1.ListDataAttributeBindingsRequest + 17, // 33: google.cloud.dataplex.v1.DataTaxonomyService.GetDataAttributeBinding:input_type -> google.cloud.dataplex.v1.GetDataAttributeBindingRequest + 9, // 34: google.cloud.dataplex.v1.DataTaxonomyService.CreateDataAttribute:input_type -> google.cloud.dataplex.v1.CreateDataAttributeRequest + 10, // 35: google.cloud.dataplex.v1.DataTaxonomyService.UpdateDataAttribute:input_type -> google.cloud.dataplex.v1.UpdateDataAttributeRequest + 14, // 36: google.cloud.dataplex.v1.DataTaxonomyService.DeleteDataAttribute:input_type -> google.cloud.dataplex.v1.DeleteDataAttributeRequest + 12, // 37: google.cloud.dataplex.v1.DataTaxonomyService.ListDataAttributes:input_type -> google.cloud.dataplex.v1.ListDataAttributesRequest + 11, // 38: google.cloud.dataplex.v1.DataTaxonomyService.GetDataAttribute:input_type -> google.cloud.dataplex.v1.GetDataAttributeRequest + 29, // 39: google.cloud.dataplex.v1.DataTaxonomyService.CreateDataTaxonomy:output_type -> google.longrunning.Operation + 29, // 40: google.cloud.dataplex.v1.DataTaxonomyService.UpdateDataTaxonomy:output_type -> google.longrunning.Operation + 29, // 41: google.cloud.dataplex.v1.DataTaxonomyService.DeleteDataTaxonomy:output_type -> google.longrunning.Operation + 7, // 42: google.cloud.dataplex.v1.DataTaxonomyService.ListDataTaxonomies:output_type -> google.cloud.dataplex.v1.ListDataTaxonomiesResponse + 0, // 43: google.cloud.dataplex.v1.DataTaxonomyService.GetDataTaxonomy:output_type -> google.cloud.dataplex.v1.DataTaxonomy + 29, // 44: google.cloud.dataplex.v1.DataTaxonomyService.CreateDataAttributeBinding:output_type -> google.longrunning.Operation + 29, // 45: google.cloud.dataplex.v1.DataTaxonomyService.UpdateDataAttributeBinding:output_type -> google.longrunning.Operation + 29, // 46: google.cloud.dataplex.v1.DataTaxonomyService.DeleteDataAttributeBinding:output_type -> google.longrunning.Operation + 19, // 47: google.cloud.dataplex.v1.DataTaxonomyService.ListDataAttributeBindings:output_type -> google.cloud.dataplex.v1.ListDataAttributeBindingsResponse + 2, // 48: google.cloud.dataplex.v1.DataTaxonomyService.GetDataAttributeBinding:output_type -> google.cloud.dataplex.v1.DataAttributeBinding + 29, // 49: google.cloud.dataplex.v1.DataTaxonomyService.CreateDataAttribute:output_type -> google.longrunning.Operation + 29, // 50: google.cloud.dataplex.v1.DataTaxonomyService.UpdateDataAttribute:output_type -> google.longrunning.Operation + 29, // 51: google.cloud.dataplex.v1.DataTaxonomyService.DeleteDataAttribute:output_type -> google.longrunning.Operation + 13, // 52: google.cloud.dataplex.v1.DataTaxonomyService.ListDataAttributes:output_type -> google.cloud.dataplex.v1.ListDataAttributesResponse + 1, // 53: google.cloud.dataplex.v1.DataTaxonomyService.GetDataAttribute:output_type -> google.cloud.dataplex.v1.DataAttribute + 39, // [39:54] is the sub-list for method output_type + 24, // [24:39] is the sub-list for method input_type + 24, // [24:24] is the sub-list for extension type_name + 24, // [24:24] is the sub-list for extension extendee + 0, // [0:24] is the sub-list for field type_name +} + +func init() { file_google_cloud_dataplex_v1_data_taxonomy_proto_init() } +func file_google_cloud_dataplex_v1_data_taxonomy_proto_init() { + if File_google_cloud_dataplex_v1_data_taxonomy_proto != nil { + return + } + file_google_cloud_dataplex_v1_security_proto_init() + file_google_cloud_dataplex_v1_service_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataTaxonomy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataAttribute); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataAttributeBinding); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateDataTaxonomyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateDataTaxonomyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDataTaxonomyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDataTaxonomiesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDataTaxonomiesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteDataTaxonomyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateDataAttributeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateDataAttributeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDataAttributeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDataAttributesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDataAttributesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteDataAttributeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateDataAttributeBindingRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateDataAttributeBindingRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDataAttributeBindingRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDataAttributeBindingsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDataAttributeBindingsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteDataAttributeBindingRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataAttributeBinding_Path); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes[2].OneofWrappers = []interface{}{ + (*DataAttributeBinding_Resource)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDesc, + NumEnums: 0, + NumMessages: 25, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_dataplex_v1_data_taxonomy_proto_goTypes, + DependencyIndexes: file_google_cloud_dataplex_v1_data_taxonomy_proto_depIdxs, + MessageInfos: file_google_cloud_dataplex_v1_data_taxonomy_proto_msgTypes, + }.Build() + File_google_cloud_dataplex_v1_data_taxonomy_proto = out.File + file_google_cloud_dataplex_v1_data_taxonomy_proto_rawDesc = nil + file_google_cloud_dataplex_v1_data_taxonomy_proto_goTypes = nil + file_google_cloud_dataplex_v1_data_taxonomy_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 + +// DataTaxonomyServiceClient is the client API for DataTaxonomyService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type DataTaxonomyServiceClient interface { + // Create a DataTaxonomy resource. + CreateDataTaxonomy(ctx context.Context, in *CreateDataTaxonomyRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates a DataTaxonomy resource. + UpdateDataTaxonomy(ctx context.Context, in *UpdateDataTaxonomyRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a DataTaxonomy resource. All attributes within the DataTaxonomy + // must be deleted before the DataTaxonomy can be deleted. + DeleteDataTaxonomy(ctx context.Context, in *DeleteDataTaxonomyRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists DataTaxonomy resources in a project and location. + ListDataTaxonomies(ctx context.Context, in *ListDataTaxonomiesRequest, opts ...grpc.CallOption) (*ListDataTaxonomiesResponse, error) + // Retrieves a DataTaxonomy resource. + GetDataTaxonomy(ctx context.Context, in *GetDataTaxonomyRequest, opts ...grpc.CallOption) (*DataTaxonomy, error) + // Create a DataAttributeBinding resource. + CreateDataAttributeBinding(ctx context.Context, in *CreateDataAttributeBindingRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates a DataAttributeBinding resource. + UpdateDataAttributeBinding(ctx context.Context, in *UpdateDataAttributeBindingRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a DataAttributeBinding resource. All attributes within the + // DataAttributeBinding must be deleted before the DataAttributeBinding can be + // deleted. + DeleteDataAttributeBinding(ctx context.Context, in *DeleteDataAttributeBindingRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists DataAttributeBinding resources in a project and location. + ListDataAttributeBindings(ctx context.Context, in *ListDataAttributeBindingsRequest, opts ...grpc.CallOption) (*ListDataAttributeBindingsResponse, error) + // Retrieves a DataAttributeBinding resource. + GetDataAttributeBinding(ctx context.Context, in *GetDataAttributeBindingRequest, opts ...grpc.CallOption) (*DataAttributeBinding, error) + // Create a DataAttribute resource. + CreateDataAttribute(ctx context.Context, in *CreateDataAttributeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates a DataAttribute resource. + UpdateDataAttribute(ctx context.Context, in *UpdateDataAttributeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a Data Attribute resource. + DeleteDataAttribute(ctx context.Context, in *DeleteDataAttributeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists Data Attribute resources in a DataTaxonomy. + ListDataAttributes(ctx context.Context, in *ListDataAttributesRequest, opts ...grpc.CallOption) (*ListDataAttributesResponse, error) + // Retrieves a Data Attribute resource. + GetDataAttribute(ctx context.Context, in *GetDataAttributeRequest, opts ...grpc.CallOption) (*DataAttribute, error) +} + +type dataTaxonomyServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewDataTaxonomyServiceClient(cc grpc.ClientConnInterface) DataTaxonomyServiceClient { + return &dataTaxonomyServiceClient{cc} +} + +func (c *dataTaxonomyServiceClient) CreateDataTaxonomy(ctx context.Context, in *CreateDataTaxonomyRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.dataplex.v1.DataTaxonomyService/CreateDataTaxonomy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTaxonomyServiceClient) UpdateDataTaxonomy(ctx context.Context, in *UpdateDataTaxonomyRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.dataplex.v1.DataTaxonomyService/UpdateDataTaxonomy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTaxonomyServiceClient) DeleteDataTaxonomy(ctx context.Context, in *DeleteDataTaxonomyRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.dataplex.v1.DataTaxonomyService/DeleteDataTaxonomy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTaxonomyServiceClient) ListDataTaxonomies(ctx context.Context, in *ListDataTaxonomiesRequest, opts ...grpc.CallOption) (*ListDataTaxonomiesResponse, error) { + out := new(ListDataTaxonomiesResponse) + err := c.cc.Invoke(ctx, "/google.cloud.dataplex.v1.DataTaxonomyService/ListDataTaxonomies", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTaxonomyServiceClient) GetDataTaxonomy(ctx context.Context, in *GetDataTaxonomyRequest, opts ...grpc.CallOption) (*DataTaxonomy, error) { + out := new(DataTaxonomy) + err := c.cc.Invoke(ctx, "/google.cloud.dataplex.v1.DataTaxonomyService/GetDataTaxonomy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTaxonomyServiceClient) CreateDataAttributeBinding(ctx context.Context, in *CreateDataAttributeBindingRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.dataplex.v1.DataTaxonomyService/CreateDataAttributeBinding", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTaxonomyServiceClient) UpdateDataAttributeBinding(ctx context.Context, in *UpdateDataAttributeBindingRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.dataplex.v1.DataTaxonomyService/UpdateDataAttributeBinding", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTaxonomyServiceClient) DeleteDataAttributeBinding(ctx context.Context, in *DeleteDataAttributeBindingRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.dataplex.v1.DataTaxonomyService/DeleteDataAttributeBinding", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTaxonomyServiceClient) ListDataAttributeBindings(ctx context.Context, in *ListDataAttributeBindingsRequest, opts ...grpc.CallOption) (*ListDataAttributeBindingsResponse, error) { + out := new(ListDataAttributeBindingsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.dataplex.v1.DataTaxonomyService/ListDataAttributeBindings", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTaxonomyServiceClient) GetDataAttributeBinding(ctx context.Context, in *GetDataAttributeBindingRequest, opts ...grpc.CallOption) (*DataAttributeBinding, error) { + out := new(DataAttributeBinding) + err := c.cc.Invoke(ctx, "/google.cloud.dataplex.v1.DataTaxonomyService/GetDataAttributeBinding", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTaxonomyServiceClient) CreateDataAttribute(ctx context.Context, in *CreateDataAttributeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.dataplex.v1.DataTaxonomyService/CreateDataAttribute", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTaxonomyServiceClient) UpdateDataAttribute(ctx context.Context, in *UpdateDataAttributeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.dataplex.v1.DataTaxonomyService/UpdateDataAttribute", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTaxonomyServiceClient) DeleteDataAttribute(ctx context.Context, in *DeleteDataAttributeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.dataplex.v1.DataTaxonomyService/DeleteDataAttribute", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTaxonomyServiceClient) ListDataAttributes(ctx context.Context, in *ListDataAttributesRequest, opts ...grpc.CallOption) (*ListDataAttributesResponse, error) { + out := new(ListDataAttributesResponse) + err := c.cc.Invoke(ctx, "/google.cloud.dataplex.v1.DataTaxonomyService/ListDataAttributes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTaxonomyServiceClient) GetDataAttribute(ctx context.Context, in *GetDataAttributeRequest, opts ...grpc.CallOption) (*DataAttribute, error) { + out := new(DataAttribute) + err := c.cc.Invoke(ctx, "/google.cloud.dataplex.v1.DataTaxonomyService/GetDataAttribute", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// DataTaxonomyServiceServer is the server API for DataTaxonomyService service. +type DataTaxonomyServiceServer interface { + // Create a DataTaxonomy resource. + CreateDataTaxonomy(context.Context, *CreateDataTaxonomyRequest) (*longrunningpb.Operation, error) + // Updates a DataTaxonomy resource. + UpdateDataTaxonomy(context.Context, *UpdateDataTaxonomyRequest) (*longrunningpb.Operation, error) + // Deletes a DataTaxonomy resource. All attributes within the DataTaxonomy + // must be deleted before the DataTaxonomy can be deleted. + DeleteDataTaxonomy(context.Context, *DeleteDataTaxonomyRequest) (*longrunningpb.Operation, error) + // Lists DataTaxonomy resources in a project and location. + ListDataTaxonomies(context.Context, *ListDataTaxonomiesRequest) (*ListDataTaxonomiesResponse, error) + // Retrieves a DataTaxonomy resource. + GetDataTaxonomy(context.Context, *GetDataTaxonomyRequest) (*DataTaxonomy, error) + // Create a DataAttributeBinding resource. + CreateDataAttributeBinding(context.Context, *CreateDataAttributeBindingRequest) (*longrunningpb.Operation, error) + // Updates a DataAttributeBinding resource. + UpdateDataAttributeBinding(context.Context, *UpdateDataAttributeBindingRequest) (*longrunningpb.Operation, error) + // Deletes a DataAttributeBinding resource. All attributes within the + // DataAttributeBinding must be deleted before the DataAttributeBinding can be + // deleted. + DeleteDataAttributeBinding(context.Context, *DeleteDataAttributeBindingRequest) (*longrunningpb.Operation, error) + // Lists DataAttributeBinding resources in a project and location. + ListDataAttributeBindings(context.Context, *ListDataAttributeBindingsRequest) (*ListDataAttributeBindingsResponse, error) + // Retrieves a DataAttributeBinding resource. + GetDataAttributeBinding(context.Context, *GetDataAttributeBindingRequest) (*DataAttributeBinding, error) + // Create a DataAttribute resource. + CreateDataAttribute(context.Context, *CreateDataAttributeRequest) (*longrunningpb.Operation, error) + // Updates a DataAttribute resource. + UpdateDataAttribute(context.Context, *UpdateDataAttributeRequest) (*longrunningpb.Operation, error) + // Deletes a Data Attribute resource. + DeleteDataAttribute(context.Context, *DeleteDataAttributeRequest) (*longrunningpb.Operation, error) + // Lists Data Attribute resources in a DataTaxonomy. + ListDataAttributes(context.Context, *ListDataAttributesRequest) (*ListDataAttributesResponse, error) + // Retrieves a Data Attribute resource. + GetDataAttribute(context.Context, *GetDataAttributeRequest) (*DataAttribute, error) +} + +// UnimplementedDataTaxonomyServiceServer can be embedded to have forward compatible implementations. +type UnimplementedDataTaxonomyServiceServer struct { +} + +func (*UnimplementedDataTaxonomyServiceServer) CreateDataTaxonomy(context.Context, *CreateDataTaxonomyRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateDataTaxonomy not implemented") +} +func (*UnimplementedDataTaxonomyServiceServer) UpdateDataTaxonomy(context.Context, *UpdateDataTaxonomyRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateDataTaxonomy not implemented") +} +func (*UnimplementedDataTaxonomyServiceServer) DeleteDataTaxonomy(context.Context, *DeleteDataTaxonomyRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteDataTaxonomy not implemented") +} +func (*UnimplementedDataTaxonomyServiceServer) ListDataTaxonomies(context.Context, *ListDataTaxonomiesRequest) (*ListDataTaxonomiesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListDataTaxonomies not implemented") +} +func (*UnimplementedDataTaxonomyServiceServer) GetDataTaxonomy(context.Context, *GetDataTaxonomyRequest) (*DataTaxonomy, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDataTaxonomy not implemented") +} +func (*UnimplementedDataTaxonomyServiceServer) CreateDataAttributeBinding(context.Context, *CreateDataAttributeBindingRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateDataAttributeBinding not implemented") +} +func (*UnimplementedDataTaxonomyServiceServer) UpdateDataAttributeBinding(context.Context, *UpdateDataAttributeBindingRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateDataAttributeBinding not implemented") +} +func (*UnimplementedDataTaxonomyServiceServer) DeleteDataAttributeBinding(context.Context, *DeleteDataAttributeBindingRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteDataAttributeBinding not implemented") +} +func (*UnimplementedDataTaxonomyServiceServer) ListDataAttributeBindings(context.Context, *ListDataAttributeBindingsRequest) (*ListDataAttributeBindingsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListDataAttributeBindings not implemented") +} +func (*UnimplementedDataTaxonomyServiceServer) GetDataAttributeBinding(context.Context, *GetDataAttributeBindingRequest) (*DataAttributeBinding, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDataAttributeBinding not implemented") +} +func (*UnimplementedDataTaxonomyServiceServer) CreateDataAttribute(context.Context, *CreateDataAttributeRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateDataAttribute not implemented") +} +func (*UnimplementedDataTaxonomyServiceServer) UpdateDataAttribute(context.Context, *UpdateDataAttributeRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateDataAttribute not implemented") +} +func (*UnimplementedDataTaxonomyServiceServer) DeleteDataAttribute(context.Context, *DeleteDataAttributeRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteDataAttribute not implemented") +} +func (*UnimplementedDataTaxonomyServiceServer) ListDataAttributes(context.Context, *ListDataAttributesRequest) (*ListDataAttributesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListDataAttributes not implemented") +} +func (*UnimplementedDataTaxonomyServiceServer) GetDataAttribute(context.Context, *GetDataAttributeRequest) (*DataAttribute, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDataAttribute not implemented") +} + +func RegisterDataTaxonomyServiceServer(s *grpc.Server, srv DataTaxonomyServiceServer) { + s.RegisterService(&_DataTaxonomyService_serviceDesc, srv) +} + +func _DataTaxonomyService_CreateDataTaxonomy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateDataTaxonomyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTaxonomyServiceServer).CreateDataTaxonomy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataplex.v1.DataTaxonomyService/CreateDataTaxonomy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTaxonomyServiceServer).CreateDataTaxonomy(ctx, req.(*CreateDataTaxonomyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTaxonomyService_UpdateDataTaxonomy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateDataTaxonomyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTaxonomyServiceServer).UpdateDataTaxonomy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataplex.v1.DataTaxonomyService/UpdateDataTaxonomy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTaxonomyServiceServer).UpdateDataTaxonomy(ctx, req.(*UpdateDataTaxonomyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTaxonomyService_DeleteDataTaxonomy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteDataTaxonomyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTaxonomyServiceServer).DeleteDataTaxonomy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataplex.v1.DataTaxonomyService/DeleteDataTaxonomy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTaxonomyServiceServer).DeleteDataTaxonomy(ctx, req.(*DeleteDataTaxonomyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTaxonomyService_ListDataTaxonomies_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListDataTaxonomiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTaxonomyServiceServer).ListDataTaxonomies(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataplex.v1.DataTaxonomyService/ListDataTaxonomies", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTaxonomyServiceServer).ListDataTaxonomies(ctx, req.(*ListDataTaxonomiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTaxonomyService_GetDataTaxonomy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDataTaxonomyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTaxonomyServiceServer).GetDataTaxonomy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataplex.v1.DataTaxonomyService/GetDataTaxonomy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTaxonomyServiceServer).GetDataTaxonomy(ctx, req.(*GetDataTaxonomyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTaxonomyService_CreateDataAttributeBinding_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateDataAttributeBindingRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTaxonomyServiceServer).CreateDataAttributeBinding(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataplex.v1.DataTaxonomyService/CreateDataAttributeBinding", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTaxonomyServiceServer).CreateDataAttributeBinding(ctx, req.(*CreateDataAttributeBindingRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTaxonomyService_UpdateDataAttributeBinding_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateDataAttributeBindingRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTaxonomyServiceServer).UpdateDataAttributeBinding(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataplex.v1.DataTaxonomyService/UpdateDataAttributeBinding", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTaxonomyServiceServer).UpdateDataAttributeBinding(ctx, req.(*UpdateDataAttributeBindingRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTaxonomyService_DeleteDataAttributeBinding_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteDataAttributeBindingRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTaxonomyServiceServer).DeleteDataAttributeBinding(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataplex.v1.DataTaxonomyService/DeleteDataAttributeBinding", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTaxonomyServiceServer).DeleteDataAttributeBinding(ctx, req.(*DeleteDataAttributeBindingRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTaxonomyService_ListDataAttributeBindings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListDataAttributeBindingsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTaxonomyServiceServer).ListDataAttributeBindings(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataplex.v1.DataTaxonomyService/ListDataAttributeBindings", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTaxonomyServiceServer).ListDataAttributeBindings(ctx, req.(*ListDataAttributeBindingsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTaxonomyService_GetDataAttributeBinding_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDataAttributeBindingRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTaxonomyServiceServer).GetDataAttributeBinding(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataplex.v1.DataTaxonomyService/GetDataAttributeBinding", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTaxonomyServiceServer).GetDataAttributeBinding(ctx, req.(*GetDataAttributeBindingRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTaxonomyService_CreateDataAttribute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateDataAttributeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTaxonomyServiceServer).CreateDataAttribute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataplex.v1.DataTaxonomyService/CreateDataAttribute", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTaxonomyServiceServer).CreateDataAttribute(ctx, req.(*CreateDataAttributeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTaxonomyService_UpdateDataAttribute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateDataAttributeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTaxonomyServiceServer).UpdateDataAttribute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataplex.v1.DataTaxonomyService/UpdateDataAttribute", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTaxonomyServiceServer).UpdateDataAttribute(ctx, req.(*UpdateDataAttributeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTaxonomyService_DeleteDataAttribute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteDataAttributeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTaxonomyServiceServer).DeleteDataAttribute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataplex.v1.DataTaxonomyService/DeleteDataAttribute", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTaxonomyServiceServer).DeleteDataAttribute(ctx, req.(*DeleteDataAttributeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTaxonomyService_ListDataAttributes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListDataAttributesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTaxonomyServiceServer).ListDataAttributes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataplex.v1.DataTaxonomyService/ListDataAttributes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTaxonomyServiceServer).ListDataAttributes(ctx, req.(*ListDataAttributesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTaxonomyService_GetDataAttribute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDataAttributeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTaxonomyServiceServer).GetDataAttribute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataplex.v1.DataTaxonomyService/GetDataAttribute", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTaxonomyServiceServer).GetDataAttribute(ctx, req.(*GetDataAttributeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _DataTaxonomyService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.dataplex.v1.DataTaxonomyService", + HandlerType: (*DataTaxonomyServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateDataTaxonomy", + Handler: _DataTaxonomyService_CreateDataTaxonomy_Handler, + }, + { + MethodName: "UpdateDataTaxonomy", + Handler: _DataTaxonomyService_UpdateDataTaxonomy_Handler, + }, + { + MethodName: "DeleteDataTaxonomy", + Handler: _DataTaxonomyService_DeleteDataTaxonomy_Handler, + }, + { + MethodName: "ListDataTaxonomies", + Handler: _DataTaxonomyService_ListDataTaxonomies_Handler, + }, + { + MethodName: "GetDataTaxonomy", + Handler: _DataTaxonomyService_GetDataTaxonomy_Handler, + }, + { + MethodName: "CreateDataAttributeBinding", + Handler: _DataTaxonomyService_CreateDataAttributeBinding_Handler, + }, + { + MethodName: "UpdateDataAttributeBinding", + Handler: _DataTaxonomyService_UpdateDataAttributeBinding_Handler, + }, + { + MethodName: "DeleteDataAttributeBinding", + Handler: _DataTaxonomyService_DeleteDataAttributeBinding_Handler, + }, + { + MethodName: "ListDataAttributeBindings", + Handler: _DataTaxonomyService_ListDataAttributeBindings_Handler, + }, + { + MethodName: "GetDataAttributeBinding", + Handler: _DataTaxonomyService_GetDataAttributeBinding_Handler, + }, + { + MethodName: "CreateDataAttribute", + Handler: _DataTaxonomyService_CreateDataAttribute_Handler, + }, + { + MethodName: "UpdateDataAttribute", + Handler: _DataTaxonomyService_UpdateDataAttribute_Handler, + }, + { + MethodName: "DeleteDataAttribute", + Handler: _DataTaxonomyService_DeleteDataAttribute_Handler, + }, + { + MethodName: "ListDataAttributes", + Handler: _DataTaxonomyService_ListDataAttributes_Handler, + }, + { + MethodName: "GetDataAttribute", + Handler: _DataTaxonomyService_GetDataAttribute_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/dataplex/v1/data_taxonomy.proto", +} diff --git a/dataplex/apiv1/dataplexpb/datascans.pb.go b/dataplex/apiv1/dataplexpb/datascans.pb.go index d24ee9f3fde..659d5c041dc 100755 --- a/dataplex/apiv1/dataplexpb/datascans.pb.go +++ b/dataplex/apiv1/dataplexpb/datascans.pb.go @@ -888,6 +888,24 @@ type ListDataScanJobsRequest struct { // parameters provided to `ListDataScanJobs` must match the call that provided // the page token. PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Optional. An expression for filtering the results of the ListDataScanJobs + // request. + // + // If unspecified, all datascan jobs will be returned. Multiple filters can be + // applied (with `AND`, `OR` logical operators). Filters are case-sensitive. + // + // Allowed fields are: + // + // - `start_time` + // - `end_time` + // + // `start_time` and `end_time` expect RFC-3339 formatted strings (e.g. + // 2018-10-08T18:30:00-07:00). + // + // For instance, 'start_time > 2018-10-08T00:00:00.123456789Z AND end_time < + // 2018-10-09T00:00:00.123456789Z' limits results to DataScanJobs between + // specified start and end times. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` } func (x *ListDataScanJobsRequest) Reset() { @@ -943,6 +961,13 @@ func (x *ListDataScanJobsRequest) GetPageToken() string { return "" } +func (x *ListDataScanJobsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + // List DataScanJobs response. type ListDataScanJobsResponse struct { state protoimpl.MessageState @@ -1739,7 +1764,7 @@ var file_google_cloud_dataplex_v1_datascans_proto_rawDesc = []byte{ 0x54, 0x41, 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x4a, 0x4f, 0x42, 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, 0x0a, 0x22, 0xa1, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x4c, 0x10, 0x0a, 0x22, 0xbe, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, @@ -1749,293 +1774,295 @@ var file_google_cloud_dataplex_v1_datascans_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, - 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8f, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x61, - 0x6e, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x22, 0x8f, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4b, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x6a, + 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, + 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, + 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x26, + 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xb3, 0x0c, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x53, + 0x63, 0x61, 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, 0x15, 0x0a, 0x03, + 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x03, + 0x75, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, + 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, + 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x3d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5c, + 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x62, 0x0a, 0x10, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, + 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x57, 0x0a, 0x11, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, - 0x4a, 0x6f, 0x62, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, - 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, - 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xb3, 0x0c, 0x0a, 0x08, 0x44, 0x61, - 0x74, 0x61, 0x53, 0x63, 0x61, 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, - 0x15, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, - 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x51, + 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x57, 0x0a, 0x11, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, + 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x40, - 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x08, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x5c, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, - 0x70, 0x65, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, - 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x2e, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, - 0x62, 0x0a, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, - 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x2e, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, - 0x41, 0x03, 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, + 0x48, 0x00, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, + 0x70, 0x65, 0x63, 0x12, 0x63, 0x0a, 0x13, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x71, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, - 0x61, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x57, 0x0a, 0x11, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x71, 0x75, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, - 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x61, - 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x57, 0x0a, - 0x11, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x70, - 0x65, 0x63, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, - 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x63, 0x0a, 0x13, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x71, - 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0xc8, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x11, 0x64, 0x61, 0x74, 0x61, 0x51, 0x75, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x63, 0x0a, 0x13, 0x64, - 0x61, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x11, 0x64, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x63, 0x0a, 0x13, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x11, 0x64, 0x61, 0x74, 0x61, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x7d, 0x0a, + 0x0d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x40, + 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, + 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, + 0x12, 0x1b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x05, 0x48, 0x00, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x0d, 0x0a, + 0x0b, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x1a, 0xab, 0x01, 0x0a, + 0x0f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x4d, 0x0a, 0x15, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x73, + 0x74, 0x61, 0x72, 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, 0x52, 0x12, 0x6c, 0x61, 0x74, + 0x65, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x49, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x65, 0x6e, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 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, 0x10, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x4a, 0x6f, 0x62, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 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, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x63, 0xea, 0x41, 0x60, 0x0a, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x3c, 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, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x73, 0x2f, + 0x7b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x7d, 0x42, 0x06, 0x0a, 0x04, 0x73, 0x70, + 0x65, 0x63, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xdf, 0x07, 0x0a, + 0x0b, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, 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, 0x15, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x72, 0x74, 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, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, + 0x65, 0x6e, 0x64, 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, + 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x3f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x5c, 0x0a, 0x11, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, + 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x0f, 0x64, + 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5c, + 0x0a, 0x11, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x11, 0x64, - 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x1a, 0x7d, 0x0a, 0x0d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, - 0x63, 0x12, 0x40, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, - 0x69, 0x67, 0x67, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, - 0x67, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x64, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x48, 0x00, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x42, 0x0d, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x1a, - 0xab, 0x01, 0x0a, 0x0f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x4d, 0x0a, 0x15, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6a, 0x6f, - 0x62, 0x5f, 0x73, 0x74, 0x61, 0x72, 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, 0x52, 0x12, - 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6a, 0x6f, 0x62, - 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 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, 0x10, 0x6c, 0x61, 0x74, - 0x65, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x39, 0x0a, - 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x63, 0xea, 0x41, 0x60, 0x0a, 0x20, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x12, - 0x3c, 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, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, - 0x6e, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x7d, 0x42, 0x06, 0x0a, - 0x04, 0x73, 0x70, 0x65, 0x63, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, - 0xdf, 0x07, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, 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, 0x15, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, - 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 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, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, + 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x61, 0x74, + 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x63, 0x0a, 0x13, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, - 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x11, + 0x64, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x63, 0x0a, 0x13, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x48, 0x01, 0x52, 0x11, 0x64, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x71, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, + 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x49, 0x4e, 0x47, + 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x04, + 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, + 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x3a, 0x71, 0xea, 0x41, 0x6e, 0x0a, 0x23, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, + 0x4a, 0x6f, 0x62, 0x12, 0x47, 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, 0x64, 0x61, 0x74, + 0x61, 0x53, 0x63, 0x61, 0x6e, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, + 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x7d, 0x42, 0x06, 0x0a, 0x04, + 0x73, 0x70, 0x65, 0x63, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2a, 0x52, + 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, + 0x0a, 0x1a, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, + 0x0a, 0x0c, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x01, + 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, + 0x10, 0x02, 0x32, 0xf2, 0x0c, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xe3, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, + 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, + 0x63, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x01, 0xca, 0x41, 0x1d, 0x0a, + 0x08, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x1d, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x2c, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3a, 0x3a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x22, 0x2d, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x73, 0x12, 0xe5, 0x01, 0x0a, + 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x12, + 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x82, 0x01, 0xca, 0x41, 0x1d, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x12, + 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xda, 0x41, 0x15, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x2c, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, + 0x3a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x32, 0x37, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x2e, 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, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, + 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xcb, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x69, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2f, 0x2a, 0x2d, 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, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x73, 0x2f, + 0x2a, 0x7d, 0x12, 0x9d, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, + 0x61, 0x6e, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, - 0x53, 0x63, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x5c, 0x0a, 0x11, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x71, 0x75, 0x61, 0x6c, - 0x69, 0x74, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, - 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, - 0x63, 0x12, 0x5c, 0x0a, 0x11, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x0f, - 0x64, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, - 0x63, 0x0a, 0x13, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, - 0x01, 0x52, 0x11, 0x64, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x12, 0x63, 0x0a, 0x13, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0xc9, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, - 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, - 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x11, 0x64, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x71, 0x0a, 0x05, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, - 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, - 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, - 0x45, 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, - 0x44, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, - 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x3a, 0x71, 0xea, 0x41, - 0x6e, 0x0a, 0x23, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x53, - 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x47, 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, - 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x53, - 0x63, 0x61, 0x6e, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x7d, 0x42, - 0x06, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x2a, 0x52, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x54, - 0x59, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x50, 0x52, 0x4f, 0x46, - 0x49, 0x4c, 0x45, 0x10, 0x02, 0x32, 0xf2, 0x0c, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, - 0x61, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xe3, 0x01, 0x0a, 0x0e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x2f, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, - 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x01, 0xca, - 0x41, 0x1d, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x11, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, - 0x41, 0x1d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, - 0x61, 0x6e, 0x2c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x3a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x61, 0x6e, - 0x22, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x73, 0x12, - 0xe5, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, - 0x61, 0x6e, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, - 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x82, 0x01, 0xca, 0x41, 0x1d, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, - 0x61, 0x6e, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x15, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x61, - 0x6e, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x44, 0x3a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x32, 0x37, - 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x2e, 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, 0x64, 0x61, 0x74, 0x61, 0x53, - 0x63, 0x61, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xcb, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, - 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x69, 0xca, 0x41, 0x2a, 0x0a, - 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x2a, 0x2d, 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, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, - 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x9d, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, + 0x53, 0x63, 0x61, 0x6e, 0x22, 0x3c, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2f, 0x12, 0x2d, 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, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x73, 0x2f, + 0x2a, 0x7d, 0x12, 0xb0, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, + 0x63, 0x61, 0x6e, 0x73, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x53, 0x63, 0x61, 0x6e, 0x73, 0x12, 0xaf, 0x01, 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x22, 0x3c, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 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, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, - 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb0, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x73, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, - 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x73, 0x12, 0xaf, 0x01, 0x0a, 0x0b, 0x52, 0x75, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x36, 0x3a, 0x01, 0x2a, 0x22, 0x31, 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, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, - 0x61, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x75, 0x6e, 0x12, 0xad, 0x01, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x2f, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, - 0x61, 0x6e, 0x4a, 0x6f, 0x62, 0x22, 0x43, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x2e, 0x52, 0x75, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x75, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x43, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x36, 0x3a, 0x01, 0x2a, 0x22, 0x31, 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, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x73, - 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc0, 0x01, 0x0a, 0x10, 0x4c, - 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x12, - 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x75, 0x6e, 0x12, 0xad, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, + 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, + 0x6f, 0x62, 0x22, 0x43, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x36, 0x12, 0x34, 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, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc0, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x31, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x53, 0x63, 0x61, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x1a, 0x4b, 0xca, - 0x41, 0x17, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 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, 0x6a, 0x0a, 0x1c, 0x63, 0x6f, - 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x44, 0x61, 0x74, 0x61, - 0x53, 0x63, 0x61, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, - 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, - 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x3b, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x45, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, + 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x1a, 0x4b, 0xca, 0x41, 0x17, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 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, 0x6a, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, + 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, + 0x78, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/dataplex/apiv1/dataplexpb/logs.pb.go b/dataplex/apiv1/dataplexpb/logs.pb.go index bf693e55447..c06e337ca71 100755 --- a/dataplex/apiv1/dataplexpb/logs.pb.go +++ b/dataplex/apiv1/dataplexpb/logs.pb.go @@ -327,6 +327,60 @@ func (JobEvent_Service) EnumDescriptor() ([]byte, []int) { return file_google_cloud_dataplex_v1_logs_proto_rawDescGZIP(), []int{1, 2} } +// Job Execution trigger. +type JobEvent_ExecutionTrigger int32 + +const ( + // The job execution trigger is unspecified. + JobEvent_EXECUTION_TRIGGER_UNSPECIFIED JobEvent_ExecutionTrigger = 0 + // The job was triggered by Dataplex based on trigger spec from task + // definition. + JobEvent_TASK_CONFIG JobEvent_ExecutionTrigger = 1 + // The job was triggered by the explicit call of Task API. + JobEvent_RUN_REQUEST JobEvent_ExecutionTrigger = 2 +) + +// Enum value maps for JobEvent_ExecutionTrigger. +var ( + JobEvent_ExecutionTrigger_name = map[int32]string{ + 0: "EXECUTION_TRIGGER_UNSPECIFIED", + 1: "TASK_CONFIG", + 2: "RUN_REQUEST", + } + JobEvent_ExecutionTrigger_value = map[string]int32{ + "EXECUTION_TRIGGER_UNSPECIFIED": 0, + "TASK_CONFIG": 1, + "RUN_REQUEST": 2, + } +) + +func (x JobEvent_ExecutionTrigger) Enum() *JobEvent_ExecutionTrigger { + p := new(JobEvent_ExecutionTrigger) + *p = x + return p +} + +func (x JobEvent_ExecutionTrigger) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (JobEvent_ExecutionTrigger) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dataplex_v1_logs_proto_enumTypes[5].Descriptor() +} + +func (JobEvent_ExecutionTrigger) Type() protoreflect.EnumType { + return &file_google_cloud_dataplex_v1_logs_proto_enumTypes[5] +} + +func (x JobEvent_ExecutionTrigger) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use JobEvent_ExecutionTrigger.Descriptor instead. +func (JobEvent_ExecutionTrigger) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_logs_proto_rawDescGZIP(), []int{1, 3} +} + // The type of the event. type SessionEvent_EventType int32 @@ -373,11 +427,11 @@ func (x SessionEvent_EventType) String() string { } func (SessionEvent_EventType) Descriptor() protoreflect.EnumDescriptor { - return file_google_cloud_dataplex_v1_logs_proto_enumTypes[5].Descriptor() + return file_google_cloud_dataplex_v1_logs_proto_enumTypes[6].Descriptor() } func (SessionEvent_EventType) Type() protoreflect.EnumType { - return &file_google_cloud_dataplex_v1_logs_proto_enumTypes[5] + return &file_google_cloud_dataplex_v1_logs_proto_enumTypes[6] } func (x SessionEvent_EventType) Number() protoreflect.EnumNumber { @@ -426,11 +480,11 @@ func (x SessionEvent_QueryDetail_Engine) String() string { } func (SessionEvent_QueryDetail_Engine) Descriptor() protoreflect.EnumDescriptor { - return file_google_cloud_dataplex_v1_logs_proto_enumTypes[6].Descriptor() + return file_google_cloud_dataplex_v1_logs_proto_enumTypes[7].Descriptor() } func (SessionEvent_QueryDetail_Engine) Type() protoreflect.EnumType { - return &file_google_cloud_dataplex_v1_logs_proto_enumTypes[6] + return &file_google_cloud_dataplex_v1_logs_proto_enumTypes[7] } func (x SessionEvent_QueryDetail_Engine) Number() protoreflect.EnumNumber { @@ -479,11 +533,11 @@ func (x DataScanEvent_ScanType) String() string { } func (DataScanEvent_ScanType) Descriptor() protoreflect.EnumDescriptor { - return file_google_cloud_dataplex_v1_logs_proto_enumTypes[7].Descriptor() + return file_google_cloud_dataplex_v1_logs_proto_enumTypes[8].Descriptor() } func (DataScanEvent_ScanType) Type() protoreflect.EnumType { - return &file_google_cloud_dataplex_v1_logs_proto_enumTypes[7] + return &file_google_cloud_dataplex_v1_logs_proto_enumTypes[8] } func (x DataScanEvent_ScanType) Number() protoreflect.EnumNumber { @@ -501,14 +555,16 @@ type DataScanEvent_State int32 const ( // Unspecified job state. DataScanEvent_STATE_UNSPECIFIED DataScanEvent_State = 0 - // Data scan started. + // Data scan job started. DataScanEvent_STARTED DataScanEvent_State = 1 - // Data scan successfully completed. + // Data scan job successfully completed. DataScanEvent_SUCCEEDED DataScanEvent_State = 2 - // Data scan was unsuccessful. + // Data scan job was unsuccessful. DataScanEvent_FAILED DataScanEvent_State = 3 - // Data scan was cancelled. + // Data scan job was cancelled. DataScanEvent_CANCELLED DataScanEvent_State = 4 + // Data scan job was createed. + DataScanEvent_CREATED DataScanEvent_State = 5 ) // Enum value maps for DataScanEvent_State. @@ -519,6 +575,7 @@ var ( 2: "SUCCEEDED", 3: "FAILED", 4: "CANCELLED", + 5: "CREATED", } DataScanEvent_State_value = map[string]int32{ "STATE_UNSPECIFIED": 0, @@ -526,6 +583,7 @@ var ( "SUCCEEDED": 2, "FAILED": 3, "CANCELLED": 4, + "CREATED": 5, } ) @@ -540,11 +598,11 @@ func (x DataScanEvent_State) String() string { } func (DataScanEvent_State) Descriptor() protoreflect.EnumDescriptor { - return file_google_cloud_dataplex_v1_logs_proto_enumTypes[8].Descriptor() + return file_google_cloud_dataplex_v1_logs_proto_enumTypes[9].Descriptor() } func (DataScanEvent_State) Type() protoreflect.EnumType { - return &file_google_cloud_dataplex_v1_logs_proto_enumTypes[8] + return &file_google_cloud_dataplex_v1_logs_proto_enumTypes[9] } func (x DataScanEvent_State) Number() protoreflect.EnumNumber { @@ -593,11 +651,11 @@ func (x DataScanEvent_Trigger) String() string { } func (DataScanEvent_Trigger) Descriptor() protoreflect.EnumDescriptor { - return file_google_cloud_dataplex_v1_logs_proto_enumTypes[9].Descriptor() + return file_google_cloud_dataplex_v1_logs_proto_enumTypes[10].Descriptor() } func (DataScanEvent_Trigger) Type() protoreflect.EnumType { - return &file_google_cloud_dataplex_v1_logs_proto_enumTypes[9] + return &file_google_cloud_dataplex_v1_logs_proto_enumTypes[10] } func (x DataScanEvent_Trigger) Number() protoreflect.EnumNumber { @@ -646,11 +704,11 @@ func (x DataScanEvent_Scope) String() string { } func (DataScanEvent_Scope) Descriptor() protoreflect.EnumDescriptor { - return file_google_cloud_dataplex_v1_logs_proto_enumTypes[10].Descriptor() + return file_google_cloud_dataplex_v1_logs_proto_enumTypes[11].Descriptor() } func (DataScanEvent_Scope) Type() protoreflect.EnumType { - return &file_google_cloud_dataplex_v1_logs_proto_enumTypes[10] + return &file_google_cloud_dataplex_v1_logs_proto_enumTypes[11] } func (x DataScanEvent_Scope) Number() protoreflect.EnumNumber { @@ -662,6 +720,255 @@ func (DataScanEvent_Scope) EnumDescriptor() ([]byte, []int) { return file_google_cloud_dataplex_v1_logs_proto_rawDescGZIP(), []int{3, 3} } +// Execution state for the exporting. +type DataScanEvent_PostScanActionsResult_BigQueryExportResult_State int32 + +const ( + // The exporting state is unspecified. + DataScanEvent_PostScanActionsResult_BigQueryExportResult_STATE_UNSPECIFIED DataScanEvent_PostScanActionsResult_BigQueryExportResult_State = 0 + // The exporting completed successfully. + DataScanEvent_PostScanActionsResult_BigQueryExportResult_SUCCEEDED DataScanEvent_PostScanActionsResult_BigQueryExportResult_State = 1 + // The exporting is no longer running due to an error. + DataScanEvent_PostScanActionsResult_BigQueryExportResult_FAILED DataScanEvent_PostScanActionsResult_BigQueryExportResult_State = 2 + // The exporting is skipped due to no valid scan result to export + // (usually caused by scan failed). + DataScanEvent_PostScanActionsResult_BigQueryExportResult_SKIPPED DataScanEvent_PostScanActionsResult_BigQueryExportResult_State = 3 +) + +// Enum value maps for DataScanEvent_PostScanActionsResult_BigQueryExportResult_State. +var ( + DataScanEvent_PostScanActionsResult_BigQueryExportResult_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "SUCCEEDED", + 2: "FAILED", + 3: "SKIPPED", + } + DataScanEvent_PostScanActionsResult_BigQueryExportResult_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "SUCCEEDED": 1, + "FAILED": 2, + "SKIPPED": 3, + } +) + +func (x DataScanEvent_PostScanActionsResult_BigQueryExportResult_State) Enum() *DataScanEvent_PostScanActionsResult_BigQueryExportResult_State { + p := new(DataScanEvent_PostScanActionsResult_BigQueryExportResult_State) + *p = x + return p +} + +func (x DataScanEvent_PostScanActionsResult_BigQueryExportResult_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DataScanEvent_PostScanActionsResult_BigQueryExportResult_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dataplex_v1_logs_proto_enumTypes[12].Descriptor() +} + +func (DataScanEvent_PostScanActionsResult_BigQueryExportResult_State) Type() protoreflect.EnumType { + return &file_google_cloud_dataplex_v1_logs_proto_enumTypes[12] +} + +func (x DataScanEvent_PostScanActionsResult_BigQueryExportResult_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DataScanEvent_PostScanActionsResult_BigQueryExportResult_State.Descriptor instead. +func (DataScanEvent_PostScanActionsResult_BigQueryExportResult_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_logs_proto_rawDescGZIP(), []int{3, 4, 0, 0} +} + +// The type of the data quality rule. +type DataQualityScanRuleResult_RuleType int32 + +const ( + // An unspecified rule type. + DataQualityScanRuleResult_RULE_TYPE_UNSPECIFIED DataQualityScanRuleResult_RuleType = 0 + // Please see + // https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#nonnullexpectation. + DataQualityScanRuleResult_NON_NULL_EXPECTATION DataQualityScanRuleResult_RuleType = 1 + // Please see + // https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#rangeexpectation. + DataQualityScanRuleResult_RANGE_EXPECTATION DataQualityScanRuleResult_RuleType = 2 + // Please see + // https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#regexexpectation. + DataQualityScanRuleResult_REGEX_EXPECTATION DataQualityScanRuleResult_RuleType = 3 + // Please see + // https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#rowconditionexpectation. + DataQualityScanRuleResult_ROW_CONDITION_EXPECTATION DataQualityScanRuleResult_RuleType = 4 + // Please see + // https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#setexpectation. + DataQualityScanRuleResult_SET_EXPECTATION DataQualityScanRuleResult_RuleType = 5 + // Please see + // https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#statisticrangeexpectation. + DataQualityScanRuleResult_STATISTIC_RANGE_EXPECTATION DataQualityScanRuleResult_RuleType = 6 + // Please see + // https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#tableconditionexpectation. + DataQualityScanRuleResult_TABLE_CONDITION_EXPECTATION DataQualityScanRuleResult_RuleType = 7 + // Please see + // https://cloud.google.com/dataplex/docs/reference/rest/v1/DataQualityRule#uniquenessexpectation. + DataQualityScanRuleResult_UNIQUENESS_EXPECTATION DataQualityScanRuleResult_RuleType = 8 +) + +// Enum value maps for DataQualityScanRuleResult_RuleType. +var ( + DataQualityScanRuleResult_RuleType_name = map[int32]string{ + 0: "RULE_TYPE_UNSPECIFIED", + 1: "NON_NULL_EXPECTATION", + 2: "RANGE_EXPECTATION", + 3: "REGEX_EXPECTATION", + 4: "ROW_CONDITION_EXPECTATION", + 5: "SET_EXPECTATION", + 6: "STATISTIC_RANGE_EXPECTATION", + 7: "TABLE_CONDITION_EXPECTATION", + 8: "UNIQUENESS_EXPECTATION", + } + DataQualityScanRuleResult_RuleType_value = map[string]int32{ + "RULE_TYPE_UNSPECIFIED": 0, + "NON_NULL_EXPECTATION": 1, + "RANGE_EXPECTATION": 2, + "REGEX_EXPECTATION": 3, + "ROW_CONDITION_EXPECTATION": 4, + "SET_EXPECTATION": 5, + "STATISTIC_RANGE_EXPECTATION": 6, + "TABLE_CONDITION_EXPECTATION": 7, + "UNIQUENESS_EXPECTATION": 8, + } +) + +func (x DataQualityScanRuleResult_RuleType) Enum() *DataQualityScanRuleResult_RuleType { + p := new(DataQualityScanRuleResult_RuleType) + *p = x + return p +} + +func (x DataQualityScanRuleResult_RuleType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DataQualityScanRuleResult_RuleType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dataplex_v1_logs_proto_enumTypes[13].Descriptor() +} + +func (DataQualityScanRuleResult_RuleType) Type() protoreflect.EnumType { + return &file_google_cloud_dataplex_v1_logs_proto_enumTypes[13] +} + +func (x DataQualityScanRuleResult_RuleType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DataQualityScanRuleResult_RuleType.Descriptor instead. +func (DataQualityScanRuleResult_RuleType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_logs_proto_rawDescGZIP(), []int{4, 0} +} + +// The evaluation type of the data quality rule. +type DataQualityScanRuleResult_EvaluationType int32 + +const ( + // An unspecified evaluation type. + DataQualityScanRuleResult_EVALUATION_TYPE_UNSPECIFIED DataQualityScanRuleResult_EvaluationType = 0 + // The rule evaluation is done at per row level. + DataQualityScanRuleResult_PER_ROW DataQualityScanRuleResult_EvaluationType = 1 + // The rule evaluation is done for an aggregate of rows. + DataQualityScanRuleResult_AGGREGATE DataQualityScanRuleResult_EvaluationType = 2 +) + +// Enum value maps for DataQualityScanRuleResult_EvaluationType. +var ( + DataQualityScanRuleResult_EvaluationType_name = map[int32]string{ + 0: "EVALUATION_TYPE_UNSPECIFIED", + 1: "PER_ROW", + 2: "AGGREGATE", + } + DataQualityScanRuleResult_EvaluationType_value = map[string]int32{ + "EVALUATION_TYPE_UNSPECIFIED": 0, + "PER_ROW": 1, + "AGGREGATE": 2, + } +) + +func (x DataQualityScanRuleResult_EvaluationType) Enum() *DataQualityScanRuleResult_EvaluationType { + p := new(DataQualityScanRuleResult_EvaluationType) + *p = x + return p +} + +func (x DataQualityScanRuleResult_EvaluationType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DataQualityScanRuleResult_EvaluationType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dataplex_v1_logs_proto_enumTypes[14].Descriptor() +} + +func (DataQualityScanRuleResult_EvaluationType) Type() protoreflect.EnumType { + return &file_google_cloud_dataplex_v1_logs_proto_enumTypes[14] +} + +func (x DataQualityScanRuleResult_EvaluationType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DataQualityScanRuleResult_EvaluationType.Descriptor instead. +func (DataQualityScanRuleResult_EvaluationType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_logs_proto_rawDescGZIP(), []int{4, 1} +} + +// Whether the data quality rule passed or failed. +type DataQualityScanRuleResult_Result int32 + +const ( + // An unspecified result. + DataQualityScanRuleResult_RESULT_UNSPECIFIED DataQualityScanRuleResult_Result = 0 + // The data quality rule passed. + DataQualityScanRuleResult_PASSED DataQualityScanRuleResult_Result = 1 + // The data quality rule failed. + DataQualityScanRuleResult_FAILED DataQualityScanRuleResult_Result = 2 +) + +// Enum value maps for DataQualityScanRuleResult_Result. +var ( + DataQualityScanRuleResult_Result_name = map[int32]string{ + 0: "RESULT_UNSPECIFIED", + 1: "PASSED", + 2: "FAILED", + } + DataQualityScanRuleResult_Result_value = map[string]int32{ + "RESULT_UNSPECIFIED": 0, + "PASSED": 1, + "FAILED": 2, + } +) + +func (x DataQualityScanRuleResult_Result) Enum() *DataQualityScanRuleResult_Result { + p := new(DataQualityScanRuleResult_Result) + *p = x + return p +} + +func (x DataQualityScanRuleResult_Result) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DataQualityScanRuleResult_Result) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dataplex_v1_logs_proto_enumTypes[15].Descriptor() +} + +func (DataQualityScanRuleResult_Result) Type() protoreflect.EnumType { + return &file_google_cloud_dataplex_v1_logs_proto_enumTypes[15] +} + +func (x DataQualityScanRuleResult_Result) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DataQualityScanRuleResult_Result.Descriptor instead. +func (DataQualityScanRuleResult_Result) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_logs_proto_rawDescGZIP(), []int{4, 2} +} + // The payload associated with Discovery data processing. type DiscoveryEvent struct { state protoimpl.MessageState @@ -856,6 +1163,8 @@ type JobEvent struct { Service JobEvent_Service `protobuf:"varint,8,opt,name=service,proto3,enum=google.cloud.dataplex.v1.JobEvent_Service" json:"service,omitempty"` // The reference to the job within the service. ServiceJob string `protobuf:"bytes,9,opt,name=service_job,json=serviceJob,proto3" json:"service_job,omitempty"` + // Job execution trigger. + ExecutionTrigger JobEvent_ExecutionTrigger `protobuf:"varint,11,opt,name=execution_trigger,json=executionTrigger,proto3,enum=google.cloud.dataplex.v1.JobEvent_ExecutionTrigger" json:"execution_trigger,omitempty"` } func (x *JobEvent) Reset() { @@ -953,6 +1262,13 @@ func (x *JobEvent) GetServiceJob() string { return "" } +func (x *JobEvent) GetExecutionTrigger() JobEvent_ExecutionTrigger { + if x != nil { + return x.ExecutionTrigger + } + return JobEvent_EXECUTION_TRIGGER_UNSPECIFIED +} + // These messages contain information about sessions within an environment. // The monitored resource is 'Environment'. type SessionEvent struct { @@ -1091,6 +1407,7 @@ func (*SessionEvent_Query) isSessionEvent_Detail() {} // These messages contain information about the execution of a datascan. // The monitored resource is 'DataScan' +// Next ID: 13 type DataScanEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1100,6 +1417,8 @@ type DataScanEvent struct { DataSource string `protobuf:"bytes,1,opt,name=data_source,json=dataSource,proto3" json:"data_source,omitempty"` // The identifier of the specific data scan job this log entry is for. JobId string `protobuf:"bytes,2,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` + // The time when the data scan job was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // The time when the data scan job started to run. StartTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // The time when the data scan job finished. @@ -1122,6 +1441,14 @@ type DataScanEvent struct { // *DataScanEvent_DataProfile // *DataScanEvent_DataQuality Result isDataScanEvent_Result `protobuf_oneof:"result"` + // The applied configs in the data scan job. + // + // Types that are assignable to AppliedConfigs: + // *DataScanEvent_DataProfileConfigs + // *DataScanEvent_DataQualityConfigs + AppliedConfigs isDataScanEvent_AppliedConfigs `protobuf_oneof:"appliedConfigs"` + // The result of post scan actions. + PostScanActionsResult *DataScanEvent_PostScanActionsResult `protobuf:"bytes,11,opt,name=post_scan_actions_result,json=postScanActionsResult,proto3" json:"post_scan_actions_result,omitempty"` } func (x *DataScanEvent) Reset() { @@ -1170,6 +1497,13 @@ func (x *DataScanEvent) GetJobId() string { return "" } +func (x *DataScanEvent) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + func (x *DataScanEvent) GetStartTime() *timestamppb.Timestamp { if x != nil { return x.StartTime @@ -1247,6 +1581,34 @@ func (x *DataScanEvent) GetDataQuality() *DataScanEvent_DataQualityResult { return nil } +func (m *DataScanEvent) GetAppliedConfigs() isDataScanEvent_AppliedConfigs { + if m != nil { + return m.AppliedConfigs + } + return nil +} + +func (x *DataScanEvent) GetDataProfileConfigs() *DataScanEvent_DataProfileAppliedConfigs { + if x, ok := x.GetAppliedConfigs().(*DataScanEvent_DataProfileConfigs); ok { + return x.DataProfileConfigs + } + return nil +} + +func (x *DataScanEvent) GetDataQualityConfigs() *DataScanEvent_DataQualityAppliedConfigs { + if x, ok := x.GetAppliedConfigs().(*DataScanEvent_DataQualityConfigs); ok { + return x.DataQualityConfigs + } + return nil +} + +func (x *DataScanEvent) GetPostScanActionsResult() *DataScanEvent_PostScanActionsResult { + if x != nil { + return x.PostScanActionsResult + } + return nil +} + type isDataScanEvent_Result interface { isDataScanEvent_Result() } @@ -1265,88 +1627,76 @@ func (*DataScanEvent_DataProfile) isDataScanEvent_Result() {} func (*DataScanEvent_DataQuality) isDataScanEvent_Result() {} -// Details about configuration events. -type DiscoveryEvent_ConfigDetails struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // A list of discovery configuration parameters in effect. - // The keys are the field paths within DiscoverySpec. - // Eg. includePatterns, excludePatterns, csvOptions.disableTypeInference, - // etc. - Parameters map[string]string `protobuf:"bytes,1,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` -} - -func (x *DiscoveryEvent_ConfigDetails) Reset() { - *x = DiscoveryEvent_ConfigDetails{} - if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +type isDataScanEvent_AppliedConfigs interface { + isDataScanEvent_AppliedConfigs() } -func (x *DiscoveryEvent_ConfigDetails) String() string { - return protoimpl.X.MessageStringOf(x) +type DataScanEvent_DataProfileConfigs struct { + // Applied configs for data profile type data scan. + DataProfileConfigs *DataScanEvent_DataProfileAppliedConfigs `protobuf:"bytes,201,opt,name=data_profile_configs,json=dataProfileConfigs,proto3,oneof"` } -func (*DiscoveryEvent_ConfigDetails) ProtoMessage() {} - -func (x *DiscoveryEvent_ConfigDetails) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_logs_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) +type DataScanEvent_DataQualityConfigs struct { + // Applied configs for data quality type data scan. + DataQualityConfigs *DataScanEvent_DataQualityAppliedConfigs `protobuf:"bytes,202,opt,name=data_quality_configs,json=dataQualityConfigs,proto3,oneof"` } -// Deprecated: Use DiscoveryEvent_ConfigDetails.ProtoReflect.Descriptor instead. -func (*DiscoveryEvent_ConfigDetails) Descriptor() ([]byte, []int) { - return file_google_cloud_dataplex_v1_logs_proto_rawDescGZIP(), []int{0, 0} -} +func (*DataScanEvent_DataProfileConfigs) isDataScanEvent_AppliedConfigs() {} -func (x *DiscoveryEvent_ConfigDetails) GetParameters() map[string]string { - if x != nil { - return x.Parameters - } - return nil -} +func (*DataScanEvent_DataQualityConfigs) isDataScanEvent_AppliedConfigs() {} -// Details about the entity. -type DiscoveryEvent_EntityDetails struct { +// Information about the result of a data quality rule for data quality scan. +// The monitored resource is 'DataScan'. +type DataQualityScanRuleResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the entity resource. - // The name is the fully-qualified resource name. - Entity string `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` - // The type of the entity resource. - Type DiscoveryEvent_EntityType `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.dataplex.v1.DiscoveryEvent_EntityType" json:"type,omitempty"` -} - -func (x *DiscoveryEvent_EntityDetails) Reset() { - *x = DiscoveryEvent_EntityDetails{} + // Identifier of the specific data scan job this log entry is for. + JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` + // The data source of the data scan (e.g. BigQuery table name). + DataSource string `protobuf:"bytes,2,opt,name=data_source,json=dataSource,proto3" json:"data_source,omitempty"` + // The column which this rule is evaluated against. + Column string `protobuf:"bytes,3,opt,name=column,proto3" json:"column,omitempty"` + // The name of the data quality rule. + RuleName string `protobuf:"bytes,4,opt,name=rule_name,json=ruleName,proto3" json:"rule_name,omitempty"` + // The type of the data quality rule. + RuleType DataQualityScanRuleResult_RuleType `protobuf:"varint,5,opt,name=rule_type,json=ruleType,proto3,enum=google.cloud.dataplex.v1.DataQualityScanRuleResult_RuleType" json:"rule_type,omitempty"` + // The evaluation type of the data quality rule. + EvalutionType DataQualityScanRuleResult_EvaluationType `protobuf:"varint,6,opt,name=evalution_type,json=evalutionType,proto3,enum=google.cloud.dataplex.v1.DataQualityScanRuleResult_EvaluationType" json:"evalution_type,omitempty"` + // The dimension of the data quality rule. + RuleDimension string `protobuf:"bytes,7,opt,name=rule_dimension,json=ruleDimension,proto3" json:"rule_dimension,omitempty"` + // The passing threshold ([0.0, 100.0]) of the data quality rule. + ThresholdPercent float64 `protobuf:"fixed64,8,opt,name=threshold_percent,json=thresholdPercent,proto3" json:"threshold_percent,omitempty"` + // The result of the data quality rule. + Result DataQualityScanRuleResult_Result `protobuf:"varint,9,opt,name=result,proto3,enum=google.cloud.dataplex.v1.DataQualityScanRuleResult_Result" json:"result,omitempty"` + // The number of rows evaluated against the data quality rule. + // This field is only valid for rules of PER_ROW evaluation type. + EvaluatedRowCount int64 `protobuf:"varint,10,opt,name=evaluated_row_count,json=evaluatedRowCount,proto3" json:"evaluated_row_count,omitempty"` + // The number of rows which passed a rule evaluation. + // This field is only valid for rules of PER_ROW evaluation type. + PassedRowCount int64 `protobuf:"varint,11,opt,name=passed_row_count,json=passedRowCount,proto3" json:"passed_row_count,omitempty"` + // The number of rows with null values in the specified column. + NullRowCount int64 `protobuf:"varint,12,opt,name=null_row_count,json=nullRowCount,proto3" json:"null_row_count,omitempty"` +} + +func (x *DataQualityScanRuleResult) Reset() { + *x = DataQualityScanRuleResult{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[5] + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DiscoveryEvent_EntityDetails) String() string { +func (x *DataQualityScanRuleResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DiscoveryEvent_EntityDetails) ProtoMessage() {} +func (*DataQualityScanRuleResult) ProtoMessage() {} -func (x *DiscoveryEvent_EntityDetails) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[5] +func (x *DataQualityScanRuleResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1357,23 +1707,204 @@ func (x *DiscoveryEvent_EntityDetails) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DiscoveryEvent_EntityDetails.ProtoReflect.Descriptor instead. -func (*DiscoveryEvent_EntityDetails) Descriptor() ([]byte, []int) { - return file_google_cloud_dataplex_v1_logs_proto_rawDescGZIP(), []int{0, 1} +// Deprecated: Use DataQualityScanRuleResult.ProtoReflect.Descriptor instead. +func (*DataQualityScanRuleResult) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_logs_proto_rawDescGZIP(), []int{4} } -func (x *DiscoveryEvent_EntityDetails) GetEntity() string { +func (x *DataQualityScanRuleResult) GetJobId() string { if x != nil { - return x.Entity + return x.JobId } return "" } -func (x *DiscoveryEvent_EntityDetails) GetType() DiscoveryEvent_EntityType { +func (x *DataQualityScanRuleResult) GetDataSource() string { if x != nil { - return x.Type + return x.DataSource } - return DiscoveryEvent_ENTITY_TYPE_UNSPECIFIED + return "" +} + +func (x *DataQualityScanRuleResult) GetColumn() string { + if x != nil { + return x.Column + } + return "" +} + +func (x *DataQualityScanRuleResult) GetRuleName() string { + if x != nil { + return x.RuleName + } + return "" +} + +func (x *DataQualityScanRuleResult) GetRuleType() DataQualityScanRuleResult_RuleType { + if x != nil { + return x.RuleType + } + return DataQualityScanRuleResult_RULE_TYPE_UNSPECIFIED +} + +func (x *DataQualityScanRuleResult) GetEvalutionType() DataQualityScanRuleResult_EvaluationType { + if x != nil { + return x.EvalutionType + } + return DataQualityScanRuleResult_EVALUATION_TYPE_UNSPECIFIED +} + +func (x *DataQualityScanRuleResult) GetRuleDimension() string { + if x != nil { + return x.RuleDimension + } + return "" +} + +func (x *DataQualityScanRuleResult) GetThresholdPercent() float64 { + if x != nil { + return x.ThresholdPercent + } + return 0 +} + +func (x *DataQualityScanRuleResult) GetResult() DataQualityScanRuleResult_Result { + if x != nil { + return x.Result + } + return DataQualityScanRuleResult_RESULT_UNSPECIFIED +} + +func (x *DataQualityScanRuleResult) GetEvaluatedRowCount() int64 { + if x != nil { + return x.EvaluatedRowCount + } + return 0 +} + +func (x *DataQualityScanRuleResult) GetPassedRowCount() int64 { + if x != nil { + return x.PassedRowCount + } + return 0 +} + +func (x *DataQualityScanRuleResult) GetNullRowCount() int64 { + if x != nil { + return x.NullRowCount + } + return 0 +} + +// Details about configuration events. +type DiscoveryEvent_ConfigDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A list of discovery configuration parameters in effect. + // The keys are the field paths within DiscoverySpec. + // Eg. includePatterns, excludePatterns, csvOptions.disableTypeInference, + // etc. + Parameters map[string]string `protobuf:"bytes,1,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *DiscoveryEvent_ConfigDetails) Reset() { + *x = DiscoveryEvent_ConfigDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DiscoveryEvent_ConfigDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DiscoveryEvent_ConfigDetails) ProtoMessage() {} + +func (x *DiscoveryEvent_ConfigDetails) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_logs_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 DiscoveryEvent_ConfigDetails.ProtoReflect.Descriptor instead. +func (*DiscoveryEvent_ConfigDetails) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_logs_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *DiscoveryEvent_ConfigDetails) GetParameters() map[string]string { + if x != nil { + return x.Parameters + } + return nil +} + +// Details about the entity. +type DiscoveryEvent_EntityDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the entity resource. + // The name is the fully-qualified resource name. + Entity string `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` + // The type of the entity resource. + Type DiscoveryEvent_EntityType `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.dataplex.v1.DiscoveryEvent_EntityType" json:"type,omitempty"` +} + +func (x *DiscoveryEvent_EntityDetails) Reset() { + *x = DiscoveryEvent_EntityDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DiscoveryEvent_EntityDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DiscoveryEvent_EntityDetails) ProtoMessage() {} + +func (x *DiscoveryEvent_EntityDetails) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_logs_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 DiscoveryEvent_EntityDetails.ProtoReflect.Descriptor instead. +func (*DiscoveryEvent_EntityDetails) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_logs_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *DiscoveryEvent_EntityDetails) GetEntity() string { + if x != nil { + return x.Entity + } + return "" +} + +func (x *DiscoveryEvent_EntityDetails) GetType() DiscoveryEvent_EntityType { + if x != nil { + return x.Type + } + return DiscoveryEvent_ENTITY_TYPE_UNSPECIFIED } // Details about the partition. @@ -1398,7 +1929,7 @@ type DiscoveryEvent_PartitionDetails struct { func (x *DiscoveryEvent_PartitionDetails) Reset() { *x = DiscoveryEvent_PartitionDetails{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[6] + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1411,7 +1942,7 @@ func (x *DiscoveryEvent_PartitionDetails) String() string { func (*DiscoveryEvent_PartitionDetails) ProtoMessage() {} func (x *DiscoveryEvent_PartitionDetails) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[6] + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1469,7 +2000,7 @@ type DiscoveryEvent_ActionDetails struct { func (x *DiscoveryEvent_ActionDetails) Reset() { *x = DiscoveryEvent_ActionDetails{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[7] + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1482,7 +2013,7 @@ func (x *DiscoveryEvent_ActionDetails) String() string { func (*DiscoveryEvent_ActionDetails) ProtoMessage() {} func (x *DiscoveryEvent_ActionDetails) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[7] + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1528,7 +2059,7 @@ type SessionEvent_QueryDetail struct { func (x *SessionEvent_QueryDetail) Reset() { *x = SessionEvent_QueryDetail{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[9] + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1541,7 +2072,7 @@ func (x *SessionEvent_QueryDetail) String() string { func (*SessionEvent_QueryDetail) ProtoMessage() {} func (x *SessionEvent_QueryDetail) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[9] + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1612,7 +2143,7 @@ type DataScanEvent_DataProfileResult struct { func (x *DataScanEvent_DataProfileResult) Reset() { *x = DataScanEvent_DataProfileResult{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[10] + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1625,7 +2156,7 @@ func (x *DataScanEvent_DataProfileResult) String() string { func (*DataScanEvent_DataProfileResult) ProtoMessage() {} func (x *DataScanEvent_DataProfileResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[10] + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1668,7 +2199,7 @@ type DataScanEvent_DataQualityResult struct { func (x *DataScanEvent_DataQualityResult) Reset() { *x = DataScanEvent_DataQualityResult{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[11] + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1681,7 +2212,7 @@ func (x *DataScanEvent_DataQualityResult) String() string { func (*DataScanEvent_DataQualityResult) ProtoMessage() {} func (x *DataScanEvent_DataQualityResult) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[11] + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1718,6 +2249,245 @@ func (x *DataScanEvent_DataQualityResult) GetDimensionPassed() map[string]bool { return nil } +// Applied configs for data profile type data scan job. +type DataScanEvent_DataProfileAppliedConfigs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The percentage of the records selected from the dataset for DataScan. + // + // * Value ranges between 0.0 and 100.0. + // * Value 0.0 or 100.0 imply that sampling was not applied. + SamplingPercent float32 `protobuf:"fixed32,1,opt,name=sampling_percent,json=samplingPercent,proto3" json:"sampling_percent,omitempty"` + // Boolean indicating whether a row filter was applied in the DataScan job. + RowFilterApplied bool `protobuf:"varint,2,opt,name=row_filter_applied,json=rowFilterApplied,proto3" json:"row_filter_applied,omitempty"` + // Boolean indicating whether a column filter was applied in the DataScan + // job. + ColumnFilterApplied bool `protobuf:"varint,3,opt,name=column_filter_applied,json=columnFilterApplied,proto3" json:"column_filter_applied,omitempty"` +} + +func (x *DataScanEvent_DataProfileAppliedConfigs) Reset() { + *x = DataScanEvent_DataProfileAppliedConfigs{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataScanEvent_DataProfileAppliedConfigs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataScanEvent_DataProfileAppliedConfigs) ProtoMessage() {} + +func (x *DataScanEvent_DataProfileAppliedConfigs) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_logs_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 DataScanEvent_DataProfileAppliedConfigs.ProtoReflect.Descriptor instead. +func (*DataScanEvent_DataProfileAppliedConfigs) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_logs_proto_rawDescGZIP(), []int{3, 2} +} + +func (x *DataScanEvent_DataProfileAppliedConfigs) GetSamplingPercent() float32 { + if x != nil { + return x.SamplingPercent + } + return 0 +} + +func (x *DataScanEvent_DataProfileAppliedConfigs) GetRowFilterApplied() bool { + if x != nil { + return x.RowFilterApplied + } + return false +} + +func (x *DataScanEvent_DataProfileAppliedConfigs) GetColumnFilterApplied() bool { + if x != nil { + return x.ColumnFilterApplied + } + return false +} + +// Applied configs for data quality type data scan job. +type DataScanEvent_DataQualityAppliedConfigs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The percentage of the records selected from the dataset for DataScan. + // + // * Value ranges between 0.0 and 100.0. + // * Value 0.0 or 100.0 imply that sampling was not applied. + SamplingPercent float32 `protobuf:"fixed32,1,opt,name=sampling_percent,json=samplingPercent,proto3" json:"sampling_percent,omitempty"` + // Boolean indicating whether a row filter was applied in the DataScan job. + RowFilterApplied bool `protobuf:"varint,2,opt,name=row_filter_applied,json=rowFilterApplied,proto3" json:"row_filter_applied,omitempty"` +} + +func (x *DataScanEvent_DataQualityAppliedConfigs) Reset() { + *x = DataScanEvent_DataQualityAppliedConfigs{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataScanEvent_DataQualityAppliedConfigs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataScanEvent_DataQualityAppliedConfigs) ProtoMessage() {} + +func (x *DataScanEvent_DataQualityAppliedConfigs) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_logs_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 DataScanEvent_DataQualityAppliedConfigs.ProtoReflect.Descriptor instead. +func (*DataScanEvent_DataQualityAppliedConfigs) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_logs_proto_rawDescGZIP(), []int{3, 3} +} + +func (x *DataScanEvent_DataQualityAppliedConfigs) GetSamplingPercent() float32 { + if x != nil { + return x.SamplingPercent + } + return 0 +} + +func (x *DataScanEvent_DataQualityAppliedConfigs) GetRowFilterApplied() bool { + if x != nil { + return x.RowFilterApplied + } + return false +} + +// Post scan actions result for data scan job. +type DataScanEvent_PostScanActionsResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The result of BigQuery export post scan action. + BigqueryExportResult *DataScanEvent_PostScanActionsResult_BigQueryExportResult `protobuf:"bytes,1,opt,name=bigquery_export_result,json=bigqueryExportResult,proto3" json:"bigquery_export_result,omitempty"` +} + +func (x *DataScanEvent_PostScanActionsResult) Reset() { + *x = DataScanEvent_PostScanActionsResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataScanEvent_PostScanActionsResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataScanEvent_PostScanActionsResult) ProtoMessage() {} + +func (x *DataScanEvent_PostScanActionsResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_logs_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 DataScanEvent_PostScanActionsResult.ProtoReflect.Descriptor instead. +func (*DataScanEvent_PostScanActionsResult) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_logs_proto_rawDescGZIP(), []int{3, 4} +} + +func (x *DataScanEvent_PostScanActionsResult) GetBigqueryExportResult() *DataScanEvent_PostScanActionsResult_BigQueryExportResult { + if x != nil { + return x.BigqueryExportResult + } + return nil +} + +// The result of BigQuery export post scan action. +type DataScanEvent_PostScanActionsResult_BigQueryExportResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Execution state for the BigQuery exporting. + State DataScanEvent_PostScanActionsResult_BigQueryExportResult_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.dataplex.v1.DataScanEvent_PostScanActionsResult_BigQueryExportResult_State" json:"state,omitempty"` + // Additional information about the BigQuery exporting. + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *DataScanEvent_PostScanActionsResult_BigQueryExportResult) Reset() { + *x = DataScanEvent_PostScanActionsResult_BigQueryExportResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_logs_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataScanEvent_PostScanActionsResult_BigQueryExportResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataScanEvent_PostScanActionsResult_BigQueryExportResult) ProtoMessage() {} + +func (x *DataScanEvent_PostScanActionsResult_BigQueryExportResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_logs_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 DataScanEvent_PostScanActionsResult_BigQueryExportResult.ProtoReflect.Descriptor instead. +func (*DataScanEvent_PostScanActionsResult_BigQueryExportResult) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_logs_proto_rawDescGZIP(), []int{3, 4, 0} +} + +func (x *DataScanEvent_PostScanActionsResult_BigQueryExportResult) GetState() DataScanEvent_PostScanActionsResult_BigQueryExportResult_State { + if x != nil { + return x.State + } + return DataScanEvent_PostScanActionsResult_BigQueryExportResult_STATE_UNSPECIFIED +} + +func (x *DataScanEvent_PostScanActionsResult_BigQueryExportResult) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + var File_google_cloud_dataplex_v1_logs_proto protoreflect.FileDescriptor var file_google_cloud_dataplex_v1_logs_proto_rawDesc = []byte{ @@ -1816,7 +2586,7 @@ var file_google_cloud_dataplex_v1_logs_proto_rawDesc = []byte{ 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x49, 0x4c, 0x45, 0x53, 0x45, 0x54, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x22, 0xeb, 0x04, 0x0a, 0x08, 0x4a, 0x6f, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x6c, 0x73, 0x22, 0xa6, 0x06, 0x0a, 0x08, 0x4a, 0x6f, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, @@ -1843,118 +2613,156 @@ var file_google_cloud_dataplex_v1_logs_proto_rawDesc = []byte{ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4a, 0x6f, 0x62, - 0x22, 0x35, 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, 0x09, - 0x0a, 0x05, 0x53, 0x50, 0x41, 0x52, 0x4b, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x54, - 0x45, 0x42, 0x4f, 0x4f, 0x4b, 0x10, 0x02, 0x22, 0x55, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, - 0x45, 0x44, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, - 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, - 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x42, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x04, 0x22, 0x30, - 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x45, 0x52, - 0x56, 0x49, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x41, 0x54, 0x41, 0x50, 0x52, 0x4f, 0x43, 0x10, 0x01, - 0x22, 0xe9, 0x06, 0x0a, 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x12, 0x60, 0x0a, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x72, + 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, + 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x69, 0x67, 0x67, + 0x65, 0x72, 0x22, 0x35, 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, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x41, 0x52, 0x4b, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, + 0x4f, 0x54, 0x45, 0x42, 0x4f, 0x4f, 0x4b, 0x10, 0x02, 0x22, 0x55, 0x0a, 0x05, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, + 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, + 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, + 0x44, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x42, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x04, + 0x22, 0x30, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x53, + 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x41, 0x54, 0x41, 0x50, 0x52, 0x4f, 0x43, + 0x10, 0x01, 0x22, 0x57, 0x0a, 0x10, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x41, 0x53, + 0x4b, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x55, + 0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x02, 0x22, 0xe9, 0x06, 0x0a, 0x0c, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x44, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x48, 0x00, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, + 0x64, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x66, 0x61, 0x73, + 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x75, 0x70, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x4a, 0x0a, 0x13, 0x75, + 0x6e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x75, 0x6e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xee, 0x02, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x65, 0x78, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x78, + 0x74, 0x12, 0x51, 0x0a, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x05, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x48, 0x00, 0x52, 0x05, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, - 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x30, - 0x0a, 0x14, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, 0x61, - 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x12, 0x4a, 0x0a, 0x13, 0x75, 0x6e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x75, 0x6e, 0x61, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xee, 0x02, 0x0a, - 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x19, 0x0a, 0x08, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x54, 0x65, 0x78, 0x74, 0x12, 0x51, 0x0a, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, - 0x65, 0x52, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, - 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, - 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x3d, - 0x0a, 0x06, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x4e, 0x47, 0x49, - 0x4e, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x50, 0x41, 0x52, 0x4b, 0x5f, 0x53, 0x51, 0x4c, 0x10, 0x01, 0x12, - 0x0c, 0x0a, 0x08, 0x42, 0x49, 0x47, 0x51, 0x55, 0x45, 0x52, 0x59, 0x10, 0x02, 0x22, 0x53, 0x0a, - 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, - 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x54, 0x4f, 0x50, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x51, - 0x55, 0x45, 0x52, 0x59, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, - 0x10, 0x04, 0x42, 0x08, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0xb5, 0x0a, 0x0a, - 0x0d, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1f, - 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, - 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 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, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 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, 0x52, - 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, - 0x53, 0x63, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x43, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, - 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x70, 0x65, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x49, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, - 0x61, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, - 0x65, 0x72, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x05, 0x73, - 0x63, 0x6f, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, + 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x52, 0x06, 0x65, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x3d, 0x0a, 0x06, 0x45, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, + 0x50, 0x41, 0x52, 0x4b, 0x5f, 0x53, 0x51, 0x4c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x49, + 0x47, 0x51, 0x55, 0x45, 0x52, 0x59, 0x10, 0x02, 0x22, 0x53, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x53, 0x54, 0x4f, 0x50, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x51, 0x55, 0x45, 0x52, 0x59, 0x10, + 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x04, 0x42, 0x08, 0x0a, + 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0xaa, 0x13, 0x0a, 0x0d, 0x44, 0x61, 0x74, 0x61, + 0x53, 0x63, 0x61, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, + 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, + 0x64, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x0c, 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, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, + 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 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, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, + 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, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x44, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, + 0x61, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x70, 0x65, + 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, + 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, + 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x63, 0x6f, 0x70, + 0x65, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x5e, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, + 0x61, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x61, 0x74, + 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x5e, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, + 0x61, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x61, 0x74, + 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x76, 0x0a, 0x14, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, + 0x18, 0xc9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x48, 0x01, 0x52, 0x12, 0x64, 0x61, + 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, + 0x12, 0x76, 0x0a, 0x14, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, + 0x63, 0x61, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x73, 0x48, 0x01, 0x52, 0x12, 0x64, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x76, 0x0a, 0x18, 0x70, 0x6f, 0x73, 0x74, + 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, - 0x12, 0x5e, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, - 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x12, 0x5e, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, - 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, - 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, + 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x15, 0x70, 0x6f, 0x73, 0x74, 0x53, + 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x30, 0x0a, 0x11, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 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, @@ -1974,33 +2782,142 @@ var file_google_cloud_dataplex_v1_logs_proto_rawDesc = []byte{ 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x49, 0x0a, 0x08, - 0x53, 0x63, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x43, 0x41, 0x4e, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x50, 0x52, 0x4f, 0x46, - 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x51, 0x55, - 0x41, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x02, 0x22, 0x55, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x52, 0x54, - 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, - 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x22, 0x3f, - 0x0a, 0x07, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x49, - 0x47, 0x47, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4d, 0x41, 0x4e, 0x44, 0x10, - 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x02, 0x22, - 0x39, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x43, 0x4f, 0x50, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x43, - 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x4c, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x42, 0x65, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xa8, 0x01, 0x0a, + 0x19, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x61, + 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x65, + 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x6f, 0x77, 0x5f, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x10, 0x72, 0x6f, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x13, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x1a, 0x74, 0x0a, 0x19, 0x44, 0x61, 0x74, 0x61, 0x51, + 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, + 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, + 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, + 0x2c, 0x0a, 0x12, 0x72, 0x6f, 0x77, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x72, 0x6f, 0x77, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x1a, 0x8d, 0x03, + 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x88, 0x01, 0x0a, 0x16, 0x62, 0x69, 0x67, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x52, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x14, 0x62, 0x69, + 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x1a, 0xe8, 0x01, 0x0a, 0x14, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x6e, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x58, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x61, 0x6e, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x46, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, + 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, + 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, + 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, 0x44, 0x10, 0x03, 0x22, 0x49, 0x0a, + 0x08, 0x53, 0x63, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x43, 0x41, + 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x50, 0x52, 0x4f, + 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x51, + 0x55, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x10, 0x02, 0x22, 0x62, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x52, + 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, + 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, + 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x05, 0x22, 0x3f, 0x0a, 0x07, + 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x49, 0x47, 0x47, + 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4d, 0x41, 0x4e, 0x44, 0x10, 0x01, 0x12, + 0x0c, 0x0a, 0x08, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x02, 0x22, 0x39, 0x0a, + 0x05, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x43, 0x4f, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, + 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x43, 0x52, 0x45, + 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x4c, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x73, 0x22, 0x81, 0x08, 0x0a, 0x19, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x59, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, + 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x75, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x69, 0x0a, 0x0e, 0x65, 0x76, + 0x61, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, + 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x75, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x64, 0x69, + 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, + 0x75, 0x6c, 0x65, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, + 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, - 0x78, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x4c, 0x6f, 0x67, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, - 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, - 0x3b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, + 0x53, 0x63, 0x61, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2e, 0x0a, + 0x13, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x77, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x65, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, + 0x10, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x52, + 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, + 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0c, 0x6e, 0x75, 0x6c, 0x6c, 0x52, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xff, 0x01, + 0x0a, 0x08, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x55, + 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x4e, 0x4f, 0x4e, 0x5f, 0x4e, 0x55, 0x4c, + 0x4c, 0x5f, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, + 0x15, 0x0a, 0x11, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x47, 0x45, 0x58, 0x5f, + 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x1d, 0x0a, + 0x19, 0x52, 0x4f, 0x57, 0x5f, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, + 0x58, 0x50, 0x45, 0x43, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, + 0x53, 0x45, 0x54, 0x5f, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, + 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x54, 0x41, 0x54, 0x49, 0x53, 0x54, 0x49, 0x43, 0x5f, 0x52, + 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x44, + 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x4e, 0x45, 0x53, + 0x53, 0x5f, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x22, + 0x4d, 0x0a, 0x0e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x52, 0x5f, 0x52, 0x4f, 0x57, 0x10, 0x01, 0x12, + 0x0d, 0x0a, 0x09, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x02, 0x22, 0x38, + 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x53, 0x55, + 0x4c, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x41, 0x53, 0x53, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, + 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x42, 0x65, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x4c, 0x6f, 0x67, 0x73, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x70, 0x62, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2015,69 +2932,89 @@ func file_google_cloud_dataplex_v1_logs_proto_rawDescGZIP() []byte { return file_google_cloud_dataplex_v1_logs_proto_rawDescData } -var file_google_cloud_dataplex_v1_logs_proto_enumTypes = make([]protoimpl.EnumInfo, 11) -var file_google_cloud_dataplex_v1_logs_proto_msgTypes = make([]protoimpl.MessageInfo, 13) +var file_google_cloud_dataplex_v1_logs_proto_enumTypes = make([]protoimpl.EnumInfo, 16) +var file_google_cloud_dataplex_v1_logs_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_google_cloud_dataplex_v1_logs_proto_goTypes = []interface{}{ - (DiscoveryEvent_EventType)(0), // 0: google.cloud.dataplex.v1.DiscoveryEvent.EventType - (DiscoveryEvent_EntityType)(0), // 1: google.cloud.dataplex.v1.DiscoveryEvent.EntityType - (JobEvent_Type)(0), // 2: google.cloud.dataplex.v1.JobEvent.Type - (JobEvent_State)(0), // 3: google.cloud.dataplex.v1.JobEvent.State - (JobEvent_Service)(0), // 4: google.cloud.dataplex.v1.JobEvent.Service - (SessionEvent_EventType)(0), // 5: google.cloud.dataplex.v1.SessionEvent.EventType - (SessionEvent_QueryDetail_Engine)(0), // 6: google.cloud.dataplex.v1.SessionEvent.QueryDetail.Engine - (DataScanEvent_ScanType)(0), // 7: google.cloud.dataplex.v1.DataScanEvent.ScanType - (DataScanEvent_State)(0), // 8: google.cloud.dataplex.v1.DataScanEvent.State - (DataScanEvent_Trigger)(0), // 9: google.cloud.dataplex.v1.DataScanEvent.Trigger - (DataScanEvent_Scope)(0), // 10: google.cloud.dataplex.v1.DataScanEvent.Scope - (*DiscoveryEvent)(nil), // 11: google.cloud.dataplex.v1.DiscoveryEvent - (*JobEvent)(nil), // 12: google.cloud.dataplex.v1.JobEvent - (*SessionEvent)(nil), // 13: google.cloud.dataplex.v1.SessionEvent - (*DataScanEvent)(nil), // 14: google.cloud.dataplex.v1.DataScanEvent - (*DiscoveryEvent_ConfigDetails)(nil), // 15: google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetails - (*DiscoveryEvent_EntityDetails)(nil), // 16: google.cloud.dataplex.v1.DiscoveryEvent.EntityDetails - (*DiscoveryEvent_PartitionDetails)(nil), // 17: google.cloud.dataplex.v1.DiscoveryEvent.PartitionDetails - (*DiscoveryEvent_ActionDetails)(nil), // 18: google.cloud.dataplex.v1.DiscoveryEvent.ActionDetails - nil, // 19: google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetails.ParametersEntry - (*SessionEvent_QueryDetail)(nil), // 20: google.cloud.dataplex.v1.SessionEvent.QueryDetail - (*DataScanEvent_DataProfileResult)(nil), // 21: google.cloud.dataplex.v1.DataScanEvent.DataProfileResult - (*DataScanEvent_DataQualityResult)(nil), // 22: google.cloud.dataplex.v1.DataScanEvent.DataQualityResult - nil, // 23: google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.DimensionPassedEntry - (*timestamppb.Timestamp)(nil), // 24: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 25: google.protobuf.Duration + (DiscoveryEvent_EventType)(0), // 0: google.cloud.dataplex.v1.DiscoveryEvent.EventType + (DiscoveryEvent_EntityType)(0), // 1: google.cloud.dataplex.v1.DiscoveryEvent.EntityType + (JobEvent_Type)(0), // 2: google.cloud.dataplex.v1.JobEvent.Type + (JobEvent_State)(0), // 3: google.cloud.dataplex.v1.JobEvent.State + (JobEvent_Service)(0), // 4: google.cloud.dataplex.v1.JobEvent.Service + (JobEvent_ExecutionTrigger)(0), // 5: google.cloud.dataplex.v1.JobEvent.ExecutionTrigger + (SessionEvent_EventType)(0), // 6: google.cloud.dataplex.v1.SessionEvent.EventType + (SessionEvent_QueryDetail_Engine)(0), // 7: google.cloud.dataplex.v1.SessionEvent.QueryDetail.Engine + (DataScanEvent_ScanType)(0), // 8: google.cloud.dataplex.v1.DataScanEvent.ScanType + (DataScanEvent_State)(0), // 9: google.cloud.dataplex.v1.DataScanEvent.State + (DataScanEvent_Trigger)(0), // 10: google.cloud.dataplex.v1.DataScanEvent.Trigger + (DataScanEvent_Scope)(0), // 11: google.cloud.dataplex.v1.DataScanEvent.Scope + (DataScanEvent_PostScanActionsResult_BigQueryExportResult_State)(0), // 12: google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult.BigQueryExportResult.State + (DataQualityScanRuleResult_RuleType)(0), // 13: google.cloud.dataplex.v1.DataQualityScanRuleResult.RuleType + (DataQualityScanRuleResult_EvaluationType)(0), // 14: google.cloud.dataplex.v1.DataQualityScanRuleResult.EvaluationType + (DataQualityScanRuleResult_Result)(0), // 15: google.cloud.dataplex.v1.DataQualityScanRuleResult.Result + (*DiscoveryEvent)(nil), // 16: google.cloud.dataplex.v1.DiscoveryEvent + (*JobEvent)(nil), // 17: google.cloud.dataplex.v1.JobEvent + (*SessionEvent)(nil), // 18: google.cloud.dataplex.v1.SessionEvent + (*DataScanEvent)(nil), // 19: google.cloud.dataplex.v1.DataScanEvent + (*DataQualityScanRuleResult)(nil), // 20: google.cloud.dataplex.v1.DataQualityScanRuleResult + (*DiscoveryEvent_ConfigDetails)(nil), // 21: google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetails + (*DiscoveryEvent_EntityDetails)(nil), // 22: google.cloud.dataplex.v1.DiscoveryEvent.EntityDetails + (*DiscoveryEvent_PartitionDetails)(nil), // 23: google.cloud.dataplex.v1.DiscoveryEvent.PartitionDetails + (*DiscoveryEvent_ActionDetails)(nil), // 24: google.cloud.dataplex.v1.DiscoveryEvent.ActionDetails + nil, // 25: google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetails.ParametersEntry + (*SessionEvent_QueryDetail)(nil), // 26: google.cloud.dataplex.v1.SessionEvent.QueryDetail + (*DataScanEvent_DataProfileResult)(nil), // 27: google.cloud.dataplex.v1.DataScanEvent.DataProfileResult + (*DataScanEvent_DataQualityResult)(nil), // 28: google.cloud.dataplex.v1.DataScanEvent.DataQualityResult + (*DataScanEvent_DataProfileAppliedConfigs)(nil), // 29: google.cloud.dataplex.v1.DataScanEvent.DataProfileAppliedConfigs + (*DataScanEvent_DataQualityAppliedConfigs)(nil), // 30: google.cloud.dataplex.v1.DataScanEvent.DataQualityAppliedConfigs + (*DataScanEvent_PostScanActionsResult)(nil), // 31: google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult + nil, // 32: google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.DimensionPassedEntry + (*DataScanEvent_PostScanActionsResult_BigQueryExportResult)(nil), // 33: google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult.BigQueryExportResult + (*timestamppb.Timestamp)(nil), // 34: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 35: google.protobuf.Duration } var file_google_cloud_dataplex_v1_logs_proto_depIdxs = []int32{ 0, // 0: google.cloud.dataplex.v1.DiscoveryEvent.type:type_name -> google.cloud.dataplex.v1.DiscoveryEvent.EventType - 15, // 1: google.cloud.dataplex.v1.DiscoveryEvent.config:type_name -> google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetails - 16, // 2: google.cloud.dataplex.v1.DiscoveryEvent.entity:type_name -> google.cloud.dataplex.v1.DiscoveryEvent.EntityDetails - 17, // 3: google.cloud.dataplex.v1.DiscoveryEvent.partition:type_name -> google.cloud.dataplex.v1.DiscoveryEvent.PartitionDetails - 18, // 4: google.cloud.dataplex.v1.DiscoveryEvent.action:type_name -> google.cloud.dataplex.v1.DiscoveryEvent.ActionDetails - 24, // 5: google.cloud.dataplex.v1.JobEvent.start_time:type_name -> google.protobuf.Timestamp - 24, // 6: google.cloud.dataplex.v1.JobEvent.end_time:type_name -> google.protobuf.Timestamp + 21, // 1: google.cloud.dataplex.v1.DiscoveryEvent.config:type_name -> google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetails + 22, // 2: google.cloud.dataplex.v1.DiscoveryEvent.entity:type_name -> google.cloud.dataplex.v1.DiscoveryEvent.EntityDetails + 23, // 3: google.cloud.dataplex.v1.DiscoveryEvent.partition:type_name -> google.cloud.dataplex.v1.DiscoveryEvent.PartitionDetails + 24, // 4: google.cloud.dataplex.v1.DiscoveryEvent.action:type_name -> google.cloud.dataplex.v1.DiscoveryEvent.ActionDetails + 34, // 5: google.cloud.dataplex.v1.JobEvent.start_time:type_name -> google.protobuf.Timestamp + 34, // 6: google.cloud.dataplex.v1.JobEvent.end_time:type_name -> google.protobuf.Timestamp 3, // 7: google.cloud.dataplex.v1.JobEvent.state:type_name -> google.cloud.dataplex.v1.JobEvent.State 2, // 8: google.cloud.dataplex.v1.JobEvent.type:type_name -> google.cloud.dataplex.v1.JobEvent.Type 4, // 9: google.cloud.dataplex.v1.JobEvent.service:type_name -> google.cloud.dataplex.v1.JobEvent.Service - 5, // 10: google.cloud.dataplex.v1.SessionEvent.type:type_name -> google.cloud.dataplex.v1.SessionEvent.EventType - 20, // 11: google.cloud.dataplex.v1.SessionEvent.query:type_name -> google.cloud.dataplex.v1.SessionEvent.QueryDetail - 25, // 12: google.cloud.dataplex.v1.SessionEvent.unassigned_duration:type_name -> google.protobuf.Duration - 24, // 13: google.cloud.dataplex.v1.DataScanEvent.start_time:type_name -> google.protobuf.Timestamp - 24, // 14: google.cloud.dataplex.v1.DataScanEvent.end_time:type_name -> google.protobuf.Timestamp - 7, // 15: google.cloud.dataplex.v1.DataScanEvent.type:type_name -> google.cloud.dataplex.v1.DataScanEvent.ScanType - 8, // 16: google.cloud.dataplex.v1.DataScanEvent.state:type_name -> google.cloud.dataplex.v1.DataScanEvent.State - 9, // 17: google.cloud.dataplex.v1.DataScanEvent.trigger:type_name -> google.cloud.dataplex.v1.DataScanEvent.Trigger - 10, // 18: google.cloud.dataplex.v1.DataScanEvent.scope:type_name -> google.cloud.dataplex.v1.DataScanEvent.Scope - 21, // 19: google.cloud.dataplex.v1.DataScanEvent.data_profile:type_name -> google.cloud.dataplex.v1.DataScanEvent.DataProfileResult - 22, // 20: google.cloud.dataplex.v1.DataScanEvent.data_quality:type_name -> google.cloud.dataplex.v1.DataScanEvent.DataQualityResult - 19, // 21: google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetails.parameters:type_name -> google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetails.ParametersEntry - 1, // 22: google.cloud.dataplex.v1.DiscoveryEvent.EntityDetails.type:type_name -> google.cloud.dataplex.v1.DiscoveryEvent.EntityType - 1, // 23: google.cloud.dataplex.v1.DiscoveryEvent.PartitionDetails.type:type_name -> google.cloud.dataplex.v1.DiscoveryEvent.EntityType - 6, // 24: google.cloud.dataplex.v1.SessionEvent.QueryDetail.engine:type_name -> google.cloud.dataplex.v1.SessionEvent.QueryDetail.Engine - 25, // 25: google.cloud.dataplex.v1.SessionEvent.QueryDetail.duration:type_name -> google.protobuf.Duration - 23, // 26: google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.dimension_passed:type_name -> google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.DimensionPassedEntry - 27, // [27:27] is the sub-list for method output_type - 27, // [27:27] is the sub-list for method input_type - 27, // [27:27] is the sub-list for extension type_name - 27, // [27:27] is the sub-list for extension extendee - 0, // [0:27] is the sub-list for field type_name + 5, // 10: google.cloud.dataplex.v1.JobEvent.execution_trigger:type_name -> google.cloud.dataplex.v1.JobEvent.ExecutionTrigger + 6, // 11: google.cloud.dataplex.v1.SessionEvent.type:type_name -> google.cloud.dataplex.v1.SessionEvent.EventType + 26, // 12: google.cloud.dataplex.v1.SessionEvent.query:type_name -> google.cloud.dataplex.v1.SessionEvent.QueryDetail + 35, // 13: google.cloud.dataplex.v1.SessionEvent.unassigned_duration:type_name -> google.protobuf.Duration + 34, // 14: google.cloud.dataplex.v1.DataScanEvent.create_time:type_name -> google.protobuf.Timestamp + 34, // 15: google.cloud.dataplex.v1.DataScanEvent.start_time:type_name -> google.protobuf.Timestamp + 34, // 16: google.cloud.dataplex.v1.DataScanEvent.end_time:type_name -> google.protobuf.Timestamp + 8, // 17: google.cloud.dataplex.v1.DataScanEvent.type:type_name -> google.cloud.dataplex.v1.DataScanEvent.ScanType + 9, // 18: google.cloud.dataplex.v1.DataScanEvent.state:type_name -> google.cloud.dataplex.v1.DataScanEvent.State + 10, // 19: google.cloud.dataplex.v1.DataScanEvent.trigger:type_name -> google.cloud.dataplex.v1.DataScanEvent.Trigger + 11, // 20: google.cloud.dataplex.v1.DataScanEvent.scope:type_name -> google.cloud.dataplex.v1.DataScanEvent.Scope + 27, // 21: google.cloud.dataplex.v1.DataScanEvent.data_profile:type_name -> google.cloud.dataplex.v1.DataScanEvent.DataProfileResult + 28, // 22: google.cloud.dataplex.v1.DataScanEvent.data_quality:type_name -> google.cloud.dataplex.v1.DataScanEvent.DataQualityResult + 29, // 23: google.cloud.dataplex.v1.DataScanEvent.data_profile_configs:type_name -> google.cloud.dataplex.v1.DataScanEvent.DataProfileAppliedConfigs + 30, // 24: google.cloud.dataplex.v1.DataScanEvent.data_quality_configs:type_name -> google.cloud.dataplex.v1.DataScanEvent.DataQualityAppliedConfigs + 31, // 25: google.cloud.dataplex.v1.DataScanEvent.post_scan_actions_result:type_name -> google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult + 13, // 26: google.cloud.dataplex.v1.DataQualityScanRuleResult.rule_type:type_name -> google.cloud.dataplex.v1.DataQualityScanRuleResult.RuleType + 14, // 27: google.cloud.dataplex.v1.DataQualityScanRuleResult.evalution_type:type_name -> google.cloud.dataplex.v1.DataQualityScanRuleResult.EvaluationType + 15, // 28: google.cloud.dataplex.v1.DataQualityScanRuleResult.result:type_name -> google.cloud.dataplex.v1.DataQualityScanRuleResult.Result + 25, // 29: google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetails.parameters:type_name -> google.cloud.dataplex.v1.DiscoveryEvent.ConfigDetails.ParametersEntry + 1, // 30: google.cloud.dataplex.v1.DiscoveryEvent.EntityDetails.type:type_name -> google.cloud.dataplex.v1.DiscoveryEvent.EntityType + 1, // 31: google.cloud.dataplex.v1.DiscoveryEvent.PartitionDetails.type:type_name -> google.cloud.dataplex.v1.DiscoveryEvent.EntityType + 7, // 32: google.cloud.dataplex.v1.SessionEvent.QueryDetail.engine:type_name -> google.cloud.dataplex.v1.SessionEvent.QueryDetail.Engine + 35, // 33: google.cloud.dataplex.v1.SessionEvent.QueryDetail.duration:type_name -> google.protobuf.Duration + 32, // 34: google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.dimension_passed:type_name -> google.cloud.dataplex.v1.DataScanEvent.DataQualityResult.DimensionPassedEntry + 33, // 35: google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult.bigquery_export_result:type_name -> google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult.BigQueryExportResult + 12, // 36: google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult.BigQueryExportResult.state:type_name -> google.cloud.dataplex.v1.DataScanEvent.PostScanActionsResult.BigQueryExportResult.State + 37, // [37:37] is the sub-list for method output_type + 37, // [37:37] is the sub-list for method input_type + 37, // [37:37] is the sub-list for extension type_name + 37, // [37:37] is the sub-list for extension extendee + 0, // [0:37] is the sub-list for field type_name } func init() { file_google_cloud_dataplex_v1_logs_proto_init() } @@ -2135,7 +3072,7 @@ func file_google_cloud_dataplex_v1_logs_proto_init() { } } file_google_cloud_dataplex_v1_logs_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiscoveryEvent_ConfigDetails); i { + switch v := v.(*DataQualityScanRuleResult); i { case 0: return &v.state case 1: @@ -2147,7 +3084,7 @@ func file_google_cloud_dataplex_v1_logs_proto_init() { } } file_google_cloud_dataplex_v1_logs_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiscoveryEvent_EntityDetails); i { + switch v := v.(*DiscoveryEvent_ConfigDetails); i { case 0: return &v.state case 1: @@ -2159,7 +3096,7 @@ func file_google_cloud_dataplex_v1_logs_proto_init() { } } file_google_cloud_dataplex_v1_logs_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiscoveryEvent_PartitionDetails); i { + switch v := v.(*DiscoveryEvent_EntityDetails); i { case 0: return &v.state case 1: @@ -2171,6 +3108,18 @@ func file_google_cloud_dataplex_v1_logs_proto_init() { } } file_google_cloud_dataplex_v1_logs_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DiscoveryEvent_PartitionDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_logs_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiscoveryEvent_ActionDetails); i { case 0: return &v.state @@ -2182,7 +3131,7 @@ func file_google_cloud_dataplex_v1_logs_proto_init() { return nil } } - file_google_cloud_dataplex_v1_logs_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_dataplex_v1_logs_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SessionEvent_QueryDetail); i { case 0: return &v.state @@ -2194,7 +3143,7 @@ func file_google_cloud_dataplex_v1_logs_proto_init() { return nil } } - file_google_cloud_dataplex_v1_logs_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_dataplex_v1_logs_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataScanEvent_DataProfileResult); i { case 0: return &v.state @@ -2206,7 +3155,7 @@ func file_google_cloud_dataplex_v1_logs_proto_init() { return nil } } - file_google_cloud_dataplex_v1_logs_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_dataplex_v1_logs_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataScanEvent_DataQualityResult); i { case 0: return &v.state @@ -2218,6 +3167,54 @@ func file_google_cloud_dataplex_v1_logs_proto_init() { return nil } } + file_google_cloud_dataplex_v1_logs_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataScanEvent_DataProfileAppliedConfigs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_logs_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataScanEvent_DataQualityAppliedConfigs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_logs_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataScanEvent_PostScanActionsResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_logs_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataScanEvent_PostScanActionsResult_BigQueryExportResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_google_cloud_dataplex_v1_logs_proto_msgTypes[0].OneofWrappers = []interface{}{ (*DiscoveryEvent_Config)(nil), @@ -2231,14 +3228,16 @@ func file_google_cloud_dataplex_v1_logs_proto_init() { file_google_cloud_dataplex_v1_logs_proto_msgTypes[3].OneofWrappers = []interface{}{ (*DataScanEvent_DataProfile)(nil), (*DataScanEvent_DataQuality)(nil), + (*DataScanEvent_DataProfileConfigs)(nil), + (*DataScanEvent_DataQualityConfigs)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_dataplex_v1_logs_proto_rawDesc, - NumEnums: 11, - NumMessages: 13, + NumEnums: 16, + NumMessages: 18, NumExtensions: 0, NumServices: 0, }, diff --git a/dataplex/apiv1/dataplexpb/security.pb.go b/dataplex/apiv1/dataplexpb/security.pb.go new file mode 100755 index 00000000000..40bf6a47fdc --- /dev/null +++ b/dataplex/apiv1/dataplexpb/security.pb.go @@ -0,0 +1,269 @@ +// 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.30.0 +// protoc v4.23.2 +// source: google/cloud/dataplex/v1/security.proto + +package dataplexpb + +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) +) + +// ResourceAccessSpec holds the access control configuration to be enforced +// on the resources, for example, Cloud Storage bucket, BigQuery dataset, +// BigQuery table. +type ResourceAccessSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. The format of strings follows the pattern followed by IAM in the + // bindings. user:{email}, serviceAccount:{email} group:{email}. + // The set of principals to be granted reader role on the resource. + Readers []string `protobuf:"bytes,1,rep,name=readers,proto3" json:"readers,omitempty"` + // Optional. The set of principals to be granted writer role on the resource. + Writers []string `protobuf:"bytes,2,rep,name=writers,proto3" json:"writers,omitempty"` + // Optional. The set of principals to be granted owner role on the resource. + Owners []string `protobuf:"bytes,3,rep,name=owners,proto3" json:"owners,omitempty"` +} + +func (x *ResourceAccessSpec) Reset() { + *x = ResourceAccessSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_security_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResourceAccessSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceAccessSpec) ProtoMessage() {} + +func (x *ResourceAccessSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_security_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 ResourceAccessSpec.ProtoReflect.Descriptor instead. +func (*ResourceAccessSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_security_proto_rawDescGZIP(), []int{0} +} + +func (x *ResourceAccessSpec) GetReaders() []string { + if x != nil { + return x.Readers + } + return nil +} + +func (x *ResourceAccessSpec) GetWriters() []string { + if x != nil { + return x.Writers + } + return nil +} + +func (x *ResourceAccessSpec) GetOwners() []string { + if x != nil { + return x.Owners + } + return nil +} + +// DataAccessSpec holds the access control configuration to be enforced on data +// stored within resources (eg: rows, columns in BigQuery Tables). When +// associated with data, the data is only accessible to +// principals explicitly granted access through the DataAccessSpec. Principals +// with access to the containing resource are not implicitly granted access. +type DataAccessSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. The format of strings follows the pattern followed by IAM in the + // bindings. user:{email}, serviceAccount:{email} group:{email}. + // The set of principals to be granted reader role on data + // stored within resources. + Readers []string `protobuf:"bytes,1,rep,name=readers,proto3" json:"readers,omitempty"` +} + +func (x *DataAccessSpec) Reset() { + *x = DataAccessSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataplex_v1_security_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataAccessSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataAccessSpec) ProtoMessage() {} + +func (x *DataAccessSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataplex_v1_security_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 DataAccessSpec.ProtoReflect.Descriptor instead. +func (*DataAccessSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_security_proto_rawDescGZIP(), []int{1} +} + +func (x *DataAccessSpec) GetReaders() []string { + if x != nil { + return x.Readers + } + return nil +} + +var File_google_cloud_dataplex_v1_security_proto protoreflect.FileDescriptor + +var file_google_cloud_dataplex_v1_security_proto_rawDesc = []byte{ + 0x0a, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x63, 0x75, 0x72, + 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 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, 0x6f, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1d, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x07, 0x77, 0x72, 0x69, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6f, + 0x77, 0x6e, 0x65, 0x72, 0x73, 0x22, 0x2f, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1d, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x72, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x42, 0x69, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_dataplex_v1_security_proto_rawDescOnce sync.Once + file_google_cloud_dataplex_v1_security_proto_rawDescData = file_google_cloud_dataplex_v1_security_proto_rawDesc +) + +func file_google_cloud_dataplex_v1_security_proto_rawDescGZIP() []byte { + file_google_cloud_dataplex_v1_security_proto_rawDescOnce.Do(func() { + file_google_cloud_dataplex_v1_security_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_dataplex_v1_security_proto_rawDescData) + }) + return file_google_cloud_dataplex_v1_security_proto_rawDescData +} + +var file_google_cloud_dataplex_v1_security_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_google_cloud_dataplex_v1_security_proto_goTypes = []interface{}{ + (*ResourceAccessSpec)(nil), // 0: google.cloud.dataplex.v1.ResourceAccessSpec + (*DataAccessSpec)(nil), // 1: google.cloud.dataplex.v1.DataAccessSpec +} +var file_google_cloud_dataplex_v1_security_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_dataplex_v1_security_proto_init() } +func file_google_cloud_dataplex_v1_security_proto_init() { + if File_google_cloud_dataplex_v1_security_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_dataplex_v1_security_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResourceAccessSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataplex_v1_security_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataAccessSpec); 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_dataplex_v1_security_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_dataplex_v1_security_proto_goTypes, + DependencyIndexes: file_google_cloud_dataplex_v1_security_proto_depIdxs, + MessageInfos: file_google_cloud_dataplex_v1_security_proto_msgTypes, + }.Build() + File_google_cloud_dataplex_v1_security_proto = out.File + file_google_cloud_dataplex_v1_security_proto_rawDesc = nil + file_google_cloud_dataplex_v1_security_proto_goTypes = nil + file_google_cloud_dataplex_v1_security_proto_depIdxs = nil +} diff --git a/dataplex/apiv1/dataplexpb/service.pb.go b/dataplex/apiv1/dataplexpb/service.pb.go index 2ec06979d98..d59c565fef0 100755 --- a/dataplex/apiv1/dataplexpb/service.pb.go +++ b/dataplex/apiv1/dataplexpb/service.pb.go @@ -2114,6 +2114,22 @@ type RunTaskRequest struct { // Required. The resource name of the task: // `projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}`. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. User-defined labels for the task. If the map is left empty, the + // task will run with existing labels from task definition. If the map + // contains an entry with a new key, the same will be added to existing set of + // labels. If the map contains an entry with an existing label key in task + // definition, the task will run with new label value for that entry. Clearing + // an existing label will require label value to be explicitly set to a hyphen + // "-". The label value cannot be empty. + Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. Execution spec arguments. If the map is left empty, the task will + // run with existing execution spec args from task definition. If the map + // contains an entry with a new key, the same will be added to existing set of + // args. If the map contains an entry with an existing arg key in task + // definition, the task will run with new arg value for that entry. Clearing + // an existing arg will require arg value to be explicitly set to a hyphen + // "-". The arg value cannot be empty. + Args map[string]string `protobuf:"bytes,4,rep,name=args,proto3" json:"args,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *RunTaskRequest) Reset() { @@ -2155,6 +2171,20 @@ func (x *RunTaskRequest) GetName() string { return "" } +func (x *RunTaskRequest) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *RunTaskRequest) GetArgs() map[string]string { + if x != nil { + return x.Args + } + return nil +} + type RunTaskResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3260,531 +3290,548 @@ var file_google_cloud_dataplex_v1_service_proto_rawDesc = []byte{ 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x0a, 0x1b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, - 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x75, 0x6e, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, - 0x1c, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x42, 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4a, - 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0x95, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, - 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, - 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, - 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, - 0x6d, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, - 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x4b, - 0x0a, 0x10, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x0a, 0x1b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x18, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, + 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xde, 0x02, 0x0a, 0x0e, 0x52, 0x75, 0x6e, 0x54, + 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x61, 0x6b, 0x65, 0x52, 0x06, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x28, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, - 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0xd4, 0x01, 0x0a, 0x18, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x4c, 0x0a, 0x0b, 0x65, 0x6e, 0x76, - 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, - 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, - 0x79, 0x22, 0x5b, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, - 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, - 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x76, - 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xda, - 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, - 0x41, 0x1e, 0x0a, 0x1c, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x61, 0x6b, 0x65, - 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, - 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x8d, 0x01, 0x0a, 0x18, - 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x65, 0x6e, 0x76, 0x69, - 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, - 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x58, 0x0a, 0x15, 0x47, - 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x75, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x4b, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x75, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x41, 0x72, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, + 0x61, 0x72, 0x67, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x37, 0x0a, 0x09, 0x41, 0x72, 0x67, 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, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x42, 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x54, + 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x03, 0x6a, + 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x22, 0x95, 0x01, 0x0a, + 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, + 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x6d, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0x4b, 0x0a, 0x10, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x0a, 0x1b, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0xfc, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, + 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, + 0x61, 0x6b, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x0e, 0x65, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, + 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x22, + 0xd4, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x4c, + 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0d, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x5b, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0xda, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, + 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x4c, 0x61, 0x6b, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, + 0x22, 0x8d, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, + 0x0c, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x65, 0x6e, 0x76, 0x69, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x22, 0x58, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, + 0x23, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x4c, + 0x69, 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, - 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, - 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, - 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x7d, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, - 0x08, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xac, 0x32, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, - 0x78, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc3, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x4c, 0x61, 0x6b, 0x65, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, - 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x69, 0xca, 0x41, 0x19, 0x0a, 0x04, 0x4c, 0x61, 0x6b, 0x65, 0x12, 0x11, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xda, 0x41, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6c, 0x61, 0x6b, 0x65, 0x2c, - 0x6c, 0x61, 0x6b, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x3a, 0x04, 0x6c, - 0x61, 0x6b, 0x65, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x12, 0xc5, - 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x6b, 0x65, 0x12, 0x2b, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, - 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6b, 0xca, 0x41, 0x19, 0x0a, 0x04, - 0x4c, 0x61, 0x6b, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x10, 0x6c, 0x61, 0x6b, 0x65, 0x2c, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, - 0x3a, 0x04, 0x6c, 0x61, 0x6b, 0x65, 0x32, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6c, 0x61, 0x6b, - 0x65, 0x2e, 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, 0x6c, 0x61, - 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xbf, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x4c, 0x61, 0x6b, 0x65, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, - 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x65, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x2a, 0x29, 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, - 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xa0, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, - 0x74, 0x4c, 0x61, 0x6b, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x6b, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x4c, 0x61, 0x6b, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x3a, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, - 0x12, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x7d, 0x0a, 0x14, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, + 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xac, 0x32, 0x0a, 0x0f, 0x44, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc3, 0x01, + 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x6b, 0x65, 0x12, 0x2b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x61, + 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x69, 0xca, 0x41, 0x19, 0x0a, 0x04, 0x4c, + 0x61, 0x6b, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, + 0x6c, 0x61, 0x6b, 0x65, 0x2c, 0x6c, 0x61, 0x6b, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x31, 0x3a, 0x04, 0x6c, 0x61, 0x6b, 0x65, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6c, 0x61, + 0x6b, 0x65, 0x73, 0x12, 0xc5, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, + 0x6b, 0x65, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6b, + 0xca, 0x41, 0x19, 0x0a, 0x04, 0x4c, 0x61, 0x6b, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x10, 0x6c, + 0x61, 0x6b, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x3a, 0x04, 0x6c, 0x61, 0x6b, 0x65, 0x32, 0x2e, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x6c, 0x61, 0x6b, 0x65, 0x2e, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xbf, 0x01, 0x0a, 0x0a, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x6b, 0x65, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x6b, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x65, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2b, 0x2a, 0x29, 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, 0x7d, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x12, 0x8d, 0x01, 0x0a, 0x07, - 0x47, 0x65, 0x74, 0x4c, 0x61, 0x6b, 0x65, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xa0, 0x01, + 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x6b, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x6b, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x61, 0x6b, - 0x65, 0x22, 0x38, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, - 0x12, 0x29, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb8, 0x01, 0x0a, 0x0f, - 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x6b, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, - 0x61, 0x6b, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x44, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x35, 0x12, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xcb, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, - 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x71, 0xca, 0x41, 0x19, 0x0a, 0x04, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x11, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, - 0x41, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x7a, 0x6f, 0x6e, 0x65, 0x2c, 0x7a, 0x6f, - 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x3a, 0x04, 0x7a, 0x6f, 0x6e, - 0x65, 0x22, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x7a, - 0x6f, 0x6e, 0x65, 0x73, 0x12, 0xcd, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5a, - 0x6f, 0x6e, 0x65, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, - 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x73, 0xca, 0x41, 0x19, 0x0a, 0x04, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x10, - 0x7a, 0x6f, 0x6e, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x3a, 0x04, 0x7a, 0x6f, 0x6e, 0x65, 0x32, 0x36, 0x2f, 0x76, - 0x31, 0x2f, 0x7b, 0x7a, 0x6f, 0x6e, 0x65, 0x2e, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, - 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc7, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5a, - 0x6f, 0x6e, 0x65, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, - 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x6d, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x2a, 0x31, 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, 0x6c, 0x61, - 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xa8, - 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x67, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x6b, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, + 0x12, 0x8d, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x6b, 0x65, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x5a, 0x6f, 0x6e, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x6b, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x61, 0x6b, 0x65, 0x22, 0x38, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x7d, + 0x12, 0xb8, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x6b, 0x65, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x6b, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, - 0x2f, 0x2a, 0x7d, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x07, 0x47, 0x65, - 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x5a, 0x6f, 0x6e, 0x65, 0x22, - 0x40, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, - 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, - 0x7d, 0x12, 0xc0, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, - 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xda, 0x01, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, - 0x73, 0x73, 0x65, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xcb, 0x01, 0x0a, 0x0a, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5a, 0x6f, 0x6e, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x71, 0xca, 0x41, 0x19, 0x0a, 0x04, 0x5a, 0x6f, 0x6e, + 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x7a, 0x6f, + 0x6e, 0x65, 0x2c, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, + 0x3a, 0x04, 0x7a, 0x6f, 0x6e, 0x65, 0x22, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, + 0x2f, 0x2a, 0x7d, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0xcd, 0x01, 0x0a, 0x0a, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, + 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x73, 0xca, 0x41, 0x19, 0x0a, 0x04, 0x5a, 0x6f, 0x6e, 0x65, 0x12, + 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xda, 0x41, 0x10, 0x7a, 0x6f, 0x6e, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x3a, 0x04, 0x7a, 0x6f, 0x6e, + 0x65, 0x32, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x7a, 0x6f, 0x6e, 0x65, 0x2e, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, + 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc7, 0x01, 0x0a, 0x0a, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, + 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6d, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, + 0x2a, 0x31, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0xa8, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x5a, 0x6f, 0x6e, 0x65, + 0x73, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x5a, 0x6f, 0x6e, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0xda, 0x41, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x95, + 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, - 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x7e, 0xca, 0x41, 0x1a, 0x0a, 0x05, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x11, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0xda, 0x41, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2c, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x3a, 0x05, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x22, 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, - 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, - 0x73, 0x12, 0xdd, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, - 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x80, - 0x01, 0xca, 0x41, 0x1a, 0x0a, 0x05, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x11, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, - 0x11, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, - 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x32, - 0x40, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, - 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, - 0x7d, 0x12, 0xd2, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, - 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x76, - 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x2a, 0x3a, 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, 0x6c, 0x61, 0x6b, - 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x73, - 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb4, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x4b, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x3c, 0x12, 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, + 0x5a, 0x6f, 0x6e, 0x65, 0x22, 0x40, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x33, 0x12, 0x31, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, - 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0xa1, 0x01, - 0x0a, 0x08, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x29, 0x2e, 0x67, 0x6f, 0x6f, + 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc0, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x5a, + 0x6f, 0x6e, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x22, 0x49, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, - 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, - 0x7d, 0x12, 0xcb, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0xda, 0x41, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, + 0x7d, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xda, 0x01, 0x0a, 0x0b, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, - 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x12, 0x44, 0x2f, 0x76, 0x31, 0x2f, 0x7b, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, - 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0xcb, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2b, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, - 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x71, 0xca, 0x41, 0x19, 0x0a, - 0x04, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x2c, 0x74, 0x61, 0x73, 0x6b, 0x2c, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x39, 0x3a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x31, 0x2f, 0x76, 0x31, 0x2f, + 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7e, 0xca, 0x41, 0x1a, 0x0a, 0x05, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x2c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x43, 0x3a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x22, 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, - 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0xcd, 0x01, - 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2b, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x73, 0xca, 0x41, 0x19, 0x0a, 0x04, 0x54, - 0x61, 0x73, 0x6b, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x10, 0x74, 0x61, 0x73, 0x6b, 0x2c, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x3a, - 0x04, 0x74, 0x61, 0x73, 0x6b, 0x32, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x74, 0x61, 0x73, 0x6b, + 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0xdd, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, + 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x01, 0xca, 0x41, 0x1a, 0x0a, 0x05, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xda, 0x41, 0x11, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, 0x05, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x32, 0x40, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 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, 0x6c, 0x61, 0x6b, - 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc7, 0x01, - 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x2b, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6d, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x33, 0x2a, 0x31, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x74, - 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xa8, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, - 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, - 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, + 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x73, + 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd2, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, + 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x76, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, + 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x2a, + 0x3a, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, + 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb4, 0x01, 0x0a, 0x0a, + 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, + 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, + 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x22, 0x49, 0xda, 0x41, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 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, 0x6c, 0x61, 0x6b, + 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x73, + 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xcb, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x55, 0xda, + 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x12, 0x44, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, + 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xcb, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x61, 0x73, 0x6b, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x71, 0xca, 0x41, 0x19, 0x0a, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x13, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x74, 0x61, 0x73, 0x6b, 0x2c, 0x74, 0x61, 0x73, 0x6b, + 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x3a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x61, 0x73, - 0x6b, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x28, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x73, - 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, - 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x22, 0x40, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, - 0x2a, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xac, 0x01, 0x0a, 0x08, 0x4c, - 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, - 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, - 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x73, 0x6b, - 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x07, 0x52, 0x75, - 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x75, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x54, 0x61, - 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0xda, 0x41, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x3a, 0x01, 0x2a, 0x22, 0x35, 0x2f, 0x76, + 0x6b, 0x73, 0x12, 0xcd, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x73, 0xca, + 0x41, 0x19, 0x0a, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x10, 0x74, 0x61, + 0x73, 0x6b, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x3e, 0x3a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x32, 0x36, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x74, 0x61, 0x73, 0x6b, 0x2e, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, + 0x2a, 0x7d, 0x12, 0xc7, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6d, 0xca, + 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x2a, 0x31, 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, 0x6c, 0x61, 0x6b, 0x65, + 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xa8, 0x01, 0x0a, + 0x09, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x42, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, + 0x7d, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x54, + 0x61, 0x73, 0x6b, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x22, 0x40, 0xda, + 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 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, 0x6c, - 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, - 0x72, 0x75, 0x6e, 0x12, 0x99, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x27, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x2a, 0x7d, 0x12, + 0xac, 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x29, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, - 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x22, 0x47, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x38, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, - 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x12, - 0xa2, 0x01, 0x0a, 0x09, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x12, 0x2a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, - 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x22, 0x51, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, - 0x3a, 0x01, 0x2a, 0x22, 0x3f, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x12, 0xfd, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, - 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, - 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x94, 0x01, - 0xca, 0x41, 0x20, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xda, 0x41, 0x21, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x6e, 0x76, - 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x3a, 0x0b, 0x65, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x38, 0x2f, 0x76, 0x31, 0x2f, - 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, - 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0xff, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x49, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, + 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x12, 0xa7, + 0x01, 0x0a, 0x07, 0x52, 0x75, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, - 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, - 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x96, 0x01, - 0xca, 0x41, 0x20, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xda, 0x41, 0x17, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x53, 0x3a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x32, 0x44, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 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, 0x6c, - 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xdc, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x2e, 0x67, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x75, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x47, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x3a, 0x01, + 0x2a, 0x22, 0x35, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x73, 0x6b, + 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x75, 0x6e, 0x12, 0x99, 0x01, 0x0a, 0x06, 0x47, 0x65, 0x74, + 0x4a, 0x6f, 0x62, 0x12, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, - 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x74, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x2a, 0x38, 0x2f, 0x76, 0x31, + 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x22, 0x47, 0xda, 0x41, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x38, 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, 0x6c, 0x61, 0x6b, + 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 0x62, + 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xa2, 0x01, 0x0a, 0x09, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4a, + 0x6f, 0x62, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x51, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x3a, 0x01, 0x2a, 0x22, 0x3f, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, + 0x2f, 0x2a, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x2a, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, + 0x2a, 0x7d, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0xfd, 0x01, 0x0a, 0x11, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, + 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x94, 0x01, 0xca, 0x41, 0x20, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x21, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x2c, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x6e, + 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x47, 0x3a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x6e, 0x76, + 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0xff, 0x01, 0x0a, 0x11, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, + 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x96, 0x01, 0xca, 0x41, 0x20, 0x0a, 0x0b, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x17, 0x65, 0x6e, 0x76, 0x69, 0x72, + 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, 0x3a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x32, 0x44, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x76, 0x69, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xdc, 0x01, 0x0a, 0x11, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, + 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x74, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, + 0x2a, 0x38, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, + 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc4, 0x01, 0x0a, 0x10, 0x4c, + 0x69, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, + 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, + 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0xb1, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x47, 0xda, 0x41, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x38, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc4, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, - 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, + 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc3, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, 0x43, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, + 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, + 0x2a, 0x7d, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x4b, 0xca, 0x41, 0x17, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 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, 0x68, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x76, - 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x49, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x3a, 0x12, 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, - 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0xb1, 0x01, 0x0a, - 0x0e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, - 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x47, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x38, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, - 0x2f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, - 0x12, 0xc3, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x54, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x45, 0x12, 0x43, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x4b, 0xca, 0x41, 0x17, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, - 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 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, 0x68, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, - 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, - 0x78, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, - 0x70, 0x62, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3799,7 +3846,7 @@ func file_google_cloud_dataplex_v1_service_proto_rawDescGZIP() []byte { return file_google_cloud_dataplex_v1_service_proto_rawDescData } -var file_google_cloud_dataplex_v1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 43) +var file_google_cloud_dataplex_v1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 45) var file_google_cloud_dataplex_v1_service_proto_goTypes = []interface{}{ (*CreateLakeRequest)(nil), // 0: google.cloud.dataplex.v1.CreateLakeRequest (*UpdateLakeRequest)(nil), // 1: google.cloud.dataplex.v1.UpdateLakeRequest @@ -3844,117 +3891,121 @@ var file_google_cloud_dataplex_v1_service_proto_goTypes = []interface{}{ (*GetEnvironmentRequest)(nil), // 40: google.cloud.dataplex.v1.GetEnvironmentRequest (*ListSessionsRequest)(nil), // 41: google.cloud.dataplex.v1.ListSessionsRequest (*ListSessionsResponse)(nil), // 42: google.cloud.dataplex.v1.ListSessionsResponse - (*Lake)(nil), // 43: google.cloud.dataplex.v1.Lake - (*fieldmaskpb.FieldMask)(nil), // 44: google.protobuf.FieldMask - (*Action)(nil), // 45: google.cloud.dataplex.v1.Action - (*Zone)(nil), // 46: google.cloud.dataplex.v1.Zone - (*Asset)(nil), // 47: google.cloud.dataplex.v1.Asset - (*timestamppb.Timestamp)(nil), // 48: google.protobuf.Timestamp - (*Task)(nil), // 49: google.cloud.dataplex.v1.Task - (*Job)(nil), // 50: google.cloud.dataplex.v1.Job - (*Environment)(nil), // 51: google.cloud.dataplex.v1.Environment - (*Session)(nil), // 52: google.cloud.dataplex.v1.Session - (*longrunningpb.Operation)(nil), // 53: google.longrunning.Operation - (*emptypb.Empty)(nil), // 54: google.protobuf.Empty + nil, // 43: google.cloud.dataplex.v1.RunTaskRequest.LabelsEntry + nil, // 44: google.cloud.dataplex.v1.RunTaskRequest.ArgsEntry + (*Lake)(nil), // 45: google.cloud.dataplex.v1.Lake + (*fieldmaskpb.FieldMask)(nil), // 46: google.protobuf.FieldMask + (*Action)(nil), // 47: google.cloud.dataplex.v1.Action + (*Zone)(nil), // 48: google.cloud.dataplex.v1.Zone + (*Asset)(nil), // 49: google.cloud.dataplex.v1.Asset + (*timestamppb.Timestamp)(nil), // 50: google.protobuf.Timestamp + (*Task)(nil), // 51: google.cloud.dataplex.v1.Task + (*Job)(nil), // 52: google.cloud.dataplex.v1.Job + (*Environment)(nil), // 53: google.cloud.dataplex.v1.Environment + (*Session)(nil), // 54: google.cloud.dataplex.v1.Session + (*longrunningpb.Operation)(nil), // 55: google.longrunning.Operation + (*emptypb.Empty)(nil), // 56: google.protobuf.Empty } var file_google_cloud_dataplex_v1_service_proto_depIdxs = []int32{ - 43, // 0: google.cloud.dataplex.v1.CreateLakeRequest.lake:type_name -> google.cloud.dataplex.v1.Lake - 44, // 1: google.cloud.dataplex.v1.UpdateLakeRequest.update_mask:type_name -> google.protobuf.FieldMask - 43, // 2: google.cloud.dataplex.v1.UpdateLakeRequest.lake:type_name -> google.cloud.dataplex.v1.Lake - 43, // 3: google.cloud.dataplex.v1.ListLakesResponse.lakes:type_name -> google.cloud.dataplex.v1.Lake - 45, // 4: google.cloud.dataplex.v1.ListActionsResponse.actions:type_name -> google.cloud.dataplex.v1.Action - 46, // 5: google.cloud.dataplex.v1.CreateZoneRequest.zone:type_name -> google.cloud.dataplex.v1.Zone - 44, // 6: google.cloud.dataplex.v1.UpdateZoneRequest.update_mask:type_name -> google.protobuf.FieldMask - 46, // 7: google.cloud.dataplex.v1.UpdateZoneRequest.zone:type_name -> google.cloud.dataplex.v1.Zone - 46, // 8: google.cloud.dataplex.v1.ListZonesResponse.zones:type_name -> google.cloud.dataplex.v1.Zone - 47, // 9: google.cloud.dataplex.v1.CreateAssetRequest.asset:type_name -> google.cloud.dataplex.v1.Asset - 44, // 10: google.cloud.dataplex.v1.UpdateAssetRequest.update_mask:type_name -> google.protobuf.FieldMask - 47, // 11: google.cloud.dataplex.v1.UpdateAssetRequest.asset:type_name -> google.cloud.dataplex.v1.Asset - 47, // 12: google.cloud.dataplex.v1.ListAssetsResponse.assets:type_name -> google.cloud.dataplex.v1.Asset - 48, // 13: google.cloud.dataplex.v1.OperationMetadata.create_time:type_name -> google.protobuf.Timestamp - 48, // 14: google.cloud.dataplex.v1.OperationMetadata.end_time:type_name -> google.protobuf.Timestamp - 49, // 15: google.cloud.dataplex.v1.CreateTaskRequest.task:type_name -> google.cloud.dataplex.v1.Task - 44, // 16: google.cloud.dataplex.v1.UpdateTaskRequest.update_mask:type_name -> google.protobuf.FieldMask - 49, // 17: google.cloud.dataplex.v1.UpdateTaskRequest.task:type_name -> google.cloud.dataplex.v1.Task - 49, // 18: google.cloud.dataplex.v1.ListTasksResponse.tasks:type_name -> google.cloud.dataplex.v1.Task - 50, // 19: google.cloud.dataplex.v1.RunTaskResponse.job:type_name -> google.cloud.dataplex.v1.Job - 50, // 20: google.cloud.dataplex.v1.ListJobsResponse.jobs:type_name -> google.cloud.dataplex.v1.Job - 51, // 21: google.cloud.dataplex.v1.CreateEnvironmentRequest.environment:type_name -> google.cloud.dataplex.v1.Environment - 44, // 22: google.cloud.dataplex.v1.UpdateEnvironmentRequest.update_mask:type_name -> google.protobuf.FieldMask - 51, // 23: google.cloud.dataplex.v1.UpdateEnvironmentRequest.environment:type_name -> google.cloud.dataplex.v1.Environment - 51, // 24: google.cloud.dataplex.v1.ListEnvironmentsResponse.environments:type_name -> google.cloud.dataplex.v1.Environment - 52, // 25: google.cloud.dataplex.v1.ListSessionsResponse.sessions:type_name -> google.cloud.dataplex.v1.Session - 0, // 26: google.cloud.dataplex.v1.DataplexService.CreateLake:input_type -> google.cloud.dataplex.v1.CreateLakeRequest - 1, // 27: google.cloud.dataplex.v1.DataplexService.UpdateLake:input_type -> google.cloud.dataplex.v1.UpdateLakeRequest - 2, // 28: google.cloud.dataplex.v1.DataplexService.DeleteLake:input_type -> google.cloud.dataplex.v1.DeleteLakeRequest - 3, // 29: google.cloud.dataplex.v1.DataplexService.ListLakes:input_type -> google.cloud.dataplex.v1.ListLakesRequest - 7, // 30: google.cloud.dataplex.v1.DataplexService.GetLake:input_type -> google.cloud.dataplex.v1.GetLakeRequest - 5, // 31: google.cloud.dataplex.v1.DataplexService.ListLakeActions:input_type -> google.cloud.dataplex.v1.ListLakeActionsRequest - 8, // 32: google.cloud.dataplex.v1.DataplexService.CreateZone:input_type -> google.cloud.dataplex.v1.CreateZoneRequest - 9, // 33: google.cloud.dataplex.v1.DataplexService.UpdateZone:input_type -> google.cloud.dataplex.v1.UpdateZoneRequest - 10, // 34: google.cloud.dataplex.v1.DataplexService.DeleteZone:input_type -> google.cloud.dataplex.v1.DeleteZoneRequest - 11, // 35: google.cloud.dataplex.v1.DataplexService.ListZones:input_type -> google.cloud.dataplex.v1.ListZonesRequest - 14, // 36: google.cloud.dataplex.v1.DataplexService.GetZone:input_type -> google.cloud.dataplex.v1.GetZoneRequest - 13, // 37: google.cloud.dataplex.v1.DataplexService.ListZoneActions:input_type -> google.cloud.dataplex.v1.ListZoneActionsRequest - 15, // 38: google.cloud.dataplex.v1.DataplexService.CreateAsset:input_type -> google.cloud.dataplex.v1.CreateAssetRequest - 16, // 39: google.cloud.dataplex.v1.DataplexService.UpdateAsset:input_type -> google.cloud.dataplex.v1.UpdateAssetRequest - 17, // 40: google.cloud.dataplex.v1.DataplexService.DeleteAsset:input_type -> google.cloud.dataplex.v1.DeleteAssetRequest - 18, // 41: google.cloud.dataplex.v1.DataplexService.ListAssets:input_type -> google.cloud.dataplex.v1.ListAssetsRequest - 21, // 42: google.cloud.dataplex.v1.DataplexService.GetAsset:input_type -> google.cloud.dataplex.v1.GetAssetRequest - 20, // 43: google.cloud.dataplex.v1.DataplexService.ListAssetActions:input_type -> google.cloud.dataplex.v1.ListAssetActionsRequest - 23, // 44: google.cloud.dataplex.v1.DataplexService.CreateTask:input_type -> google.cloud.dataplex.v1.CreateTaskRequest - 24, // 45: google.cloud.dataplex.v1.DataplexService.UpdateTask:input_type -> google.cloud.dataplex.v1.UpdateTaskRequest - 25, // 46: google.cloud.dataplex.v1.DataplexService.DeleteTask:input_type -> google.cloud.dataplex.v1.DeleteTaskRequest - 26, // 47: google.cloud.dataplex.v1.DataplexService.ListTasks:input_type -> google.cloud.dataplex.v1.ListTasksRequest - 28, // 48: google.cloud.dataplex.v1.DataplexService.GetTask:input_type -> google.cloud.dataplex.v1.GetTaskRequest - 32, // 49: google.cloud.dataplex.v1.DataplexService.ListJobs:input_type -> google.cloud.dataplex.v1.ListJobsRequest - 30, // 50: google.cloud.dataplex.v1.DataplexService.RunTask:input_type -> google.cloud.dataplex.v1.RunTaskRequest - 29, // 51: google.cloud.dataplex.v1.DataplexService.GetJob:input_type -> google.cloud.dataplex.v1.GetJobRequest - 34, // 52: google.cloud.dataplex.v1.DataplexService.CancelJob:input_type -> google.cloud.dataplex.v1.CancelJobRequest - 35, // 53: google.cloud.dataplex.v1.DataplexService.CreateEnvironment:input_type -> google.cloud.dataplex.v1.CreateEnvironmentRequest - 36, // 54: google.cloud.dataplex.v1.DataplexService.UpdateEnvironment:input_type -> google.cloud.dataplex.v1.UpdateEnvironmentRequest - 37, // 55: google.cloud.dataplex.v1.DataplexService.DeleteEnvironment:input_type -> google.cloud.dataplex.v1.DeleteEnvironmentRequest - 38, // 56: google.cloud.dataplex.v1.DataplexService.ListEnvironments:input_type -> google.cloud.dataplex.v1.ListEnvironmentsRequest - 40, // 57: google.cloud.dataplex.v1.DataplexService.GetEnvironment:input_type -> google.cloud.dataplex.v1.GetEnvironmentRequest - 41, // 58: google.cloud.dataplex.v1.DataplexService.ListSessions:input_type -> google.cloud.dataplex.v1.ListSessionsRequest - 53, // 59: google.cloud.dataplex.v1.DataplexService.CreateLake:output_type -> google.longrunning.Operation - 53, // 60: google.cloud.dataplex.v1.DataplexService.UpdateLake:output_type -> google.longrunning.Operation - 53, // 61: google.cloud.dataplex.v1.DataplexService.DeleteLake:output_type -> google.longrunning.Operation - 4, // 62: google.cloud.dataplex.v1.DataplexService.ListLakes:output_type -> google.cloud.dataplex.v1.ListLakesResponse - 43, // 63: google.cloud.dataplex.v1.DataplexService.GetLake:output_type -> google.cloud.dataplex.v1.Lake - 6, // 64: google.cloud.dataplex.v1.DataplexService.ListLakeActions:output_type -> google.cloud.dataplex.v1.ListActionsResponse - 53, // 65: google.cloud.dataplex.v1.DataplexService.CreateZone:output_type -> google.longrunning.Operation - 53, // 66: google.cloud.dataplex.v1.DataplexService.UpdateZone:output_type -> google.longrunning.Operation - 53, // 67: google.cloud.dataplex.v1.DataplexService.DeleteZone:output_type -> google.longrunning.Operation - 12, // 68: google.cloud.dataplex.v1.DataplexService.ListZones:output_type -> google.cloud.dataplex.v1.ListZonesResponse - 46, // 69: google.cloud.dataplex.v1.DataplexService.GetZone:output_type -> google.cloud.dataplex.v1.Zone - 6, // 70: google.cloud.dataplex.v1.DataplexService.ListZoneActions:output_type -> google.cloud.dataplex.v1.ListActionsResponse - 53, // 71: google.cloud.dataplex.v1.DataplexService.CreateAsset:output_type -> google.longrunning.Operation - 53, // 72: google.cloud.dataplex.v1.DataplexService.UpdateAsset:output_type -> google.longrunning.Operation - 53, // 73: google.cloud.dataplex.v1.DataplexService.DeleteAsset:output_type -> google.longrunning.Operation - 19, // 74: google.cloud.dataplex.v1.DataplexService.ListAssets:output_type -> google.cloud.dataplex.v1.ListAssetsResponse - 47, // 75: google.cloud.dataplex.v1.DataplexService.GetAsset:output_type -> google.cloud.dataplex.v1.Asset - 6, // 76: google.cloud.dataplex.v1.DataplexService.ListAssetActions:output_type -> google.cloud.dataplex.v1.ListActionsResponse - 53, // 77: google.cloud.dataplex.v1.DataplexService.CreateTask:output_type -> google.longrunning.Operation - 53, // 78: google.cloud.dataplex.v1.DataplexService.UpdateTask:output_type -> google.longrunning.Operation - 53, // 79: google.cloud.dataplex.v1.DataplexService.DeleteTask:output_type -> google.longrunning.Operation - 27, // 80: google.cloud.dataplex.v1.DataplexService.ListTasks:output_type -> google.cloud.dataplex.v1.ListTasksResponse - 49, // 81: google.cloud.dataplex.v1.DataplexService.GetTask:output_type -> google.cloud.dataplex.v1.Task - 33, // 82: google.cloud.dataplex.v1.DataplexService.ListJobs:output_type -> google.cloud.dataplex.v1.ListJobsResponse - 31, // 83: google.cloud.dataplex.v1.DataplexService.RunTask:output_type -> google.cloud.dataplex.v1.RunTaskResponse - 50, // 84: google.cloud.dataplex.v1.DataplexService.GetJob:output_type -> google.cloud.dataplex.v1.Job - 54, // 85: google.cloud.dataplex.v1.DataplexService.CancelJob:output_type -> google.protobuf.Empty - 53, // 86: google.cloud.dataplex.v1.DataplexService.CreateEnvironment:output_type -> google.longrunning.Operation - 53, // 87: google.cloud.dataplex.v1.DataplexService.UpdateEnvironment:output_type -> google.longrunning.Operation - 53, // 88: google.cloud.dataplex.v1.DataplexService.DeleteEnvironment:output_type -> google.longrunning.Operation - 39, // 89: google.cloud.dataplex.v1.DataplexService.ListEnvironments:output_type -> google.cloud.dataplex.v1.ListEnvironmentsResponse - 51, // 90: google.cloud.dataplex.v1.DataplexService.GetEnvironment:output_type -> google.cloud.dataplex.v1.Environment - 42, // 91: google.cloud.dataplex.v1.DataplexService.ListSessions:output_type -> google.cloud.dataplex.v1.ListSessionsResponse - 59, // [59:92] is the sub-list for method output_type - 26, // [26:59] is the sub-list for method input_type - 26, // [26:26] is the sub-list for extension type_name - 26, // [26:26] is the sub-list for extension extendee - 0, // [0:26] is the sub-list for field type_name + 45, // 0: google.cloud.dataplex.v1.CreateLakeRequest.lake:type_name -> google.cloud.dataplex.v1.Lake + 46, // 1: google.cloud.dataplex.v1.UpdateLakeRequest.update_mask:type_name -> google.protobuf.FieldMask + 45, // 2: google.cloud.dataplex.v1.UpdateLakeRequest.lake:type_name -> google.cloud.dataplex.v1.Lake + 45, // 3: google.cloud.dataplex.v1.ListLakesResponse.lakes:type_name -> google.cloud.dataplex.v1.Lake + 47, // 4: google.cloud.dataplex.v1.ListActionsResponse.actions:type_name -> google.cloud.dataplex.v1.Action + 48, // 5: google.cloud.dataplex.v1.CreateZoneRequest.zone:type_name -> google.cloud.dataplex.v1.Zone + 46, // 6: google.cloud.dataplex.v1.UpdateZoneRequest.update_mask:type_name -> google.protobuf.FieldMask + 48, // 7: google.cloud.dataplex.v1.UpdateZoneRequest.zone:type_name -> google.cloud.dataplex.v1.Zone + 48, // 8: google.cloud.dataplex.v1.ListZonesResponse.zones:type_name -> google.cloud.dataplex.v1.Zone + 49, // 9: google.cloud.dataplex.v1.CreateAssetRequest.asset:type_name -> google.cloud.dataplex.v1.Asset + 46, // 10: google.cloud.dataplex.v1.UpdateAssetRequest.update_mask:type_name -> google.protobuf.FieldMask + 49, // 11: google.cloud.dataplex.v1.UpdateAssetRequest.asset:type_name -> google.cloud.dataplex.v1.Asset + 49, // 12: google.cloud.dataplex.v1.ListAssetsResponse.assets:type_name -> google.cloud.dataplex.v1.Asset + 50, // 13: google.cloud.dataplex.v1.OperationMetadata.create_time:type_name -> google.protobuf.Timestamp + 50, // 14: google.cloud.dataplex.v1.OperationMetadata.end_time:type_name -> google.protobuf.Timestamp + 51, // 15: google.cloud.dataplex.v1.CreateTaskRequest.task:type_name -> google.cloud.dataplex.v1.Task + 46, // 16: google.cloud.dataplex.v1.UpdateTaskRequest.update_mask:type_name -> google.protobuf.FieldMask + 51, // 17: google.cloud.dataplex.v1.UpdateTaskRequest.task:type_name -> google.cloud.dataplex.v1.Task + 51, // 18: google.cloud.dataplex.v1.ListTasksResponse.tasks:type_name -> google.cloud.dataplex.v1.Task + 43, // 19: google.cloud.dataplex.v1.RunTaskRequest.labels:type_name -> google.cloud.dataplex.v1.RunTaskRequest.LabelsEntry + 44, // 20: google.cloud.dataplex.v1.RunTaskRequest.args:type_name -> google.cloud.dataplex.v1.RunTaskRequest.ArgsEntry + 52, // 21: google.cloud.dataplex.v1.RunTaskResponse.job:type_name -> google.cloud.dataplex.v1.Job + 52, // 22: google.cloud.dataplex.v1.ListJobsResponse.jobs:type_name -> google.cloud.dataplex.v1.Job + 53, // 23: google.cloud.dataplex.v1.CreateEnvironmentRequest.environment:type_name -> google.cloud.dataplex.v1.Environment + 46, // 24: google.cloud.dataplex.v1.UpdateEnvironmentRequest.update_mask:type_name -> google.protobuf.FieldMask + 53, // 25: google.cloud.dataplex.v1.UpdateEnvironmentRequest.environment:type_name -> google.cloud.dataplex.v1.Environment + 53, // 26: google.cloud.dataplex.v1.ListEnvironmentsResponse.environments:type_name -> google.cloud.dataplex.v1.Environment + 54, // 27: google.cloud.dataplex.v1.ListSessionsResponse.sessions:type_name -> google.cloud.dataplex.v1.Session + 0, // 28: google.cloud.dataplex.v1.DataplexService.CreateLake:input_type -> google.cloud.dataplex.v1.CreateLakeRequest + 1, // 29: google.cloud.dataplex.v1.DataplexService.UpdateLake:input_type -> google.cloud.dataplex.v1.UpdateLakeRequest + 2, // 30: google.cloud.dataplex.v1.DataplexService.DeleteLake:input_type -> google.cloud.dataplex.v1.DeleteLakeRequest + 3, // 31: google.cloud.dataplex.v1.DataplexService.ListLakes:input_type -> google.cloud.dataplex.v1.ListLakesRequest + 7, // 32: google.cloud.dataplex.v1.DataplexService.GetLake:input_type -> google.cloud.dataplex.v1.GetLakeRequest + 5, // 33: google.cloud.dataplex.v1.DataplexService.ListLakeActions:input_type -> google.cloud.dataplex.v1.ListLakeActionsRequest + 8, // 34: google.cloud.dataplex.v1.DataplexService.CreateZone:input_type -> google.cloud.dataplex.v1.CreateZoneRequest + 9, // 35: google.cloud.dataplex.v1.DataplexService.UpdateZone:input_type -> google.cloud.dataplex.v1.UpdateZoneRequest + 10, // 36: google.cloud.dataplex.v1.DataplexService.DeleteZone:input_type -> google.cloud.dataplex.v1.DeleteZoneRequest + 11, // 37: google.cloud.dataplex.v1.DataplexService.ListZones:input_type -> google.cloud.dataplex.v1.ListZonesRequest + 14, // 38: google.cloud.dataplex.v1.DataplexService.GetZone:input_type -> google.cloud.dataplex.v1.GetZoneRequest + 13, // 39: google.cloud.dataplex.v1.DataplexService.ListZoneActions:input_type -> google.cloud.dataplex.v1.ListZoneActionsRequest + 15, // 40: google.cloud.dataplex.v1.DataplexService.CreateAsset:input_type -> google.cloud.dataplex.v1.CreateAssetRequest + 16, // 41: google.cloud.dataplex.v1.DataplexService.UpdateAsset:input_type -> google.cloud.dataplex.v1.UpdateAssetRequest + 17, // 42: google.cloud.dataplex.v1.DataplexService.DeleteAsset:input_type -> google.cloud.dataplex.v1.DeleteAssetRequest + 18, // 43: google.cloud.dataplex.v1.DataplexService.ListAssets:input_type -> google.cloud.dataplex.v1.ListAssetsRequest + 21, // 44: google.cloud.dataplex.v1.DataplexService.GetAsset:input_type -> google.cloud.dataplex.v1.GetAssetRequest + 20, // 45: google.cloud.dataplex.v1.DataplexService.ListAssetActions:input_type -> google.cloud.dataplex.v1.ListAssetActionsRequest + 23, // 46: google.cloud.dataplex.v1.DataplexService.CreateTask:input_type -> google.cloud.dataplex.v1.CreateTaskRequest + 24, // 47: google.cloud.dataplex.v1.DataplexService.UpdateTask:input_type -> google.cloud.dataplex.v1.UpdateTaskRequest + 25, // 48: google.cloud.dataplex.v1.DataplexService.DeleteTask:input_type -> google.cloud.dataplex.v1.DeleteTaskRequest + 26, // 49: google.cloud.dataplex.v1.DataplexService.ListTasks:input_type -> google.cloud.dataplex.v1.ListTasksRequest + 28, // 50: google.cloud.dataplex.v1.DataplexService.GetTask:input_type -> google.cloud.dataplex.v1.GetTaskRequest + 32, // 51: google.cloud.dataplex.v1.DataplexService.ListJobs:input_type -> google.cloud.dataplex.v1.ListJobsRequest + 30, // 52: google.cloud.dataplex.v1.DataplexService.RunTask:input_type -> google.cloud.dataplex.v1.RunTaskRequest + 29, // 53: google.cloud.dataplex.v1.DataplexService.GetJob:input_type -> google.cloud.dataplex.v1.GetJobRequest + 34, // 54: google.cloud.dataplex.v1.DataplexService.CancelJob:input_type -> google.cloud.dataplex.v1.CancelJobRequest + 35, // 55: google.cloud.dataplex.v1.DataplexService.CreateEnvironment:input_type -> google.cloud.dataplex.v1.CreateEnvironmentRequest + 36, // 56: google.cloud.dataplex.v1.DataplexService.UpdateEnvironment:input_type -> google.cloud.dataplex.v1.UpdateEnvironmentRequest + 37, // 57: google.cloud.dataplex.v1.DataplexService.DeleteEnvironment:input_type -> google.cloud.dataplex.v1.DeleteEnvironmentRequest + 38, // 58: google.cloud.dataplex.v1.DataplexService.ListEnvironments:input_type -> google.cloud.dataplex.v1.ListEnvironmentsRequest + 40, // 59: google.cloud.dataplex.v1.DataplexService.GetEnvironment:input_type -> google.cloud.dataplex.v1.GetEnvironmentRequest + 41, // 60: google.cloud.dataplex.v1.DataplexService.ListSessions:input_type -> google.cloud.dataplex.v1.ListSessionsRequest + 55, // 61: google.cloud.dataplex.v1.DataplexService.CreateLake:output_type -> google.longrunning.Operation + 55, // 62: google.cloud.dataplex.v1.DataplexService.UpdateLake:output_type -> google.longrunning.Operation + 55, // 63: google.cloud.dataplex.v1.DataplexService.DeleteLake:output_type -> google.longrunning.Operation + 4, // 64: google.cloud.dataplex.v1.DataplexService.ListLakes:output_type -> google.cloud.dataplex.v1.ListLakesResponse + 45, // 65: google.cloud.dataplex.v1.DataplexService.GetLake:output_type -> google.cloud.dataplex.v1.Lake + 6, // 66: google.cloud.dataplex.v1.DataplexService.ListLakeActions:output_type -> google.cloud.dataplex.v1.ListActionsResponse + 55, // 67: google.cloud.dataplex.v1.DataplexService.CreateZone:output_type -> google.longrunning.Operation + 55, // 68: google.cloud.dataplex.v1.DataplexService.UpdateZone:output_type -> google.longrunning.Operation + 55, // 69: google.cloud.dataplex.v1.DataplexService.DeleteZone:output_type -> google.longrunning.Operation + 12, // 70: google.cloud.dataplex.v1.DataplexService.ListZones:output_type -> google.cloud.dataplex.v1.ListZonesResponse + 48, // 71: google.cloud.dataplex.v1.DataplexService.GetZone:output_type -> google.cloud.dataplex.v1.Zone + 6, // 72: google.cloud.dataplex.v1.DataplexService.ListZoneActions:output_type -> google.cloud.dataplex.v1.ListActionsResponse + 55, // 73: google.cloud.dataplex.v1.DataplexService.CreateAsset:output_type -> google.longrunning.Operation + 55, // 74: google.cloud.dataplex.v1.DataplexService.UpdateAsset:output_type -> google.longrunning.Operation + 55, // 75: google.cloud.dataplex.v1.DataplexService.DeleteAsset:output_type -> google.longrunning.Operation + 19, // 76: google.cloud.dataplex.v1.DataplexService.ListAssets:output_type -> google.cloud.dataplex.v1.ListAssetsResponse + 49, // 77: google.cloud.dataplex.v1.DataplexService.GetAsset:output_type -> google.cloud.dataplex.v1.Asset + 6, // 78: google.cloud.dataplex.v1.DataplexService.ListAssetActions:output_type -> google.cloud.dataplex.v1.ListActionsResponse + 55, // 79: google.cloud.dataplex.v1.DataplexService.CreateTask:output_type -> google.longrunning.Operation + 55, // 80: google.cloud.dataplex.v1.DataplexService.UpdateTask:output_type -> google.longrunning.Operation + 55, // 81: google.cloud.dataplex.v1.DataplexService.DeleteTask:output_type -> google.longrunning.Operation + 27, // 82: google.cloud.dataplex.v1.DataplexService.ListTasks:output_type -> google.cloud.dataplex.v1.ListTasksResponse + 51, // 83: google.cloud.dataplex.v1.DataplexService.GetTask:output_type -> google.cloud.dataplex.v1.Task + 33, // 84: google.cloud.dataplex.v1.DataplexService.ListJobs:output_type -> google.cloud.dataplex.v1.ListJobsResponse + 31, // 85: google.cloud.dataplex.v1.DataplexService.RunTask:output_type -> google.cloud.dataplex.v1.RunTaskResponse + 52, // 86: google.cloud.dataplex.v1.DataplexService.GetJob:output_type -> google.cloud.dataplex.v1.Job + 56, // 87: google.cloud.dataplex.v1.DataplexService.CancelJob:output_type -> google.protobuf.Empty + 55, // 88: google.cloud.dataplex.v1.DataplexService.CreateEnvironment:output_type -> google.longrunning.Operation + 55, // 89: google.cloud.dataplex.v1.DataplexService.UpdateEnvironment:output_type -> google.longrunning.Operation + 55, // 90: google.cloud.dataplex.v1.DataplexService.DeleteEnvironment:output_type -> google.longrunning.Operation + 39, // 91: google.cloud.dataplex.v1.DataplexService.ListEnvironments:output_type -> google.cloud.dataplex.v1.ListEnvironmentsResponse + 53, // 92: google.cloud.dataplex.v1.DataplexService.GetEnvironment:output_type -> google.cloud.dataplex.v1.Environment + 42, // 93: google.cloud.dataplex.v1.DataplexService.ListSessions:output_type -> google.cloud.dataplex.v1.ListSessionsResponse + 61, // [61:94] is the sub-list for method output_type + 28, // [28:61] is the sub-list for method input_type + 28, // [28:28] is the sub-list for extension type_name + 28, // [28:28] is the sub-list for extension extendee + 0, // [0:28] is the sub-list for field type_name } func init() { file_google_cloud_dataplex_v1_service_proto_init() } @@ -4489,7 +4540,7 @@ func file_google_cloud_dataplex_v1_service_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_dataplex_v1_service_proto_rawDesc, NumEnums: 0, - NumMessages: 43, + NumMessages: 45, NumExtensions: 0, NumServices: 1, }, diff --git a/dataplex/apiv1/dataplexpb/tasks.pb.go b/dataplex/apiv1/dataplexpb/tasks.pb.go index 453f18af3f5..1ec9156862d 100755 --- a/dataplex/apiv1/dataplexpb/tasks.pb.go +++ b/dataplex/apiv1/dataplexpb/tasks.pb.go @@ -207,6 +207,60 @@ func (Job_State) EnumDescriptor() ([]byte, []int) { return file_google_cloud_dataplex_v1_tasks_proto_rawDescGZIP(), []int{1, 1} } +// Job execution trigger. +type Job_Trigger int32 + +const ( + // The trigger is unspecified. + Job_TRIGGER_UNSPECIFIED Job_Trigger = 0 + // The job was triggered by Dataplex based on trigger spec from task + // definition. + Job_TASK_CONFIG Job_Trigger = 1 + // The job was triggered by the explicit call of Task API. + Job_RUN_REQUEST Job_Trigger = 2 +) + +// Enum value maps for Job_Trigger. +var ( + Job_Trigger_name = map[int32]string{ + 0: "TRIGGER_UNSPECIFIED", + 1: "TASK_CONFIG", + 2: "RUN_REQUEST", + } + Job_Trigger_value = map[string]int32{ + "TRIGGER_UNSPECIFIED": 0, + "TASK_CONFIG": 1, + "RUN_REQUEST": 2, + } +) + +func (x Job_Trigger) Enum() *Job_Trigger { + p := new(Job_Trigger) + *p = x + return p +} + +func (x Job_Trigger) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Job_Trigger) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dataplex_v1_tasks_proto_enumTypes[3].Descriptor() +} + +func (Job_Trigger) Type() protoreflect.EnumType { + return &file_google_cloud_dataplex_v1_tasks_proto_enumTypes[3] +} + +func (x Job_Trigger) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Job_Trigger.Descriptor instead. +func (Job_Trigger) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dataplex_v1_tasks_proto_rawDescGZIP(), []int{1, 2} +} + // A task represents a user-visible job. type Task struct { state protoimpl.MessageState @@ -421,6 +475,12 @@ type Job struct { ServiceJob string `protobuf:"bytes,8,opt,name=service_job,json=serviceJob,proto3" json:"service_job,omitempty"` // Output only. Additional information about the current state. Message string `protobuf:"bytes,9,opt,name=message,proto3" json:"message,omitempty"` + // Output only. User-defined labels for the task. + Labels map[string]string `protobuf:"bytes,10,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. Job execution trigger. + Trigger Job_Trigger `protobuf:"varint,11,opt,name=trigger,proto3,enum=google.cloud.dataplex.v1.Job_Trigger" json:"trigger,omitempty"` + // Output only. Spec related to how a task is executed. + ExecutionSpec *Task_ExecutionSpec `protobuf:"bytes,100,opt,name=execution_spec,json=executionSpec,proto3" json:"execution_spec,omitempty"` } func (x *Job) Reset() { @@ -518,6 +578,27 @@ func (x *Job) GetMessage() string { return "" } +func (x *Job) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Job) GetTrigger() Job_Trigger { + if x != nil { + return x.Trigger + } + return Job_TRIGGER_UNSPECIFIED +} + +func (x *Job) GetExecutionSpec() *Task_ExecutionSpec { + if x != nil { + return x.ExecutionSpec + } + return nil +} + // Configuration for the underlying infrastructure used to run workloads. type Task_InfrastructureSpec struct { state protoimpl.MessageState @@ -1658,7 +1739,7 @@ var file_google_cloud_dataplex_v1_tasks_proto_rawDesc = []byte{ 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x7b, 0x6c, 0x61, 0x6b, 0x65, 0x7d, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x7b, 0x74, 0x61, - 0x73, 0x6b, 0x7d, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xd8, 0x05, + 0x73, 0x6b, 0x7d, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xc1, 0x08, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x37, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x1d, 0x0a, 0x1b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, @@ -1687,31 +1768,54 @@ var file_google_cloud_dataplex_v1_tasks_proto_rawDesc = []byte{ 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x22, 0x30, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x17, 0x0a, - 0x13, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x41, 0x54, 0x41, 0x50, 0x52, - 0x4f, 0x43, 0x10, 0x01, 0x22, 0x72, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, - 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, - 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x10, - 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x04, 0x12, - 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x41, - 0x42, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x06, 0x3a, 0x6e, 0xea, 0x41, 0x6b, 0x0a, 0x1b, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x12, 0x4c, 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, 0x6c, 0x61, 0x6b, 0x65, 0x73, 0x2f, 0x7b, 0x6c, 0x61, 0x6b, 0x65, 0x7d, - 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, 0x7b, 0x74, 0x61, 0x73, 0x6b, 0x7d, 0x2f, 0x6a, 0x6f, - 0x62, 0x73, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x7d, 0x42, 0x66, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x6c, 0x65, 0x78, 0x70, 0x62, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x67, 0x65, 0x12, 0x46, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, + 0x62, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x44, 0x0a, 0x07, 0x74, 0x72, + 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x6c, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, + 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, + 0x12, 0x58, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 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, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x30, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x17, 0x0a, 0x13, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x41, 0x54, + 0x41, 0x50, 0x52, 0x4f, 0x43, 0x10, 0x01, 0x22, 0x72, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, + 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x49, + 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, + 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, + 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0b, + 0x0a, 0x07, 0x41, 0x42, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x06, 0x22, 0x44, 0x0a, 0x07, 0x54, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, + 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x0f, 0x0a, 0x0b, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x01, + 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x55, 0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, + 0x02, 0x3a, 0x6e, 0xea, 0x41, 0x6b, 0x0a, 0x1b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x4a, 0x6f, 0x62, 0x12, 0x4c, 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, 0x6c, 0x61, 0x6b, + 0x65, 0x73, 0x2f, 0x7b, 0x6c, 0x61, 0x6b, 0x65, 0x7d, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2f, + 0x7b, 0x74, 0x61, 0x73, 0x6b, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, + 0x7d, 0x42, 0x66, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x42, 0x0a, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x2f, 0x61, 0x70, + 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x3b, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x65, 0x78, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -1726,61 +1830,66 @@ func file_google_cloud_dataplex_v1_tasks_proto_rawDescGZIP() []byte { return file_google_cloud_dataplex_v1_tasks_proto_rawDescData } -var file_google_cloud_dataplex_v1_tasks_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_google_cloud_dataplex_v1_tasks_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_google_cloud_dataplex_v1_tasks_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_google_cloud_dataplex_v1_tasks_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_google_cloud_dataplex_v1_tasks_proto_goTypes = []interface{}{ (Task_TriggerSpec_Type)(0), // 0: google.cloud.dataplex.v1.Task.TriggerSpec.Type (Job_Service)(0), // 1: google.cloud.dataplex.v1.Job.Service (Job_State)(0), // 2: google.cloud.dataplex.v1.Job.State - (*Task)(nil), // 3: google.cloud.dataplex.v1.Task - (*Job)(nil), // 4: google.cloud.dataplex.v1.Job - (*Task_InfrastructureSpec)(nil), // 5: google.cloud.dataplex.v1.Task.InfrastructureSpec - (*Task_TriggerSpec)(nil), // 6: google.cloud.dataplex.v1.Task.TriggerSpec - (*Task_ExecutionSpec)(nil), // 7: google.cloud.dataplex.v1.Task.ExecutionSpec - (*Task_SparkTaskConfig)(nil), // 8: google.cloud.dataplex.v1.Task.SparkTaskConfig - (*Task_NotebookTaskConfig)(nil), // 9: google.cloud.dataplex.v1.Task.NotebookTaskConfig - (*Task_ExecutionStatus)(nil), // 10: google.cloud.dataplex.v1.Task.ExecutionStatus - nil, // 11: google.cloud.dataplex.v1.Task.LabelsEntry - (*Task_InfrastructureSpec_BatchComputeResources)(nil), // 12: google.cloud.dataplex.v1.Task.InfrastructureSpec.BatchComputeResources - (*Task_InfrastructureSpec_ContainerImageRuntime)(nil), // 13: google.cloud.dataplex.v1.Task.InfrastructureSpec.ContainerImageRuntime - (*Task_InfrastructureSpec_VpcNetwork)(nil), // 14: google.cloud.dataplex.v1.Task.InfrastructureSpec.VpcNetwork - nil, // 15: google.cloud.dataplex.v1.Task.InfrastructureSpec.ContainerImageRuntime.PropertiesEntry - nil, // 16: google.cloud.dataplex.v1.Task.ExecutionSpec.ArgsEntry - (*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp - (State)(0), // 18: google.cloud.dataplex.v1.State - (*durationpb.Duration)(nil), // 19: google.protobuf.Duration + (Job_Trigger)(0), // 3: google.cloud.dataplex.v1.Job.Trigger + (*Task)(nil), // 4: google.cloud.dataplex.v1.Task + (*Job)(nil), // 5: google.cloud.dataplex.v1.Job + (*Task_InfrastructureSpec)(nil), // 6: google.cloud.dataplex.v1.Task.InfrastructureSpec + (*Task_TriggerSpec)(nil), // 7: google.cloud.dataplex.v1.Task.TriggerSpec + (*Task_ExecutionSpec)(nil), // 8: google.cloud.dataplex.v1.Task.ExecutionSpec + (*Task_SparkTaskConfig)(nil), // 9: google.cloud.dataplex.v1.Task.SparkTaskConfig + (*Task_NotebookTaskConfig)(nil), // 10: google.cloud.dataplex.v1.Task.NotebookTaskConfig + (*Task_ExecutionStatus)(nil), // 11: google.cloud.dataplex.v1.Task.ExecutionStatus + nil, // 12: google.cloud.dataplex.v1.Task.LabelsEntry + (*Task_InfrastructureSpec_BatchComputeResources)(nil), // 13: google.cloud.dataplex.v1.Task.InfrastructureSpec.BatchComputeResources + (*Task_InfrastructureSpec_ContainerImageRuntime)(nil), // 14: google.cloud.dataplex.v1.Task.InfrastructureSpec.ContainerImageRuntime + (*Task_InfrastructureSpec_VpcNetwork)(nil), // 15: google.cloud.dataplex.v1.Task.InfrastructureSpec.VpcNetwork + nil, // 16: google.cloud.dataplex.v1.Task.InfrastructureSpec.ContainerImageRuntime.PropertiesEntry + nil, // 17: google.cloud.dataplex.v1.Task.ExecutionSpec.ArgsEntry + nil, // 18: google.cloud.dataplex.v1.Job.LabelsEntry + (*timestamppb.Timestamp)(nil), // 19: google.protobuf.Timestamp + (State)(0), // 20: google.cloud.dataplex.v1.State + (*durationpb.Duration)(nil), // 21: google.protobuf.Duration } var file_google_cloud_dataplex_v1_tasks_proto_depIdxs = []int32{ - 17, // 0: google.cloud.dataplex.v1.Task.create_time:type_name -> google.protobuf.Timestamp - 17, // 1: google.cloud.dataplex.v1.Task.update_time:type_name -> google.protobuf.Timestamp - 18, // 2: google.cloud.dataplex.v1.Task.state:type_name -> google.cloud.dataplex.v1.State - 11, // 3: google.cloud.dataplex.v1.Task.labels:type_name -> google.cloud.dataplex.v1.Task.LabelsEntry - 6, // 4: google.cloud.dataplex.v1.Task.trigger_spec:type_name -> google.cloud.dataplex.v1.Task.TriggerSpec - 7, // 5: google.cloud.dataplex.v1.Task.execution_spec:type_name -> google.cloud.dataplex.v1.Task.ExecutionSpec - 10, // 6: google.cloud.dataplex.v1.Task.execution_status:type_name -> google.cloud.dataplex.v1.Task.ExecutionStatus - 8, // 7: google.cloud.dataplex.v1.Task.spark:type_name -> google.cloud.dataplex.v1.Task.SparkTaskConfig - 9, // 8: google.cloud.dataplex.v1.Task.notebook:type_name -> google.cloud.dataplex.v1.Task.NotebookTaskConfig - 17, // 9: google.cloud.dataplex.v1.Job.start_time:type_name -> google.protobuf.Timestamp - 17, // 10: google.cloud.dataplex.v1.Job.end_time:type_name -> google.protobuf.Timestamp + 19, // 0: google.cloud.dataplex.v1.Task.create_time:type_name -> google.protobuf.Timestamp + 19, // 1: google.cloud.dataplex.v1.Task.update_time:type_name -> google.protobuf.Timestamp + 20, // 2: google.cloud.dataplex.v1.Task.state:type_name -> google.cloud.dataplex.v1.State + 12, // 3: google.cloud.dataplex.v1.Task.labels:type_name -> google.cloud.dataplex.v1.Task.LabelsEntry + 7, // 4: google.cloud.dataplex.v1.Task.trigger_spec:type_name -> google.cloud.dataplex.v1.Task.TriggerSpec + 8, // 5: google.cloud.dataplex.v1.Task.execution_spec:type_name -> google.cloud.dataplex.v1.Task.ExecutionSpec + 11, // 6: google.cloud.dataplex.v1.Task.execution_status:type_name -> google.cloud.dataplex.v1.Task.ExecutionStatus + 9, // 7: google.cloud.dataplex.v1.Task.spark:type_name -> google.cloud.dataplex.v1.Task.SparkTaskConfig + 10, // 8: google.cloud.dataplex.v1.Task.notebook:type_name -> google.cloud.dataplex.v1.Task.NotebookTaskConfig + 19, // 9: google.cloud.dataplex.v1.Job.start_time:type_name -> google.protobuf.Timestamp + 19, // 10: google.cloud.dataplex.v1.Job.end_time:type_name -> google.protobuf.Timestamp 2, // 11: google.cloud.dataplex.v1.Job.state:type_name -> google.cloud.dataplex.v1.Job.State 1, // 12: google.cloud.dataplex.v1.Job.service:type_name -> google.cloud.dataplex.v1.Job.Service - 12, // 13: google.cloud.dataplex.v1.Task.InfrastructureSpec.batch:type_name -> google.cloud.dataplex.v1.Task.InfrastructureSpec.BatchComputeResources - 13, // 14: google.cloud.dataplex.v1.Task.InfrastructureSpec.container_image:type_name -> google.cloud.dataplex.v1.Task.InfrastructureSpec.ContainerImageRuntime - 14, // 15: google.cloud.dataplex.v1.Task.InfrastructureSpec.vpc_network:type_name -> google.cloud.dataplex.v1.Task.InfrastructureSpec.VpcNetwork - 0, // 16: google.cloud.dataplex.v1.Task.TriggerSpec.type:type_name -> google.cloud.dataplex.v1.Task.TriggerSpec.Type - 17, // 17: google.cloud.dataplex.v1.Task.TriggerSpec.start_time:type_name -> google.protobuf.Timestamp - 16, // 18: google.cloud.dataplex.v1.Task.ExecutionSpec.args:type_name -> google.cloud.dataplex.v1.Task.ExecutionSpec.ArgsEntry - 19, // 19: google.cloud.dataplex.v1.Task.ExecutionSpec.max_job_execution_lifetime:type_name -> google.protobuf.Duration - 5, // 20: google.cloud.dataplex.v1.Task.SparkTaskConfig.infrastructure_spec:type_name -> google.cloud.dataplex.v1.Task.InfrastructureSpec - 5, // 21: google.cloud.dataplex.v1.Task.NotebookTaskConfig.infrastructure_spec:type_name -> google.cloud.dataplex.v1.Task.InfrastructureSpec - 17, // 22: google.cloud.dataplex.v1.Task.ExecutionStatus.update_time:type_name -> google.protobuf.Timestamp - 4, // 23: google.cloud.dataplex.v1.Task.ExecutionStatus.latest_job:type_name -> google.cloud.dataplex.v1.Job - 15, // 24: google.cloud.dataplex.v1.Task.InfrastructureSpec.ContainerImageRuntime.properties:type_name -> google.cloud.dataplex.v1.Task.InfrastructureSpec.ContainerImageRuntime.PropertiesEntry - 25, // [25:25] is the sub-list for method output_type - 25, // [25:25] is the sub-list for method input_type - 25, // [25:25] is the sub-list for extension type_name - 25, // [25:25] is the sub-list for extension extendee - 0, // [0:25] is the sub-list for field type_name + 18, // 13: google.cloud.dataplex.v1.Job.labels:type_name -> google.cloud.dataplex.v1.Job.LabelsEntry + 3, // 14: google.cloud.dataplex.v1.Job.trigger:type_name -> google.cloud.dataplex.v1.Job.Trigger + 8, // 15: google.cloud.dataplex.v1.Job.execution_spec:type_name -> google.cloud.dataplex.v1.Task.ExecutionSpec + 13, // 16: google.cloud.dataplex.v1.Task.InfrastructureSpec.batch:type_name -> google.cloud.dataplex.v1.Task.InfrastructureSpec.BatchComputeResources + 14, // 17: google.cloud.dataplex.v1.Task.InfrastructureSpec.container_image:type_name -> google.cloud.dataplex.v1.Task.InfrastructureSpec.ContainerImageRuntime + 15, // 18: google.cloud.dataplex.v1.Task.InfrastructureSpec.vpc_network:type_name -> google.cloud.dataplex.v1.Task.InfrastructureSpec.VpcNetwork + 0, // 19: google.cloud.dataplex.v1.Task.TriggerSpec.type:type_name -> google.cloud.dataplex.v1.Task.TriggerSpec.Type + 19, // 20: google.cloud.dataplex.v1.Task.TriggerSpec.start_time:type_name -> google.protobuf.Timestamp + 17, // 21: google.cloud.dataplex.v1.Task.ExecutionSpec.args:type_name -> google.cloud.dataplex.v1.Task.ExecutionSpec.ArgsEntry + 21, // 22: google.cloud.dataplex.v1.Task.ExecutionSpec.max_job_execution_lifetime:type_name -> google.protobuf.Duration + 6, // 23: google.cloud.dataplex.v1.Task.SparkTaskConfig.infrastructure_spec:type_name -> google.cloud.dataplex.v1.Task.InfrastructureSpec + 6, // 24: google.cloud.dataplex.v1.Task.NotebookTaskConfig.infrastructure_spec:type_name -> google.cloud.dataplex.v1.Task.InfrastructureSpec + 19, // 25: google.cloud.dataplex.v1.Task.ExecutionStatus.update_time:type_name -> google.protobuf.Timestamp + 5, // 26: google.cloud.dataplex.v1.Task.ExecutionStatus.latest_job:type_name -> google.cloud.dataplex.v1.Job + 16, // 27: google.cloud.dataplex.v1.Task.InfrastructureSpec.ContainerImageRuntime.properties:type_name -> google.cloud.dataplex.v1.Task.InfrastructureSpec.ContainerImageRuntime.PropertiesEntry + 28, // [28:28] is the sub-list for method output_type + 28, // [28:28] is the sub-list for method input_type + 28, // [28:28] is the sub-list for extension type_name + 28, // [28:28] is the sub-list for extension extendee + 0, // [0:28] is the sub-list for field type_name } func init() { file_google_cloud_dataplex_v1_tasks_proto_init() } @@ -1951,8 +2060,8 @@ func file_google_cloud_dataplex_v1_tasks_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_dataplex_v1_tasks_proto_rawDesc, - NumEnums: 3, - NumMessages: 14, + NumEnums: 4, + NumMessages: 15, NumExtensions: 0, NumServices: 0, }, diff --git a/dataplex/apiv1/gapic_metadata.json b/dataplex/apiv1/gapic_metadata.json index f36e695e135..6b32979bcc7 100644 --- a/dataplex/apiv1/gapic_metadata.json +++ b/dataplex/apiv1/gapic_metadata.json @@ -163,6 +163,120 @@ } } }, + "DataTaxonomyService": { + "clients": { + "grpc": { + "libraryClient": "DataTaxonomyClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateDataAttribute": { + "methods": [ + "CreateDataAttribute" + ] + }, + "CreateDataAttributeBinding": { + "methods": [ + "CreateDataAttributeBinding" + ] + }, + "CreateDataTaxonomy": { + "methods": [ + "CreateDataTaxonomy" + ] + }, + "DeleteDataAttribute": { + "methods": [ + "DeleteDataAttribute" + ] + }, + "DeleteDataAttributeBinding": { + "methods": [ + "DeleteDataAttributeBinding" + ] + }, + "DeleteDataTaxonomy": { + "methods": [ + "DeleteDataTaxonomy" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "GetDataAttribute": { + "methods": [ + "GetDataAttribute" + ] + }, + "GetDataAttributeBinding": { + "methods": [ + "GetDataAttributeBinding" + ] + }, + "GetDataTaxonomy": { + "methods": [ + "GetDataTaxonomy" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "ListDataAttributeBindings": { + "methods": [ + "ListDataAttributeBindings" + ] + }, + "ListDataAttributes": { + "methods": [ + "ListDataAttributes" + ] + }, + "ListDataTaxonomies": { + "methods": [ + "ListDataTaxonomies" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "UpdateDataAttribute": { + "methods": [ + "UpdateDataAttribute" + ] + }, + "UpdateDataAttributeBinding": { + "methods": [ + "UpdateDataAttributeBinding" + ] + }, + "UpdateDataTaxonomy": { + "methods": [ + "UpdateDataTaxonomy" + ] + } + } + } + } + }, "DataplexService": { "clients": { "grpc": { diff --git a/go.work b/go.work index 7e2cf4f8eba..8a639b2bcff 100644 --- a/go.work +++ b/go.work @@ -31,6 +31,7 @@ use ( ./cloudbuild ./clouddms ./cloudtasks + ./commerce ./compute ./compute/metadata ./confidentialcomputing diff --git a/go.work.sum b/go.work.sum index e00614ddeb4..ad58068db9a 100644 --- a/go.work.sum +++ b/go.work.sum @@ -1,4 +1,5 @@ cloud.google.com/go/gaming v1.9.0 h1:7vEhFnZmd931Mo7sZ6pJy7uQPDxF7m7v8xtBheG08tc= +cloud.google.com/go/gaming v1.10.1/go.mod h1:XQQvtfP8Rb9Rxnxm5wFVpAp9zCQkJi2bLIb7iHGwB3s= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= @@ -26,6 +27,7 @@ golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= +golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -34,6 +36,12 @@ golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= google.golang.org/api v0.123.0/go.mod h1:gcitW0lvnyWjSp9nKxAbdHKIZ6vF4aajGueeslZOyms= google.golang.org/api v0.128.0/go.mod h1:Y611qgqaE92On/7g65MQgxYul3c0rEB894kniWLY750= +google.golang.org/api v0.133.0/go.mod h1:sjRL3UnjTx5UqNQS9EWr9N8p7xbHpy1k0XGRLCf3Spk= +google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y= +google.golang.org/genproto/googleapis/api v0.0.0-20230724170836-66ad5b6ff146/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/bytestream v0.0.0-20230629202037-9506855d4529/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20230720185612-659f7aaaa771/go.mod h1:3QoBVwTHkXbY1oRGzlhwhOykfcATQN43LJ6iT8Wy8kE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:8mL13HKkDa+IuJ8yruA3ci0q+0vsUz4m//+ottjwS5o= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230720185612-659f7aaaa771/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= diff --git a/internal/.repo-metadata-full.json b/internal/.repo-metadata-full.json index 6a4c732ce57..eefbf9fbb5c 100644 --- a/internal/.repo-metadata-full.json +++ b/internal/.repo-metadata-full.json @@ -599,6 +599,16 @@ "release_level": "preview", "library_type": "GAPIC_AUTO" }, + "cloud.google.com/go/commerce/consumer/procurement/apiv1": { + "api_shortname": "cloudcommerceconsumerprocurement", + "distribution_name": "cloud.google.com/go/commerce/consumer/procurement/apiv1", + "description": "Cloud Commerce Consumer Procurement API", + "language": "go", + "client_library_type": "generated", + "client_documentation": "https://cloud.google.com/go/docs/reference/cloud.google.com/go/commerce/latest/consumer/procurement/apiv1", + "release_level": "preview", + "library_type": "GAPIC_AUTO" + }, "cloud.google.com/go/compute/apiv1": { "api_shortname": "compute", "distribution_name": "cloud.google.com/go/compute/apiv1", diff --git a/internal/generated/snippets/ai/generativelanguage/apiv1beta2/snippet_metadata.google.ai.generativelanguage.v1beta2.json b/internal/generated/snippets/ai/generativelanguage/apiv1beta2/snippet_metadata.google.ai.generativelanguage.v1beta2.json index 06f00d366d1..d61072cc638 100644 --- a/internal/generated/snippets/ai/generativelanguage/apiv1beta2/snippet_metadata.google.ai.generativelanguage.v1beta2.json +++ b/internal/generated/snippets/ai/generativelanguage/apiv1beta2/snippet_metadata.google.ai.generativelanguage.v1beta2.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/ai/generativelanguage/apiv1beta2", - "version": "0.1.0", + "version": "0.1.1", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/analyticshub/apiv1/snippet_metadata.google.cloud.bigquery.analyticshub.v1.json b/internal/generated/snippets/bigquery/analyticshub/apiv1/snippet_metadata.google.cloud.bigquery.analyticshub.v1.json index 26298a3eb61..e188b86e83a 100644 --- a/internal/generated/snippets/bigquery/analyticshub/apiv1/snippet_metadata.google.cloud.bigquery.analyticshub.v1.json +++ b/internal/generated/snippets/bigquery/analyticshub/apiv1/snippet_metadata.google.cloud.bigquery.analyticshub.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/analyticshub/apiv1", - "version": "1.52.0", + "version": "1.53.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/connection/apiv1/snippet_metadata.google.cloud.bigquery.connection.v1.json b/internal/generated/snippets/bigquery/connection/apiv1/snippet_metadata.google.cloud.bigquery.connection.v1.json index 88bb0395f36..eb8ccabdae1 100644 --- a/internal/generated/snippets/bigquery/connection/apiv1/snippet_metadata.google.cloud.bigquery.connection.v1.json +++ b/internal/generated/snippets/bigquery/connection/apiv1/snippet_metadata.google.cloud.bigquery.connection.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/connection/apiv1", - "version": "1.52.0", + "version": "1.53.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/connection/apiv1beta1/snippet_metadata.google.cloud.bigquery.connection.v1beta1.json b/internal/generated/snippets/bigquery/connection/apiv1beta1/snippet_metadata.google.cloud.bigquery.connection.v1beta1.json index 84e9d60a2ba..b8632e6bd2d 100644 --- a/internal/generated/snippets/bigquery/connection/apiv1beta1/snippet_metadata.google.cloud.bigquery.connection.v1beta1.json +++ b/internal/generated/snippets/bigquery/connection/apiv1beta1/snippet_metadata.google.cloud.bigquery.connection.v1beta1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/connection/apiv1beta1", - "version": "1.52.0", + "version": "1.53.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/dataexchange/apiv1beta1/snippet_metadata.google.cloud.bigquery.dataexchange.v1beta1.json b/internal/generated/snippets/bigquery/dataexchange/apiv1beta1/snippet_metadata.google.cloud.bigquery.dataexchange.v1beta1.json index f358c904b3f..3bb9b7bb89b 100644 --- a/internal/generated/snippets/bigquery/dataexchange/apiv1beta1/snippet_metadata.google.cloud.bigquery.dataexchange.v1beta1.json +++ b/internal/generated/snippets/bigquery/dataexchange/apiv1beta1/snippet_metadata.google.cloud.bigquery.dataexchange.v1beta1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/dataexchange/apiv1beta1", - "version": "1.52.0", + "version": "1.53.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/datapolicies/apiv1/snippet_metadata.google.cloud.bigquery.datapolicies.v1.json b/internal/generated/snippets/bigquery/datapolicies/apiv1/snippet_metadata.google.cloud.bigquery.datapolicies.v1.json index c23c9fdbd06..4396ad5bb5a 100644 --- a/internal/generated/snippets/bigquery/datapolicies/apiv1/snippet_metadata.google.cloud.bigquery.datapolicies.v1.json +++ b/internal/generated/snippets/bigquery/datapolicies/apiv1/snippet_metadata.google.cloud.bigquery.datapolicies.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/datapolicies/apiv1", - "version": "1.52.0", + "version": "1.53.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/datapolicies/apiv1beta1/snippet_metadata.google.cloud.bigquery.datapolicies.v1beta1.json b/internal/generated/snippets/bigquery/datapolicies/apiv1beta1/snippet_metadata.google.cloud.bigquery.datapolicies.v1beta1.json index c5648650658..e2e24ffb3af 100644 --- a/internal/generated/snippets/bigquery/datapolicies/apiv1beta1/snippet_metadata.google.cloud.bigquery.datapolicies.v1beta1.json +++ b/internal/generated/snippets/bigquery/datapolicies/apiv1beta1/snippet_metadata.google.cloud.bigquery.datapolicies.v1beta1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/datapolicies/apiv1beta1", - "version": "1.52.0", + "version": "1.53.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/datatransfer/apiv1/snippet_metadata.google.cloud.bigquery.datatransfer.v1.json b/internal/generated/snippets/bigquery/datatransfer/apiv1/snippet_metadata.google.cloud.bigquery.datatransfer.v1.json index 1b61e17233a..912aedc6ae8 100644 --- a/internal/generated/snippets/bigquery/datatransfer/apiv1/snippet_metadata.google.cloud.bigquery.datatransfer.v1.json +++ b/internal/generated/snippets/bigquery/datatransfer/apiv1/snippet_metadata.google.cloud.bigquery.datatransfer.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/datatransfer/apiv1", - "version": "1.52.0", + "version": "1.53.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/migration/apiv2/snippet_metadata.google.cloud.bigquery.migration.v2.json b/internal/generated/snippets/bigquery/migration/apiv2/snippet_metadata.google.cloud.bigquery.migration.v2.json index 28602109720..b821f9f515c 100644 --- a/internal/generated/snippets/bigquery/migration/apiv2/snippet_metadata.google.cloud.bigquery.migration.v2.json +++ b/internal/generated/snippets/bigquery/migration/apiv2/snippet_metadata.google.cloud.bigquery.migration.v2.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/migration/apiv2", - "version": "1.52.0", + "version": "1.53.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/migration/apiv2alpha/snippet_metadata.google.cloud.bigquery.migration.v2alpha.json b/internal/generated/snippets/bigquery/migration/apiv2alpha/snippet_metadata.google.cloud.bigquery.migration.v2alpha.json index b6d9a21d03e..2848a44e8f8 100644 --- a/internal/generated/snippets/bigquery/migration/apiv2alpha/snippet_metadata.google.cloud.bigquery.migration.v2alpha.json +++ b/internal/generated/snippets/bigquery/migration/apiv2alpha/snippet_metadata.google.cloud.bigquery.migration.v2alpha.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/migration/apiv2alpha", - "version": "1.52.0", + "version": "1.53.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/reservation/apiv1/snippet_metadata.google.cloud.bigquery.reservation.v1.json b/internal/generated/snippets/bigquery/reservation/apiv1/snippet_metadata.google.cloud.bigquery.reservation.v1.json index 254a5f2555b..f7312c01aeb 100644 --- a/internal/generated/snippets/bigquery/reservation/apiv1/snippet_metadata.google.cloud.bigquery.reservation.v1.json +++ b/internal/generated/snippets/bigquery/reservation/apiv1/snippet_metadata.google.cloud.bigquery.reservation.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/reservation/apiv1", - "version": "1.52.0", + "version": "1.53.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/storage/apiv1/snippet_metadata.google.cloud.bigquery.storage.v1.json b/internal/generated/snippets/bigquery/storage/apiv1/snippet_metadata.google.cloud.bigquery.storage.v1.json index e575b7f8bbf..b4c9255d8d8 100644 --- a/internal/generated/snippets/bigquery/storage/apiv1/snippet_metadata.google.cloud.bigquery.storage.v1.json +++ b/internal/generated/snippets/bigquery/storage/apiv1/snippet_metadata.google.cloud.bigquery.storage.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/storage/apiv1", - "version": "1.52.0", + "version": "1.53.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/storage/apiv1beta1/snippet_metadata.google.cloud.bigquery.storage.v1beta1.json b/internal/generated/snippets/bigquery/storage/apiv1beta1/snippet_metadata.google.cloud.bigquery.storage.v1beta1.json index 37a2e03412b..6daa9084e5e 100644 --- a/internal/generated/snippets/bigquery/storage/apiv1beta1/snippet_metadata.google.cloud.bigquery.storage.v1beta1.json +++ b/internal/generated/snippets/bigquery/storage/apiv1beta1/snippet_metadata.google.cloud.bigquery.storage.v1beta1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/storage/apiv1beta1", - "version": "1.52.0", + "version": "1.53.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/bigquery/storage/apiv1beta2/snippet_metadata.google.cloud.bigquery.storage.v1beta2.json b/internal/generated/snippets/bigquery/storage/apiv1beta2/snippet_metadata.google.cloud.bigquery.storage.v1beta2.json index a48743cd18b..41bc06ab0e3 100644 --- a/internal/generated/snippets/bigquery/storage/apiv1beta2/snippet_metadata.google.cloud.bigquery.storage.v1beta2.json +++ b/internal/generated/snippets/bigquery/storage/apiv1beta2/snippet_metadata.google.cloud.bigquery.storage.v1beta2.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/bigquery/storage/apiv1beta2", - "version": "1.52.0", + "version": "1.53.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/cloudbuild/apiv1/v2/snippet_metadata.google.devtools.cloudbuild.v1.json b/internal/generated/snippets/cloudbuild/apiv1/v2/snippet_metadata.google.devtools.cloudbuild.v1.json index 26016a03d91..c50dec83821 100644 --- a/internal/generated/snippets/cloudbuild/apiv1/v2/snippet_metadata.google.devtools.cloudbuild.v1.json +++ b/internal/generated/snippets/cloudbuild/apiv1/v2/snippet_metadata.google.devtools.cloudbuild.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/cloudbuild/apiv1/v2", - "version": "1.11.0", + "version": "1.12.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/cloudbuild/apiv2/snippet_metadata.google.devtools.cloudbuild.v2.json b/internal/generated/snippets/cloudbuild/apiv2/snippet_metadata.google.devtools.cloudbuild.v2.json index 382c4a41519..8b1eded9db2 100644 --- a/internal/generated/snippets/cloudbuild/apiv2/snippet_metadata.google.devtools.cloudbuild.v2.json +++ b/internal/generated/snippets/cloudbuild/apiv2/snippet_metadata.google.devtools.cloudbuild.v2.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/cloudbuild/apiv2", - "version": "1.11.0", + "version": "1.12.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/commerce/consumer/procurement/apiv1/ConsumerProcurementClient/GetOperation/main.go b/internal/generated/snippets/commerce/consumer/procurement/apiv1/ConsumerProcurementClient/GetOperation/main.go new file mode 100644 index 00000000000..bf000b43b3d --- /dev/null +++ b/internal/generated/snippets/commerce/consumer/procurement/apiv1/ConsumerProcurementClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START cloudcommerceconsumerprocurement_v1_generated_ConsumerProcurementService_GetOperation_sync] + +package main + +import ( + "context" + + procurement "cloud.google.com/go/commerce/consumer/procurement/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + 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 := procurement.NewConsumerProcurementClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END cloudcommerceconsumerprocurement_v1_generated_ConsumerProcurementService_GetOperation_sync] diff --git a/internal/generated/snippets/commerce/consumer/procurement/apiv1/ConsumerProcurementClient/GetOrder/main.go b/internal/generated/snippets/commerce/consumer/procurement/apiv1/ConsumerProcurementClient/GetOrder/main.go new file mode 100644 index 00000000000..2681f61438a --- /dev/null +++ b/internal/generated/snippets/commerce/consumer/procurement/apiv1/ConsumerProcurementClient/GetOrder/main.go @@ -0,0 +1,53 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START cloudcommerceconsumerprocurement_v1_generated_ConsumerProcurementService_GetOrder_sync] + +package main + +import ( + "context" + + procurement "cloud.google.com/go/commerce/consumer/procurement/apiv1" + procurementpb "cloud.google.com/go/commerce/consumer/procurement/apiv1/procurementpb" +) + +func main() { + 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 := procurement.NewConsumerProcurementClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &procurementpb.GetOrderRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/commerce/consumer/procurement/apiv1/procurementpb#GetOrderRequest. + } + resp, err := c.GetOrder(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END cloudcommerceconsumerprocurement_v1_generated_ConsumerProcurementService_GetOrder_sync] diff --git a/internal/generated/snippets/commerce/consumer/procurement/apiv1/ConsumerProcurementClient/ListOrders/main.go b/internal/generated/snippets/commerce/consumer/procurement/apiv1/ConsumerProcurementClient/ListOrders/main.go new file mode 100644 index 00000000000..4b7b9412c3b --- /dev/null +++ b/internal/generated/snippets/commerce/consumer/procurement/apiv1/ConsumerProcurementClient/ListOrders/main.go @@ -0,0 +1,60 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START cloudcommerceconsumerprocurement_v1_generated_ConsumerProcurementService_ListOrders_sync] + +package main + +import ( + "context" + + procurement "cloud.google.com/go/commerce/consumer/procurement/apiv1" + procurementpb "cloud.google.com/go/commerce/consumer/procurement/apiv1/procurementpb" + "google.golang.org/api/iterator" +) + +func main() { + 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 := procurement.NewConsumerProcurementClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &procurementpb.ListOrdersRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/commerce/consumer/procurement/apiv1/procurementpb#ListOrdersRequest. + } + it := c.ListOrders(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END cloudcommerceconsumerprocurement_v1_generated_ConsumerProcurementService_ListOrders_sync] diff --git a/internal/generated/snippets/commerce/consumer/procurement/apiv1/ConsumerProcurementClient/PlaceOrder/main.go b/internal/generated/snippets/commerce/consumer/procurement/apiv1/ConsumerProcurementClient/PlaceOrder/main.go new file mode 100644 index 00000000000..054d76e7a26 --- /dev/null +++ b/internal/generated/snippets/commerce/consumer/procurement/apiv1/ConsumerProcurementClient/PlaceOrder/main.go @@ -0,0 +1,58 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START cloudcommerceconsumerprocurement_v1_generated_ConsumerProcurementService_PlaceOrder_sync] + +package main + +import ( + "context" + + procurement "cloud.google.com/go/commerce/consumer/procurement/apiv1" + procurementpb "cloud.google.com/go/commerce/consumer/procurement/apiv1/procurementpb" +) + +func main() { + 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 := procurement.NewConsumerProcurementClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &procurementpb.PlaceOrderRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/commerce/consumer/procurement/apiv1/procurementpb#PlaceOrderRequest. + } + op, err := c.PlaceOrder(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END cloudcommerceconsumerprocurement_v1_generated_ConsumerProcurementService_PlaceOrder_sync] diff --git a/internal/generated/snippets/commerce/consumer/procurement/apiv1/snippet_metadata.google.cloud.commerce.consumer.procurement.v1.json b/internal/generated/snippets/commerce/consumer/procurement/apiv1/snippet_metadata.google.cloud.commerce.consumer.procurement.v1.json new file mode 100644 index 00000000000..9ca3663f2b7 --- /dev/null +++ b/internal/generated/snippets/commerce/consumer/procurement/apiv1/snippet_metadata.google.cloud.commerce.consumer.procurement.v1.json @@ -0,0 +1,199 @@ +{ + "clientLibrary": { + "name": "cloud.google.com/go/commerce/consumer/procurement/apiv1", + "version": "0.0.0", + "language": "GO", + "apis": [ + { + "id": "google.cloud.commerce.consumer.procurement.v1", + "version": "v1" + } + ] + }, + "snippets": [ + { + "regionTag": "cloudcommerceconsumerprocurement_v1_generated_ConsumerProcurementService_GetOperation_sync", + "title": "cloudcommerceconsumerprocurement GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "ConsumerProcurementClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "ConsumerProcurementClient", + "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementClient" + }, + "method": { + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "cloudcommerceconsumerprocurement_v1_generated_ConsumerProcurementService_GetOrder_sync", + "title": "cloudcommerceconsumerprocurement GetOrder Sample", + "description": "GetOrder returns the requested\n[Order][google.cloud.commerce.consumer.procurement.v1.Order] resource.", + "file": "ConsumerProcurementClient/GetOrder/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOrder", + "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementClient.GetOrder", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "procurementpb.GetOrderRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*procurementpb.Order", + "client": { + "shortName": "ConsumerProcurementClient", + "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementClient" + }, + "method": { + "shortName": "GetOrder", + "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.GetOrder", + "service": { + "shortName": "ConsumerProcurementService", + "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "cloudcommerceconsumerprocurement_v1_generated_ConsumerProcurementService_ListOrders_sync", + "title": "cloudcommerceconsumerprocurement ListOrders Sample", + "description": "ListOrders lists [Order][google.cloud.commerce.consumer.procurement.v1.Order]\nresources that the user has access to, within the scope of the parent\nresource.", + "file": "ConsumerProcurementClient/ListOrders/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOrders", + "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementClient.ListOrders", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "procurementpb.ListOrdersRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OrderIterator", + "client": { + "shortName": "ConsumerProcurementClient", + "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementClient" + }, + "method": { + "shortName": "ListOrders", + "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.ListOrders", + "service": { + "shortName": "ConsumerProcurementService", + "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "cloudcommerceconsumerprocurement_v1_generated_ConsumerProcurementService_PlaceOrder_sync", + "title": "cloudcommerceconsumerprocurement PlaceOrder Sample", + "description": "PlaceOrder creates a new [Order][google.cloud.commerce.consumer.procurement.v1.Order].\n\nThis API only supports GCP spend-based committed use\ndiscounts specified by GCP documentation.\n\nThe returned long-running operation is in-progress until the backend\ncompletes the creation of the resource. Once completed, the order is\nin\n[OrderState.ORDER_STATE_ACTIVE][google.cloud.commerce.consumer.procurement.v1.OrderState.ORDER_STATE_ACTIVE].\nIn case of failure, the order resource will be removed.", + "file": "ConsumerProcurementClient/PlaceOrder/main.go", + "language": "GO", + "clientMethod": { + "shortName": "PlaceOrder", + "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementClient.PlaceOrder", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "procurementpb.PlaceOrderRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "PlaceOrderOperation", + "client": { + "shortName": "ConsumerProcurementClient", + "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementClient" + }, + "method": { + "shortName": "PlaceOrder", + "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService.PlaceOrder", + "service": { + "shortName": "ConsumerProcurementService", + "fullName": "google.cloud.commerce.consumer.procurement.v1.ConsumerProcurementService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + } + ] +} \ No newline at end of file diff --git a/internal/generated/snippets/confidentialcomputing/apiv1/snippet_metadata.google.cloud.confidentialcomputing.v1.json b/internal/generated/snippets/confidentialcomputing/apiv1/snippet_metadata.google.cloud.confidentialcomputing.v1.json index 70986550b20..115ebfef9bd 100644 --- a/internal/generated/snippets/confidentialcomputing/apiv1/snippet_metadata.google.cloud.confidentialcomputing.v1.json +++ b/internal/generated/snippets/confidentialcomputing/apiv1/snippet_metadata.google.cloud.confidentialcomputing.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/confidentialcomputing/apiv1", - "version": "0.3.1", + "version": "1.0.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/confidentialcomputing/apiv1alpha1/snippet_metadata.google.cloud.confidentialcomputing.v1alpha1.json b/internal/generated/snippets/confidentialcomputing/apiv1alpha1/snippet_metadata.google.cloud.confidentialcomputing.v1alpha1.json index 45a71fb6fb3..1cf31e54a36 100644 --- a/internal/generated/snippets/confidentialcomputing/apiv1alpha1/snippet_metadata.google.cloud.confidentialcomputing.v1alpha1.json +++ b/internal/generated/snippets/confidentialcomputing/apiv1alpha1/snippet_metadata.google.cloud.confidentialcomputing.v1alpha1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/confidentialcomputing/apiv1alpha1", - "version": "0.3.1", + "version": "1.0.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/CancelOperation/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/CancelOperation/main.go new file mode 100644 index 00000000000..49e0b01a387 --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_CancelOperation_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END dataplex_v1_generated_DataTaxonomyService_CancelOperation_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/CreateDataAttribute/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/CreateDataAttribute/main.go new file mode 100644 index 00000000000..57e346182a4 --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/CreateDataAttribute/main.go @@ -0,0 +1,58 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_CreateDataAttribute_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.CreateDataAttributeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#CreateDataAttributeRequest. + } + op, err := c.CreateDataAttribute(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataplex_v1_generated_DataTaxonomyService_CreateDataAttribute_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/CreateDataAttributeBinding/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/CreateDataAttributeBinding/main.go new file mode 100644 index 00000000000..c5b59edb8c1 --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/CreateDataAttributeBinding/main.go @@ -0,0 +1,58 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_CreateDataAttributeBinding_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.CreateDataAttributeBindingRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#CreateDataAttributeBindingRequest. + } + op, err := c.CreateDataAttributeBinding(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataplex_v1_generated_DataTaxonomyService_CreateDataAttributeBinding_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/CreateDataTaxonomy/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/CreateDataTaxonomy/main.go new file mode 100644 index 00000000000..4ec27e387b2 --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/CreateDataTaxonomy/main.go @@ -0,0 +1,58 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_CreateDataTaxonomy_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.CreateDataTaxonomyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#CreateDataTaxonomyRequest. + } + op, err := c.CreateDataTaxonomy(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataplex_v1_generated_DataTaxonomyService_CreateDataTaxonomy_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/DeleteDataAttribute/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/DeleteDataAttribute/main.go new file mode 100644 index 00000000000..5a0c6388686 --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/DeleteDataAttribute/main.go @@ -0,0 +1,56 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_DeleteDataAttribute_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.DeleteDataAttributeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#DeleteDataAttributeRequest. + } + op, err := c.DeleteDataAttribute(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END dataplex_v1_generated_DataTaxonomyService_DeleteDataAttribute_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/DeleteDataAttributeBinding/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/DeleteDataAttributeBinding/main.go new file mode 100644 index 00000000000..c5e4edc3a56 --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/DeleteDataAttributeBinding/main.go @@ -0,0 +1,56 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_DeleteDataAttributeBinding_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.DeleteDataAttributeBindingRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#DeleteDataAttributeBindingRequest. + } + op, err := c.DeleteDataAttributeBinding(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END dataplex_v1_generated_DataTaxonomyService_DeleteDataAttributeBinding_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/DeleteDataTaxonomy/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/DeleteDataTaxonomy/main.go new file mode 100644 index 00000000000..b8078dbf044 --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/DeleteDataTaxonomy/main.go @@ -0,0 +1,56 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_DeleteDataTaxonomy_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.DeleteDataTaxonomyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#DeleteDataTaxonomyRequest. + } + op, err := c.DeleteDataTaxonomy(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END dataplex_v1_generated_DataTaxonomyService_DeleteDataTaxonomy_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/DeleteOperation/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/DeleteOperation/main.go new file mode 100644 index 00000000000..a53d77b3054 --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_DeleteOperation_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END dataplex_v1_generated_DataTaxonomyService_DeleteOperation_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetDataAttribute/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetDataAttribute/main.go new file mode 100644 index 00000000000..c1bb9908eca --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetDataAttribute/main.go @@ -0,0 +1,53 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_GetDataAttribute_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.GetDataAttributeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#GetDataAttributeRequest. + } + resp, err := c.GetDataAttribute(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataplex_v1_generated_DataTaxonomyService_GetDataAttribute_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetDataAttributeBinding/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetDataAttributeBinding/main.go new file mode 100644 index 00000000000..428a2bdbee9 --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetDataAttributeBinding/main.go @@ -0,0 +1,53 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_GetDataAttributeBinding_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.GetDataAttributeBindingRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#GetDataAttributeBindingRequest. + } + resp, err := c.GetDataAttributeBinding(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataplex_v1_generated_DataTaxonomyService_GetDataAttributeBinding_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetDataTaxonomy/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetDataTaxonomy/main.go new file mode 100644 index 00000000000..ede01e90ce1 --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetDataTaxonomy/main.go @@ -0,0 +1,53 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_GetDataTaxonomy_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.GetDataTaxonomyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#GetDataTaxonomyRequest. + } + resp, err := c.GetDataTaxonomy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataplex_v1_generated_DataTaxonomyService_GetDataTaxonomy_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetLocation/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetLocation/main.go new file mode 100644 index 00000000000..d6de90c9697 --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetLocation/main.go @@ -0,0 +1,53 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_GetLocation_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataplex_v1_generated_DataTaxonomyService_GetLocation_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetOperation/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetOperation/main.go new file mode 100644 index 00000000000..b5d28bbcb14 --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_GetOperation_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataplex_v1_generated_DataTaxonomyService_GetOperation_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListDataAttributeBindings/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListDataAttributeBindings/main.go new file mode 100644 index 00000000000..91b1bdc9cf8 --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListDataAttributeBindings/main.go @@ -0,0 +1,60 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_ListDataAttributeBindings_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb" + "google.golang.org/api/iterator" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.ListDataAttributeBindingsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#ListDataAttributeBindingsRequest. + } + it := c.ListDataAttributeBindings(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END dataplex_v1_generated_DataTaxonomyService_ListDataAttributeBindings_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListDataAttributes/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListDataAttributes/main.go new file mode 100644 index 00000000000..c3e6c815f83 --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListDataAttributes/main.go @@ -0,0 +1,60 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_ListDataAttributes_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb" + "google.golang.org/api/iterator" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.ListDataAttributesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#ListDataAttributesRequest. + } + it := c.ListDataAttributes(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END dataplex_v1_generated_DataTaxonomyService_ListDataAttributes_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListDataTaxonomies/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListDataTaxonomies/main.go new file mode 100644 index 00000000000..356846cd4a1 --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListDataTaxonomies/main.go @@ -0,0 +1,60 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_ListDataTaxonomies_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb" + "google.golang.org/api/iterator" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.ListDataTaxonomiesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#ListDataTaxonomiesRequest. + } + it := c.ListDataTaxonomies(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END dataplex_v1_generated_DataTaxonomyService_ListDataTaxonomies_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListLocations/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListLocations/main.go new file mode 100644 index 00000000000..7547100925e --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListLocations/main.go @@ -0,0 +1,60 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_ListLocations_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END dataplex_v1_generated_DataTaxonomyService_ListLocations_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListOperations/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListOperations/main.go new file mode 100644 index 00000000000..4695bc2dc71 --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/ListOperations/main.go @@ -0,0 +1,60 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_ListOperations_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END dataplex_v1_generated_DataTaxonomyService_ListOperations_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/UpdateDataAttribute/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/UpdateDataAttribute/main.go new file mode 100644 index 00000000000..e51c6be71fa --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/UpdateDataAttribute/main.go @@ -0,0 +1,58 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_UpdateDataAttribute_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.UpdateDataAttributeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#UpdateDataAttributeRequest. + } + op, err := c.UpdateDataAttribute(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataplex_v1_generated_DataTaxonomyService_UpdateDataAttribute_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/UpdateDataAttributeBinding/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/UpdateDataAttributeBinding/main.go new file mode 100644 index 00000000000..ba0104cd0e5 --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/UpdateDataAttributeBinding/main.go @@ -0,0 +1,58 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_UpdateDataAttributeBinding_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.UpdateDataAttributeBindingRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#UpdateDataAttributeBindingRequest. + } + op, err := c.UpdateDataAttributeBinding(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataplex_v1_generated_DataTaxonomyService_UpdateDataAttributeBinding_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/UpdateDataTaxonomy/main.go b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/UpdateDataTaxonomy/main.go new file mode 100644 index 00000000000..f30fddb59bc --- /dev/null +++ b/internal/generated/snippets/dataplex/apiv1/DataTaxonomyClient/UpdateDataTaxonomy/main.go @@ -0,0 +1,58 @@ +// 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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START dataplex_v1_generated_DataTaxonomyService_UpdateDataTaxonomy_sync] + +package main + +import ( + "context" + + dataplex "cloud.google.com/go/dataplex/apiv1" + dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb" +) + +func main() { + 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 := dataplex.NewDataTaxonomyClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataplexpb.UpdateDataTaxonomyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#UpdateDataTaxonomyRequest. + } + op, err := c.UpdateDataTaxonomy(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataplex_v1_generated_DataTaxonomyService_UpdateDataTaxonomy_sync] diff --git a/internal/generated/snippets/dataplex/apiv1/snippet_metadata.google.cloud.dataplex.v1.json b/internal/generated/snippets/dataplex/apiv1/snippet_metadata.google.cloud.dataplex.v1.json index c7dbc6da5e0..35813e6cf07 100644 --- a/internal/generated/snippets/dataplex/apiv1/snippet_metadata.google.cloud.dataplex.v1.json +++ b/internal/generated/snippets/dataplex/apiv1/snippet_metadata.google.cloud.dataplex.v1.json @@ -1294,6 +1294,970 @@ } ] }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_CancelOperation_sync", + "title": "dataplex CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "DataTaxonomyClient/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "CancelOperation", + "fullName": "google.longrunning.Operations.CancelOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_CreateDataAttribute_sync", + "title": "dataplex CreateDataAttribute Sample", + "description": "CreateDataAttribute create a DataAttribute resource.", + "file": "DataTaxonomyClient/CreateDataAttribute/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateDataAttribute", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.CreateDataAttribute", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataplexpb.CreateDataAttributeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateDataAttributeOperation", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "CreateDataAttribute", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService.CreateDataAttribute", + "service": { + "shortName": "DataTaxonomyService", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_CreateDataAttributeBinding_sync", + "title": "dataplex CreateDataAttributeBinding Sample", + "description": "CreateDataAttributeBinding create a DataAttributeBinding resource.", + "file": "DataTaxonomyClient/CreateDataAttributeBinding/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateDataAttributeBinding", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.CreateDataAttributeBinding", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataplexpb.CreateDataAttributeBindingRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateDataAttributeBindingOperation", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "CreateDataAttributeBinding", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService.CreateDataAttributeBinding", + "service": { + "shortName": "DataTaxonomyService", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_CreateDataTaxonomy_sync", + "title": "dataplex CreateDataTaxonomy Sample", + "description": "CreateDataTaxonomy create a DataTaxonomy resource.", + "file": "DataTaxonomyClient/CreateDataTaxonomy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateDataTaxonomy", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.CreateDataTaxonomy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataplexpb.CreateDataTaxonomyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateDataTaxonomyOperation", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "CreateDataTaxonomy", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService.CreateDataTaxonomy", + "service": { + "shortName": "DataTaxonomyService", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_DeleteDataAttribute_sync", + "title": "dataplex DeleteDataAttribute Sample", + "description": "DeleteDataAttribute deletes a Data Attribute resource.", + "file": "DataTaxonomyClient/DeleteDataAttribute/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteDataAttribute", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.DeleteDataAttribute", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataplexpb.DeleteDataAttributeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteDataAttributeOperation", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "DeleteDataAttribute", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService.DeleteDataAttribute", + "service": { + "shortName": "DataTaxonomyService", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_DeleteDataAttributeBinding_sync", + "title": "dataplex DeleteDataAttributeBinding Sample", + "description": "DeleteDataAttributeBinding deletes a DataAttributeBinding resource. All attributes within the\nDataAttributeBinding must be deleted before the DataAttributeBinding can be\ndeleted.", + "file": "DataTaxonomyClient/DeleteDataAttributeBinding/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteDataAttributeBinding", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.DeleteDataAttributeBinding", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataplexpb.DeleteDataAttributeBindingRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteDataAttributeBindingOperation", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "DeleteDataAttributeBinding", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService.DeleteDataAttributeBinding", + "service": { + "shortName": "DataTaxonomyService", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_DeleteDataTaxonomy_sync", + "title": "dataplex DeleteDataTaxonomy Sample", + "description": "DeleteDataTaxonomy deletes a DataTaxonomy resource. All attributes within the DataTaxonomy\nmust be deleted before the DataTaxonomy can be deleted.", + "file": "DataTaxonomyClient/DeleteDataTaxonomy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteDataTaxonomy", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.DeleteDataTaxonomy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataplexpb.DeleteDataTaxonomyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteDataTaxonomyOperation", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "DeleteDataTaxonomy", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService.DeleteDataTaxonomy", + "service": { + "shortName": "DataTaxonomyService", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_DeleteOperation_sync", + "title": "dataplex DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "DataTaxonomyClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_GetDataAttribute_sync", + "title": "dataplex GetDataAttribute Sample", + "description": "GetDataAttribute retrieves a Data Attribute resource.", + "file": "DataTaxonomyClient/GetDataAttribute/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetDataAttribute", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.GetDataAttribute", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataplexpb.GetDataAttributeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*dataplexpb.DataAttribute", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "GetDataAttribute", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService.GetDataAttribute", + "service": { + "shortName": "DataTaxonomyService", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_GetDataAttributeBinding_sync", + "title": "dataplex GetDataAttributeBinding Sample", + "description": "GetDataAttributeBinding retrieves a DataAttributeBinding resource.", + "file": "DataTaxonomyClient/GetDataAttributeBinding/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetDataAttributeBinding", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.GetDataAttributeBinding", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataplexpb.GetDataAttributeBindingRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*dataplexpb.DataAttributeBinding", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "GetDataAttributeBinding", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService.GetDataAttributeBinding", + "service": { + "shortName": "DataTaxonomyService", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_GetDataTaxonomy_sync", + "title": "dataplex GetDataTaxonomy Sample", + "description": "GetDataTaxonomy retrieves a DataTaxonomy resource.", + "file": "DataTaxonomyClient/GetDataTaxonomy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetDataTaxonomy", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.GetDataTaxonomy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataplexpb.GetDataTaxonomyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*dataplexpb.DataTaxonomy", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "GetDataTaxonomy", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService.GetDataTaxonomy", + "service": { + "shortName": "DataTaxonomyService", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_GetLocation_sync", + "title": "dataplex GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "DataTaxonomyClient/GetLocation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetLocation", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.GetLocation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.GetLocationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*locationpb.Location", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "GetLocation", + "fullName": "google.cloud.location.Locations.GetLocation", + "service": { + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_GetOperation_sync", + "title": "dataplex GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "DataTaxonomyClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_ListDataAttributeBindings_sync", + "title": "dataplex ListDataAttributeBindings Sample", + "description": "ListDataAttributeBindings lists DataAttributeBinding resources in a project and location.", + "file": "DataTaxonomyClient/ListDataAttributeBindings/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListDataAttributeBindings", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.ListDataAttributeBindings", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataplexpb.ListDataAttributeBindingsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DataAttributeBindingIterator", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "ListDataAttributeBindings", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService.ListDataAttributeBindings", + "service": { + "shortName": "DataTaxonomyService", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_ListDataAttributes_sync", + "title": "dataplex ListDataAttributes Sample", + "description": "ListDataAttributes lists Data Attribute resources in a DataTaxonomy.", + "file": "DataTaxonomyClient/ListDataAttributes/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListDataAttributes", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.ListDataAttributes", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataplexpb.ListDataAttributesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DataAttributeIterator", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "ListDataAttributes", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService.ListDataAttributes", + "service": { + "shortName": "DataTaxonomyService", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_ListDataTaxonomies_sync", + "title": "dataplex ListDataTaxonomies Sample", + "description": "ListDataTaxonomies lists DataTaxonomy resources in a project and location.", + "file": "DataTaxonomyClient/ListDataTaxonomies/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListDataTaxonomies", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.ListDataTaxonomies", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataplexpb.ListDataTaxonomiesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DataTaxonomyIterator", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "ListDataTaxonomies", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService.ListDataTaxonomies", + "service": { + "shortName": "DataTaxonomyService", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_ListLocations_sync", + "title": "dataplex ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.", + "file": "DataTaxonomyClient/ListLocations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListLocations", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.ListLocations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.ListLocationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "LocationIterator", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "ListLocations", + "fullName": "google.cloud.location.Locations.ListLocations", + "service": { + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_ListOperations_sync", + "title": "dataplex ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "DataTaxonomyClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_UpdateDataAttribute_sync", + "title": "dataplex UpdateDataAttribute Sample", + "description": "UpdateDataAttribute updates a DataAttribute resource.", + "file": "DataTaxonomyClient/UpdateDataAttribute/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateDataAttribute", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.UpdateDataAttribute", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataplexpb.UpdateDataAttributeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateDataAttributeOperation", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "UpdateDataAttribute", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService.UpdateDataAttribute", + "service": { + "shortName": "DataTaxonomyService", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_UpdateDataAttributeBinding_sync", + "title": "dataplex UpdateDataAttributeBinding Sample", + "description": "UpdateDataAttributeBinding updates a DataAttributeBinding resource.", + "file": "DataTaxonomyClient/UpdateDataAttributeBinding/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateDataAttributeBinding", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.UpdateDataAttributeBinding", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataplexpb.UpdateDataAttributeBindingRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateDataAttributeBindingOperation", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "UpdateDataAttributeBinding", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService.UpdateDataAttributeBinding", + "service": { + "shortName": "DataTaxonomyService", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataplex_v1_generated_DataTaxonomyService_UpdateDataTaxonomy_sync", + "title": "dataplex UpdateDataTaxonomy Sample", + "description": "UpdateDataTaxonomy updates a DataTaxonomy resource.", + "file": "DataTaxonomyClient/UpdateDataTaxonomy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateDataTaxonomy", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient.UpdateDataTaxonomy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataplexpb.UpdateDataTaxonomyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateDataTaxonomyOperation", + "client": { + "shortName": "DataTaxonomyClient", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyClient" + }, + "method": { + "shortName": "UpdateDataTaxonomy", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService.UpdateDataTaxonomy", + "service": { + "shortName": "DataTaxonomyService", + "fullName": "google.cloud.dataplex.v1.DataTaxonomyService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, { "regionTag": "dataplex_v1_generated_DataplexService_CancelJob_sync", "title": "dataplex CancelJob Sample", diff --git a/internal/generated/snippets/deploy/apiv1/snippet_metadata.google.cloud.deploy.v1.json b/internal/generated/snippets/deploy/apiv1/snippet_metadata.google.cloud.deploy.v1.json index 09013452ef6..aecebd123d2 100644 --- a/internal/generated/snippets/deploy/apiv1/snippet_metadata.google.cloud.deploy.v1.json +++ b/internal/generated/snippets/deploy/apiv1/snippet_metadata.google.cloud.deploy.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/deploy/apiv1", - "version": "1.12.0", + "version": "1.12.1", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/discoveryengine/apiv1/snippet_metadata.google.cloud.discoveryengine.v1.json b/internal/generated/snippets/discoveryengine/apiv1/snippet_metadata.google.cloud.discoveryengine.v1.json index 36cc65f15aa..9ce2a5bdb6e 100644 --- a/internal/generated/snippets/discoveryengine/apiv1/snippet_metadata.google.cloud.discoveryengine.v1.json +++ b/internal/generated/snippets/discoveryengine/apiv1/snippet_metadata.google.cloud.discoveryengine.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/discoveryengine/apiv1", - "version": "0.5.0", + "version": "1.0.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/discoveryengine/apiv1beta/snippet_metadata.google.cloud.discoveryengine.v1beta.json b/internal/generated/snippets/discoveryengine/apiv1beta/snippet_metadata.google.cloud.discoveryengine.v1beta.json index 936fef91340..b10bdb2eb98 100644 --- a/internal/generated/snippets/discoveryengine/apiv1beta/snippet_metadata.google.cloud.discoveryengine.v1beta.json +++ b/internal/generated/snippets/discoveryengine/apiv1beta/snippet_metadata.google.cloud.discoveryengine.v1beta.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/discoveryengine/apiv1beta", - "version": "0.5.0", + "version": "1.0.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/eventarc/apiv1/snippet_metadata.google.cloud.eventarc.v1.json b/internal/generated/snippets/eventarc/apiv1/snippet_metadata.google.cloud.eventarc.v1.json index 3b68db689a7..d4abc1b3a12 100644 --- a/internal/generated/snippets/eventarc/apiv1/snippet_metadata.google.cloud.eventarc.v1.json +++ b/internal/generated/snippets/eventarc/apiv1/snippet_metadata.google.cloud.eventarc.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/eventarc/apiv1", - "version": "1.12.1", + "version": "1.13.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/eventarc/publishing/apiv1/snippet_metadata.google.cloud.eventarc.publishing.v1.json b/internal/generated/snippets/eventarc/publishing/apiv1/snippet_metadata.google.cloud.eventarc.publishing.v1.json index 048102e4164..f341f0f2d9d 100644 --- a/internal/generated/snippets/eventarc/publishing/apiv1/snippet_metadata.google.cloud.eventarc.publishing.v1.json +++ b/internal/generated/snippets/eventarc/publishing/apiv1/snippet_metadata.google.cloud.eventarc.publishing.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/eventarc/publishing/apiv1", - "version": "1.12.1", + "version": "1.13.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/gkemulticloud/apiv1/snippet_metadata.google.cloud.gkemulticloud.v1.json b/internal/generated/snippets/gkemulticloud/apiv1/snippet_metadata.google.cloud.gkemulticloud.v1.json index 9f0feca9644..f912208199e 100644 --- a/internal/generated/snippets/gkemulticloud/apiv1/snippet_metadata.google.cloud.gkemulticloud.v1.json +++ b/internal/generated/snippets/gkemulticloud/apiv1/snippet_metadata.google.cloud.gkemulticloud.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/gkemulticloud/apiv1", - "version": "0.6.1", + "version": "1.0.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/go.mod b/internal/generated/snippets/go.mod index 9fbfb2e3815..a825760d0c8 100644 --- a/internal/generated/snippets/go.mod +++ b/internal/generated/snippets/go.mod @@ -432,3 +432,5 @@ replace cloud.google.com/go/rapidmigrationassessment => ../../../rapidmigrationa replace cloud.google.com/go/migrationcenter => ../../../migrationcenter replace cloud.google.com/go/ai => ../../../ai + +replace cloud.google.com/go/commerce => ../../../commerce diff --git a/internal/generated/snippets/kms/apiv1/snippet_metadata.google.cloud.kms.v1.json b/internal/generated/snippets/kms/apiv1/snippet_metadata.google.cloud.kms.v1.json index 465a79ae921..0f1ab8f9684 100644 --- a/internal/generated/snippets/kms/apiv1/snippet_metadata.google.cloud.kms.v1.json +++ b/internal/generated/snippets/kms/apiv1/snippet_metadata.google.cloud.kms.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/kms/apiv1", - "version": "1.14.0", + "version": "1.15.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/kms/inventory/apiv1/snippet_metadata.google.cloud.kms.inventory.v1.json b/internal/generated/snippets/kms/inventory/apiv1/snippet_metadata.google.cloud.kms.inventory.v1.json index f6fbc6d3618..7ad06a4f670 100644 --- a/internal/generated/snippets/kms/inventory/apiv1/snippet_metadata.google.cloud.kms.inventory.v1.json +++ b/internal/generated/snippets/kms/inventory/apiv1/snippet_metadata.google.cloud.kms.inventory.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/kms/inventory/apiv1", - "version": "1.14.0", + "version": "1.15.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/maps/addressvalidation/apiv1/snippet_metadata.google.maps.addressvalidation.v1.json b/internal/generated/snippets/maps/addressvalidation/apiv1/snippet_metadata.google.maps.addressvalidation.v1.json index 01a7202b9f7..450ea1b7432 100644 --- a/internal/generated/snippets/maps/addressvalidation/apiv1/snippet_metadata.google.maps.addressvalidation.v1.json +++ b/internal/generated/snippets/maps/addressvalidation/apiv1/snippet_metadata.google.maps.addressvalidation.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/maps/addressvalidation/apiv1", - "version": "1.3.0", + "version": "1.4.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/maps/mapsplatformdatasets/apiv1alpha/snippet_metadata.google.maps.mapsplatformdatasets.v1alpha.json b/internal/generated/snippets/maps/mapsplatformdatasets/apiv1alpha/snippet_metadata.google.maps.mapsplatformdatasets.v1alpha.json index 20ed4f3795c..733af4f0c3b 100644 --- a/internal/generated/snippets/maps/mapsplatformdatasets/apiv1alpha/snippet_metadata.google.maps.mapsplatformdatasets.v1alpha.json +++ b/internal/generated/snippets/maps/mapsplatformdatasets/apiv1alpha/snippet_metadata.google.maps.mapsplatformdatasets.v1alpha.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/maps/mapsplatformdatasets/apiv1alpha", - "version": "1.3.0", + "version": "1.4.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/maps/places/apiv1/snippet_metadata.google.maps.places.v1.json b/internal/generated/snippets/maps/places/apiv1/snippet_metadata.google.maps.places.v1.json index 9a3520f6c62..6a72395f725 100644 --- a/internal/generated/snippets/maps/places/apiv1/snippet_metadata.google.maps.places.v1.json +++ b/internal/generated/snippets/maps/places/apiv1/snippet_metadata.google.maps.places.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/maps/places/apiv1", - "version": "1.3.0", + "version": "1.4.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/maps/routing/apiv2/snippet_metadata.google.maps.routing.v2.json b/internal/generated/snippets/maps/routing/apiv2/snippet_metadata.google.maps.routing.v2.json index ae1b42391f4..acbd8e67923 100644 --- a/internal/generated/snippets/maps/routing/apiv2/snippet_metadata.google.maps.routing.v2.json +++ b/internal/generated/snippets/maps/routing/apiv2/snippet_metadata.google.maps.routing.v2.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/maps/routing/apiv2", - "version": "1.3.0", + "version": "1.4.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/policytroubleshooter/apiv1/snippet_metadata.google.cloud.policytroubleshooter.v1.json b/internal/generated/snippets/policytroubleshooter/apiv1/snippet_metadata.google.cloud.policytroubleshooter.v1.json index 19a7abcbeba..169ff036bdd 100644 --- a/internal/generated/snippets/policytroubleshooter/apiv1/snippet_metadata.google.cloud.policytroubleshooter.v1.json +++ b/internal/generated/snippets/policytroubleshooter/apiv1/snippet_metadata.google.cloud.policytroubleshooter.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/policytroubleshooter/apiv1", - "version": "1.7.1", + "version": "1.8.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/pubsub/apiv1/snippet_metadata.google.pubsub.v1.json b/internal/generated/snippets/pubsub/apiv1/snippet_metadata.google.pubsub.v1.json index 56816870247..a980cdb4b5c 100644 --- a/internal/generated/snippets/pubsub/apiv1/snippet_metadata.google.pubsub.v1.json +++ b/internal/generated/snippets/pubsub/apiv1/snippet_metadata.google.pubsub.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/pubsub/apiv1", - "version": "1.32.0", + "version": "1.33.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/rapidmigrationassessment/apiv1/snippet_metadata.google.cloud.rapidmigrationassessment.v1.json b/internal/generated/snippets/rapidmigrationassessment/apiv1/snippet_metadata.google.cloud.rapidmigrationassessment.v1.json index 6d9e936aba9..b38d13702b5 100644 --- a/internal/generated/snippets/rapidmigrationassessment/apiv1/snippet_metadata.google.cloud.rapidmigrationassessment.v1.json +++ b/internal/generated/snippets/rapidmigrationassessment/apiv1/snippet_metadata.google.cloud.rapidmigrationassessment.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/rapidmigrationassessment/apiv1", - "version": "0.1.2", + "version": "1.0.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/servicedirectory/apiv1/snippet_metadata.google.cloud.servicedirectory.v1.json b/internal/generated/snippets/servicedirectory/apiv1/snippet_metadata.google.cloud.servicedirectory.v1.json index 78974bf4729..ac9de9c028c 100644 --- a/internal/generated/snippets/servicedirectory/apiv1/snippet_metadata.google.cloud.servicedirectory.v1.json +++ b/internal/generated/snippets/servicedirectory/apiv1/snippet_metadata.google.cloud.servicedirectory.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/servicedirectory/apiv1", - "version": "1.10.1", + "version": "1.11.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/servicedirectory/apiv1beta1/snippet_metadata.google.cloud.servicedirectory.v1beta1.json b/internal/generated/snippets/servicedirectory/apiv1beta1/snippet_metadata.google.cloud.servicedirectory.v1beta1.json index 87b47444b8b..72beb25e349 100644 --- a/internal/generated/snippets/servicedirectory/apiv1beta1/snippet_metadata.google.cloud.servicedirectory.v1beta1.json +++ b/internal/generated/snippets/servicedirectory/apiv1beta1/snippet_metadata.google.cloud.servicedirectory.v1beta1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/servicedirectory/apiv1beta1", - "version": "1.10.1", + "version": "1.11.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/storageinsights/apiv1/snippet_metadata.google.cloud.storageinsights.v1.json b/internal/generated/snippets/storageinsights/apiv1/snippet_metadata.google.cloud.storageinsights.v1.json index 3e14866bd15..36ab3423419 100644 --- a/internal/generated/snippets/storageinsights/apiv1/snippet_metadata.google.cloud.storageinsights.v1.json +++ b/internal/generated/snippets/storageinsights/apiv1/snippet_metadata.google.cloud.storageinsights.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/storageinsights/apiv1", - "version": "0.2.2", + "version": "1.0.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/support/apiv2/snippet_metadata.google.cloud.support.v2.json b/internal/generated/snippets/support/apiv2/snippet_metadata.google.cloud.support.v2.json index 20f655d7193..25cfc0ff636 100644 --- a/internal/generated/snippets/support/apiv2/snippet_metadata.google.cloud.support.v2.json +++ b/internal/generated/snippets/support/apiv2/snippet_metadata.google.cloud.support.v2.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/support/apiv2", - "version": "0.2.2", + "version": "1.0.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/video/livestream/apiv1/snippet_metadata.google.cloud.video.livestream.v1.json b/internal/generated/snippets/video/livestream/apiv1/snippet_metadata.google.cloud.video.livestream.v1.json index 64731b2cf49..3d1e3844dd5 100644 --- a/internal/generated/snippets/video/livestream/apiv1/snippet_metadata.google.cloud.video.livestream.v1.json +++ b/internal/generated/snippets/video/livestream/apiv1/snippet_metadata.google.cloud.video.livestream.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/video/livestream/apiv1", - "version": "1.18.0", + "version": "1.19.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/video/transcoder/apiv1/snippet_metadata.google.cloud.video.transcoder.v1.json b/internal/generated/snippets/video/transcoder/apiv1/snippet_metadata.google.cloud.video.transcoder.v1.json index 87f2877e6ae..1c118ae824f 100644 --- a/internal/generated/snippets/video/transcoder/apiv1/snippet_metadata.google.cloud.video.transcoder.v1.json +++ b/internal/generated/snippets/video/transcoder/apiv1/snippet_metadata.google.cloud.video.transcoder.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/video/transcoder/apiv1", - "version": "1.18.0", + "version": "1.19.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/vmwareengine/apiv1/snippet_metadata.google.cloud.vmwareengine.v1.json b/internal/generated/snippets/vmwareengine/apiv1/snippet_metadata.google.cloud.vmwareengine.v1.json index e074e383a52..63b715bb92d 100644 --- a/internal/generated/snippets/vmwareengine/apiv1/snippet_metadata.google.cloud.vmwareengine.v1.json +++ b/internal/generated/snippets/vmwareengine/apiv1/snippet_metadata.google.cloud.vmwareengine.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/vmwareengine/apiv1", - "version": "0.4.1", + "version": "1.0.0", "language": "GO", "apis": [ { diff --git a/release-please-config-yoshi-submodules.json b/release-please-config-yoshi-submodules.json index 47ac65fc869..f7877aa8cda 100644 --- a/release-please-config-yoshi-submodules.json +++ b/release-please-config-yoshi-submodules.json @@ -84,6 +84,9 @@ "cloudtasks": { "component": "cloudtasks" }, + "commerce": { + "component": "commerce" + }, "compute": { "component": "compute" },