// Copyright 2025 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.35.2
// 	protoc        v4.25.7
// source: google/cloud/bigquery/analyticshub/v1/analyticshub.proto

package analyticshubpb

import (
	iampb "cloud.google.com/go/iam/apiv1/iampb"
	longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb"
	context "context"
	_ "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"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
	reflect "reflect"
	sync "sync"
)

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)
)

// Specifies the type of discovery on the discovery page. Note that
// this does not control the visibility of the exchange/listing which is
// defined by IAM permission.
type DiscoveryType int32

const (
	// Unspecified. Defaults to DISCOVERY_TYPE_PRIVATE.
	DiscoveryType_DISCOVERY_TYPE_UNSPECIFIED DiscoveryType = 0
	// The Data exchange/listing can be discovered in the 'Private' results
	// list.
	DiscoveryType_DISCOVERY_TYPE_PRIVATE DiscoveryType = 1
	// The Data exchange/listing can be discovered in the 'Public' results
	// list.
	DiscoveryType_DISCOVERY_TYPE_PUBLIC DiscoveryType = 2
)

// Enum value maps for DiscoveryType.
var (
	DiscoveryType_name = map[int32]string{
		0: "DISCOVERY_TYPE_UNSPECIFIED",
		1: "DISCOVERY_TYPE_PRIVATE",
		2: "DISCOVERY_TYPE_PUBLIC",
	}
	DiscoveryType_value = map[string]int32{
		"DISCOVERY_TYPE_UNSPECIFIED": 0,
		"DISCOVERY_TYPE_PRIVATE":     1,
		"DISCOVERY_TYPE_PUBLIC":      2,
	}
)

func (x DiscoveryType) Enum() *DiscoveryType {
	p := new(DiscoveryType)
	*p = x
	return p
}

func (x DiscoveryType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DiscoveryType) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[0].Descriptor()
}

func (DiscoveryType) Type() protoreflect.EnumType {
	return &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[0]
}

func (x DiscoveryType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use DiscoveryType.Descriptor instead.
func (DiscoveryType) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{0}
}

// The underlying shared asset type shared in a listing by a publisher.
type SharedResourceType int32

const (
	// Not specified.
	SharedResourceType_SHARED_RESOURCE_TYPE_UNSPECIFIED SharedResourceType = 0
	// BigQuery Dataset Asset.
	SharedResourceType_BIGQUERY_DATASET SharedResourceType = 1
	// Pub/Sub Topic Asset.
	SharedResourceType_PUBSUB_TOPIC SharedResourceType = 2
)

// Enum value maps for SharedResourceType.
var (
	SharedResourceType_name = map[int32]string{
		0: "SHARED_RESOURCE_TYPE_UNSPECIFIED",
		1: "BIGQUERY_DATASET",
		2: "PUBSUB_TOPIC",
	}
	SharedResourceType_value = map[string]int32{
		"SHARED_RESOURCE_TYPE_UNSPECIFIED": 0,
		"BIGQUERY_DATASET":                 1,
		"PUBSUB_TOPIC":                     2,
	}
)

func (x SharedResourceType) Enum() *SharedResourceType {
	p := new(SharedResourceType)
	*p = x
	return p
}

func (x SharedResourceType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (SharedResourceType) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[1].Descriptor()
}

func (SharedResourceType) Type() protoreflect.EnumType {
	return &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[1]
}

func (x SharedResourceType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use SharedResourceType.Descriptor instead.
func (SharedResourceType) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{1}
}

// The QueryTemplate lifecycle state.
type QueryTemplate_State int32

const (
	// Default value. This value is unused.
	QueryTemplate_STATE_UNSPECIFIED QueryTemplate_State = 0
	// The QueryTemplate is in draft state.
	QueryTemplate_DRAFTED QueryTemplate_State = 1
	// The QueryTemplate is in pending state.
	QueryTemplate_PENDING QueryTemplate_State = 2
	// The QueryTemplate is in deleted state.
	QueryTemplate_DELETED QueryTemplate_State = 3
	// The QueryTemplate is in approved state.
	QueryTemplate_APPROVED QueryTemplate_State = 4
)

// Enum value maps for QueryTemplate_State.
var (
	QueryTemplate_State_name = map[int32]string{
		0: "STATE_UNSPECIFIED",
		1: "DRAFTED",
		2: "PENDING",
		3: "DELETED",
		4: "APPROVED",
	}
	QueryTemplate_State_value = map[string]int32{
		"STATE_UNSPECIFIED": 0,
		"DRAFTED":           1,
		"PENDING":           2,
		"DELETED":           3,
		"APPROVED":          4,
	}
)

func (x QueryTemplate_State) Enum() *QueryTemplate_State {
	p := new(QueryTemplate_State)
	*p = x
	return p
}

func (x QueryTemplate_State) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (QueryTemplate_State) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[2].Descriptor()
}

func (QueryTemplate_State) Type() protoreflect.EnumType {
	return &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[2]
}

func (x QueryTemplate_State) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use QueryTemplate_State.Descriptor instead.
func (QueryTemplate_State) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{1, 0}
}

// Represents the type of a given routine.
type Routine_RoutineType int32

const (
	// Default value.
	Routine_ROUTINE_TYPE_UNSPECIFIED Routine_RoutineType = 0
	// Non-built-in persistent TVF.
	Routine_TABLE_VALUED_FUNCTION Routine_RoutineType = 1
)

// Enum value maps for Routine_RoutineType.
var (
	Routine_RoutineType_name = map[int32]string{
		0: "ROUTINE_TYPE_UNSPECIFIED",
		1: "TABLE_VALUED_FUNCTION",
	}
	Routine_RoutineType_value = map[string]int32{
		"ROUTINE_TYPE_UNSPECIFIED": 0,
		"TABLE_VALUED_FUNCTION":    1,
	}
)

func (x Routine_RoutineType) Enum() *Routine_RoutineType {
	p := new(Routine_RoutineType)
	*p = x
	return p
}

func (x Routine_RoutineType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Routine_RoutineType) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[3].Descriptor()
}

func (Routine_RoutineType) Type() protoreflect.EnumType {
	return &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[3]
}

func (x Routine_RoutineType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Routine_RoutineType.Descriptor instead.
func (Routine_RoutineType) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{2, 0}
}

// State of the listing.
type Listing_State int32

const (
	// Default value. This value is unused.
	Listing_STATE_UNSPECIFIED Listing_State = 0
	// Subscribable state. Users with dataexchange.listings.subscribe permission
	// can subscribe to this listing.
	Listing_ACTIVE Listing_State = 1
)

// Enum value maps for Listing_State.
var (
	Listing_State_name = map[int32]string{
		0: "STATE_UNSPECIFIED",
		1: "ACTIVE",
	}
	Listing_State_value = map[string]int32{
		"STATE_UNSPECIFIED": 0,
		"ACTIVE":            1,
	}
)

func (x Listing_State) Enum() *Listing_State {
	p := new(Listing_State)
	*p = x
	return p
}

func (x Listing_State) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Listing_State) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[4].Descriptor()
}

func (Listing_State) Type() protoreflect.EnumType {
	return &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[4]
}

func (x Listing_State) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Listing_State.Descriptor instead.
func (Listing_State) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{17, 0}
}

// Listing categories.
type Listing_Category int32

const (
	Listing_CATEGORY_UNSPECIFIED                  Listing_Category = 0
	Listing_CATEGORY_OTHERS                       Listing_Category = 1
	Listing_CATEGORY_ADVERTISING_AND_MARKETING    Listing_Category = 2
	Listing_CATEGORY_COMMERCE                     Listing_Category = 3
	Listing_CATEGORY_CLIMATE_AND_ENVIRONMENT      Listing_Category = 4
	Listing_CATEGORY_DEMOGRAPHICS                 Listing_Category = 5
	Listing_CATEGORY_ECONOMICS                    Listing_Category = 6
	Listing_CATEGORY_EDUCATION                    Listing_Category = 7
	Listing_CATEGORY_ENERGY                       Listing_Category = 8
	Listing_CATEGORY_FINANCIAL                    Listing_Category = 9
	Listing_CATEGORY_GAMING                       Listing_Category = 10
	Listing_CATEGORY_GEOSPATIAL                   Listing_Category = 11
	Listing_CATEGORY_HEALTHCARE_AND_LIFE_SCIENCE  Listing_Category = 12
	Listing_CATEGORY_MEDIA                        Listing_Category = 13
	Listing_CATEGORY_PUBLIC_SECTOR                Listing_Category = 14
	Listing_CATEGORY_RETAIL                       Listing_Category = 15
	Listing_CATEGORY_SPORTS                       Listing_Category = 16
	Listing_CATEGORY_SCIENCE_AND_RESEARCH         Listing_Category = 17
	Listing_CATEGORY_TRANSPORTATION_AND_LOGISTICS Listing_Category = 18
	Listing_CATEGORY_TRAVEL_AND_TOURISM           Listing_Category = 19
	Listing_CATEGORY_GOOGLE_EARTH_ENGINE          Listing_Category = 20
)

// Enum value maps for Listing_Category.
var (
	Listing_Category_name = map[int32]string{
		0:  "CATEGORY_UNSPECIFIED",
		1:  "CATEGORY_OTHERS",
		2:  "CATEGORY_ADVERTISING_AND_MARKETING",
		3:  "CATEGORY_COMMERCE",
		4:  "CATEGORY_CLIMATE_AND_ENVIRONMENT",
		5:  "CATEGORY_DEMOGRAPHICS",
		6:  "CATEGORY_ECONOMICS",
		7:  "CATEGORY_EDUCATION",
		8:  "CATEGORY_ENERGY",
		9:  "CATEGORY_FINANCIAL",
		10: "CATEGORY_GAMING",
		11: "CATEGORY_GEOSPATIAL",
		12: "CATEGORY_HEALTHCARE_AND_LIFE_SCIENCE",
		13: "CATEGORY_MEDIA",
		14: "CATEGORY_PUBLIC_SECTOR",
		15: "CATEGORY_RETAIL",
		16: "CATEGORY_SPORTS",
		17: "CATEGORY_SCIENCE_AND_RESEARCH",
		18: "CATEGORY_TRANSPORTATION_AND_LOGISTICS",
		19: "CATEGORY_TRAVEL_AND_TOURISM",
		20: "CATEGORY_GOOGLE_EARTH_ENGINE",
	}
	Listing_Category_value = map[string]int32{
		"CATEGORY_UNSPECIFIED":                  0,
		"CATEGORY_OTHERS":                       1,
		"CATEGORY_ADVERTISING_AND_MARKETING":    2,
		"CATEGORY_COMMERCE":                     3,
		"CATEGORY_CLIMATE_AND_ENVIRONMENT":      4,
		"CATEGORY_DEMOGRAPHICS":                 5,
		"CATEGORY_ECONOMICS":                    6,
		"CATEGORY_EDUCATION":                    7,
		"CATEGORY_ENERGY":                       8,
		"CATEGORY_FINANCIAL":                    9,
		"CATEGORY_GAMING":                       10,
		"CATEGORY_GEOSPATIAL":                   11,
		"CATEGORY_HEALTHCARE_AND_LIFE_SCIENCE":  12,
		"CATEGORY_MEDIA":                        13,
		"CATEGORY_PUBLIC_SECTOR":                14,
		"CATEGORY_RETAIL":                       15,
		"CATEGORY_SPORTS":                       16,
		"CATEGORY_SCIENCE_AND_RESEARCH":         17,
		"CATEGORY_TRANSPORTATION_AND_LOGISTICS": 18,
		"CATEGORY_TRAVEL_AND_TOURISM":           19,
		"CATEGORY_GOOGLE_EARTH_ENGINE":          20,
	}
)

func (x Listing_Category) Enum() *Listing_Category {
	p := new(Listing_Category)
	*p = x
	return p
}

func (x Listing_Category) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Listing_Category) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[5].Descriptor()
}

func (Listing_Category) Type() protoreflect.EnumType {
	return &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[5]
}

func (x Listing_Category) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Listing_Category.Descriptor instead.
func (Listing_Category) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{17, 1}
}

// Replica state of the shared dataset.
type Listing_BigQueryDatasetSource_Replica_ReplicaState int32

const (
	// Default value. This value is unused.
	Listing_BigQueryDatasetSource_Replica_REPLICA_STATE_UNSPECIFIED Listing_BigQueryDatasetSource_Replica_ReplicaState = 0
	// The replica is backfilled and ready to use.
	Listing_BigQueryDatasetSource_Replica_READY_TO_USE Listing_BigQueryDatasetSource_Replica_ReplicaState = 1
	// The replica is unavailable, does not exist, or has not been
	// backfilled yet.
	Listing_BigQueryDatasetSource_Replica_UNAVAILABLE Listing_BigQueryDatasetSource_Replica_ReplicaState = 2
)

// Enum value maps for Listing_BigQueryDatasetSource_Replica_ReplicaState.
var (
	Listing_BigQueryDatasetSource_Replica_ReplicaState_name = map[int32]string{
		0: "REPLICA_STATE_UNSPECIFIED",
		1: "READY_TO_USE",
		2: "UNAVAILABLE",
	}
	Listing_BigQueryDatasetSource_Replica_ReplicaState_value = map[string]int32{
		"REPLICA_STATE_UNSPECIFIED": 0,
		"READY_TO_USE":              1,
		"UNAVAILABLE":               2,
	}
)

func (x Listing_BigQueryDatasetSource_Replica_ReplicaState) Enum() *Listing_BigQueryDatasetSource_Replica_ReplicaState {
	p := new(Listing_BigQueryDatasetSource_Replica_ReplicaState)
	*p = x
	return p
}

func (x Listing_BigQueryDatasetSource_Replica_ReplicaState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Listing_BigQueryDatasetSource_Replica_ReplicaState) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[6].Descriptor()
}

func (Listing_BigQueryDatasetSource_Replica_ReplicaState) Type() protoreflect.EnumType {
	return &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[6]
}

func (x Listing_BigQueryDatasetSource_Replica_ReplicaState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Listing_BigQueryDatasetSource_Replica_ReplicaState.Descriptor instead.
func (Listing_BigQueryDatasetSource_Replica_ReplicaState) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{17, 0, 2, 0}
}

// Primary state of the replica. Set only for the primary replica.
type Listing_BigQueryDatasetSource_Replica_PrimaryState int32

const (
	// Default value. This value is unused.
	Listing_BigQueryDatasetSource_Replica_PRIMARY_STATE_UNSPECIFIED Listing_BigQueryDatasetSource_Replica_PrimaryState = 0
	// The replica is the primary replica.
	Listing_BigQueryDatasetSource_Replica_PRIMARY_REPLICA Listing_BigQueryDatasetSource_Replica_PrimaryState = 1
)

// Enum value maps for Listing_BigQueryDatasetSource_Replica_PrimaryState.
var (
	Listing_BigQueryDatasetSource_Replica_PrimaryState_name = map[int32]string{
		0: "PRIMARY_STATE_UNSPECIFIED",
		1: "PRIMARY_REPLICA",
	}
	Listing_BigQueryDatasetSource_Replica_PrimaryState_value = map[string]int32{
		"PRIMARY_STATE_UNSPECIFIED": 0,
		"PRIMARY_REPLICA":           1,
	}
)

func (x Listing_BigQueryDatasetSource_Replica_PrimaryState) Enum() *Listing_BigQueryDatasetSource_Replica_PrimaryState {
	p := new(Listing_BigQueryDatasetSource_Replica_PrimaryState)
	*p = x
	return p
}

func (x Listing_BigQueryDatasetSource_Replica_PrimaryState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Listing_BigQueryDatasetSource_Replica_PrimaryState) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[7].Descriptor()
}

func (Listing_BigQueryDatasetSource_Replica_PrimaryState) Type() protoreflect.EnumType {
	return &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[7]
}

func (x Listing_BigQueryDatasetSource_Replica_PrimaryState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Listing_BigQueryDatasetSource_Replica_PrimaryState.Descriptor instead.
func (Listing_BigQueryDatasetSource_Replica_PrimaryState) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{17, 0, 2, 1}
}

// Indicates whether this commercial access is currently active.
type Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState int32

const (
	// Commercialization is incomplete and cannot be used.
	Listing_CommercialInfo_GoogleCloudMarketplaceInfo_COMMERCIAL_STATE_UNSPECIFIED Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState = 0
	// Commercialization has been initialized.
	Listing_CommercialInfo_GoogleCloudMarketplaceInfo_ONBOARDING Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState = 1
	// Commercialization is complete and available for use.
	Listing_CommercialInfo_GoogleCloudMarketplaceInfo_ACTIVE Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState = 2
)

// Enum value maps for Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState.
var (
	Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState_name = map[int32]string{
		0: "COMMERCIAL_STATE_UNSPECIFIED",
		1: "ONBOARDING",
		2: "ACTIVE",
	}
	Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState_value = map[string]int32{
		"COMMERCIAL_STATE_UNSPECIFIED": 0,
		"ONBOARDING":                   1,
		"ACTIVE":                       2,
	}
)

func (x Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState) Enum() *Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState {
	p := new(Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState)
	*p = x
	return p
}

func (x Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[8].Descriptor()
}

func (Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState) Type() protoreflect.EnumType {
	return &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[8]
}

func (x Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState.Descriptor instead.
func (Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{17, 3, 0, 0}
}

// State of the subscription.
type Subscription_State int32

const (
	// Default value. This value is unused.
	Subscription_STATE_UNSPECIFIED Subscription_State = 0
	// This subscription is active and the data is accessible.
	Subscription_STATE_ACTIVE Subscription_State = 1
	// The data referenced by this subscription is out of date and should be
	// refreshed. This can happen when a data provider adds or removes datasets.
	Subscription_STATE_STALE Subscription_State = 2
	// This subscription has been cancelled or revoked and the data is no longer
	// accessible.
	Subscription_STATE_INACTIVE Subscription_State = 3
)

// Enum value maps for Subscription_State.
var (
	Subscription_State_name = map[int32]string{
		0: "STATE_UNSPECIFIED",
		1: "STATE_ACTIVE",
		2: "STATE_STALE",
		3: "STATE_INACTIVE",
	}
	Subscription_State_value = map[string]int32{
		"STATE_UNSPECIFIED": 0,
		"STATE_ACTIVE":      1,
		"STATE_STALE":       2,
		"STATE_INACTIVE":    3,
	}
)

func (x Subscription_State) Enum() *Subscription_State {
	p := new(Subscription_State)
	*p = x
	return p
}

func (x Subscription_State) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Subscription_State) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[9].Descriptor()
}

func (Subscription_State) Type() protoreflect.EnumType {
	return &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes[9]
}

func (x Subscription_State) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Subscription_State.Descriptor instead.
func (Subscription_State) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{18, 0}
}

// A data exchange is a container that lets you share data. Along with the
// descriptive information about the data exchange, it contains listings that
// reference shared datasets.
type DataExchange struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Output only. The resource name of the data exchange.
	// e.g. `projects/myproject/locations/us/dataExchanges/123`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Required. Human-readable display name of the data exchange. The display
	// name must contain only Unicode letters, numbers (0-9), underscores (_),
	// dashes (-), spaces ( ), ampersands (&) and must not start or end with
	// spaces. Default value is an empty string. Max length: 63 bytes.
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Optional. Description of the data exchange. The description must not
	// contain Unicode non-characters as well as C0 and C1 control codes except
	// tabs (HT), new lines (LF), carriage returns (CR), and page breaks (FF).
	// Default value is an empty string.
	// Max length: 2000 bytes.
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// Optional. Email or URL of the primary point of contact of the data
	// exchange. Max Length: 1000 bytes.
	PrimaryContact string `protobuf:"bytes,4,opt,name=primary_contact,json=primaryContact,proto3" json:"primary_contact,omitempty"`
	// Optional. Documentation describing the data exchange.
	Documentation string `protobuf:"bytes,5,opt,name=documentation,proto3" json:"documentation,omitempty"`
	// Output only. Number of listings contained in the data exchange.
	ListingCount int32 `protobuf:"varint,6,opt,name=listing_count,json=listingCount,proto3" json:"listing_count,omitempty"`
	// Optional. Base64 encoded image representing the data exchange. Max
	// Size: 3.0MiB Expected image dimensions are 512x512 pixels, however the API
	// only performs validation on size of the encoded data. Note: For byte
	// fields, the content of the fields are base64-encoded (which increases the
	// size of the data by 33-36%) when using JSON on the wire.
	Icon []byte `protobuf:"bytes,7,opt,name=icon,proto3" json:"icon,omitempty"`
	// Optional. Configurable data sharing environment option for a data exchange.
	SharingEnvironmentConfig *SharingEnvironmentConfig `protobuf:"bytes,8,opt,name=sharing_environment_config,json=sharingEnvironmentConfig,proto3" json:"sharing_environment_config,omitempty"`
	// Optional. Type of discovery on the discovery page for all the listings
	// under this exchange. Updating this field also updates (overwrites) the
	// discovery_type field for all the listings under this exchange.
	DiscoveryType *DiscoveryType `protobuf:"varint,9,opt,name=discovery_type,json=discoveryType,proto3,enum=google.cloud.bigquery.analyticshub.v1.DiscoveryType,oneof" json:"discovery_type,omitempty"`
	// Optional. By default, false.
	// If true, the DataExchange has an email sharing mandate enabled.
	LogLinkedDatasetQueryUserEmail *bool `protobuf:"varint,10,opt,name=log_linked_dataset_query_user_email,json=logLinkedDatasetQueryUserEmail,proto3,oneof" json:"log_linked_dataset_query_user_email,omitempty"`
}

func (x *DataExchange) Reset() {
	*x = DataExchange{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DataExchange) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DataExchange) ProtoMessage() {}

func (x *DataExchange) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DataExchange.ProtoReflect.Descriptor instead.
func (*DataExchange) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{0}
}

func (x *DataExchange) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *DataExchange) GetDisplayName() string {
	if x != nil {
		return x.DisplayName
	}
	return ""
}

func (x *DataExchange) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *DataExchange) GetPrimaryContact() string {
	if x != nil {
		return x.PrimaryContact
	}
	return ""
}

func (x *DataExchange) GetDocumentation() string {
	if x != nil {
		return x.Documentation
	}
	return ""
}

func (x *DataExchange) GetListingCount() int32 {
	if x != nil {
		return x.ListingCount
	}
	return 0
}

func (x *DataExchange) GetIcon() []byte {
	if x != nil {
		return x.Icon
	}
	return nil
}

func (x *DataExchange) GetSharingEnvironmentConfig() *SharingEnvironmentConfig {
	if x != nil {
		return x.SharingEnvironmentConfig
	}
	return nil
}

func (x *DataExchange) GetDiscoveryType() DiscoveryType {
	if x != nil && x.DiscoveryType != nil {
		return *x.DiscoveryType
	}
	return DiscoveryType_DISCOVERY_TYPE_UNSPECIFIED
}

func (x *DataExchange) GetLogLinkedDatasetQueryUserEmail() bool {
	if x != nil && x.LogLinkedDatasetQueryUserEmail != nil {
		return *x.LogLinkedDatasetQueryUserEmail
	}
	return false
}

// A query template is a container for sharing table-valued functions defined by
// contributors in a data clean room.
type QueryTemplate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Output only. The resource name of the QueryTemplate.
	// e.g. `projects/myproject/locations/us/dataExchanges/123/queryTemplates/456`
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Required. Human-readable display name of the QueryTemplate. The display
	// name must contain only Unicode letters, numbers (0-9), underscores (_),
	// dashes (-), spaces ( ), ampersands (&) and can't start or end with spaces.
	// Default value is an empty string. Max length: 63 bytes.
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Optional. Short description of the QueryTemplate. The description must not
	// contain Unicode non-characters and C0 and C1 control codes except tabs
	// (HT), new lines (LF), carriage returns (CR), and page breaks (FF). Default
	// value is an empty string. Max length: 2000 bytes.
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// Optional. Will be deprecated.
	// Email or URL of the primary point of contact of the QueryTemplate.
	// Max Length: 1000 bytes.
	Proposer string `protobuf:"bytes,4,opt,name=proposer,proto3" json:"proposer,omitempty"`
	// Optional. Email or URL of the primary point of contact of the
	// QueryTemplate. Max Length: 1000 bytes.
	PrimaryContact string `protobuf:"bytes,10,opt,name=primary_contact,json=primaryContact,proto3" json:"primary_contact,omitempty"`
	// Optional. Documentation describing the QueryTemplate.
	Documentation string `protobuf:"bytes,5,opt,name=documentation,proto3" json:"documentation,omitempty"`
	// Output only. The QueryTemplate lifecycle state.
	State QueryTemplate_State `protobuf:"varint,6,opt,name=state,proto3,enum=google.cloud.bigquery.analyticshub.v1.QueryTemplate_State" json:"state,omitempty"`
	// Optional. The routine associated with the QueryTemplate.
	Routine *Routine `protobuf:"bytes,7,opt,name=routine,proto3" json:"routine,omitempty"`
	// Output only. Timestamp when the QueryTemplate was created.
	CreateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// Output only. Timestamp when the QueryTemplate was last modified.
	UpdateTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
}

func (x *QueryTemplate) Reset() {
	*x = QueryTemplate{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *QueryTemplate) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QueryTemplate) ProtoMessage() {}

func (x *QueryTemplate) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QueryTemplate.ProtoReflect.Descriptor instead.
func (*QueryTemplate) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{1}
}

func (x *QueryTemplate) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *QueryTemplate) GetDisplayName() string {
	if x != nil {
		return x.DisplayName
	}
	return ""
}

func (x *QueryTemplate) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *QueryTemplate) GetProposer() string {
	if x != nil {
		return x.Proposer
	}
	return ""
}

func (x *QueryTemplate) GetPrimaryContact() string {
	if x != nil {
		return x.PrimaryContact
	}
	return ""
}

func (x *QueryTemplate) GetDocumentation() string {
	if x != nil {
		return x.Documentation
	}
	return ""
}

func (x *QueryTemplate) GetState() QueryTemplate_State {
	if x != nil {
		return x.State
	}
	return QueryTemplate_STATE_UNSPECIFIED
}

func (x *QueryTemplate) GetRoutine() *Routine {
	if x != nil {
		return x.Routine
	}
	return nil
}

func (x *QueryTemplate) GetCreateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.CreateTime
	}
	return nil
}

func (x *QueryTemplate) GetUpdateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdateTime
	}
	return nil
}

// Represents a bigquery routine.
type Routine struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The type of routine.
	RoutineType Routine_RoutineType `protobuf:"varint,1,opt,name=routine_type,json=routineType,proto3,enum=google.cloud.bigquery.analyticshub.v1.Routine_RoutineType" json:"routine_type,omitempty"`
	// Optional. The definition body of the routine.
	DefinitionBody string `protobuf:"bytes,2,opt,name=definition_body,json=definitionBody,proto3" json:"definition_body,omitempty"`
}

func (x *Routine) Reset() {
	*x = Routine{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Routine) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Routine) ProtoMessage() {}

func (x *Routine) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Routine.ProtoReflect.Descriptor instead.
func (*Routine) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{2}
}

func (x *Routine) GetRoutineType() Routine_RoutineType {
	if x != nil {
		return x.RoutineType
	}
	return Routine_ROUTINE_TYPE_UNSPECIFIED
}

func (x *Routine) GetDefinitionBody() string {
	if x != nil {
		return x.DefinitionBody
	}
	return ""
}

// Message for creating a QueryTemplate.
type CreateQueryTemplateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The parent resource path of the QueryTemplate.
	// e.g.
	// `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myQueryTemplate`.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Required. The ID of the QueryTemplate to create.
	// Must contain only Unicode letters, numbers (0-9), underscores (_).
	// Max length: 100 bytes.
	QueryTemplateId string `protobuf:"bytes,2,opt,name=query_template_id,json=queryTemplateId,proto3" json:"query_template_id,omitempty"`
	// Required. The QueryTemplate to create.
	QueryTemplate *QueryTemplate `protobuf:"bytes,3,opt,name=query_template,json=queryTemplate,proto3" json:"query_template,omitempty"`
}

func (x *CreateQueryTemplateRequest) Reset() {
	*x = CreateQueryTemplateRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CreateQueryTemplateRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateQueryTemplateRequest) ProtoMessage() {}

func (x *CreateQueryTemplateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateQueryTemplateRequest.ProtoReflect.Descriptor instead.
func (*CreateQueryTemplateRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{3}
}

func (x *CreateQueryTemplateRequest) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *CreateQueryTemplateRequest) GetQueryTemplateId() string {
	if x != nil {
		return x.QueryTemplateId
	}
	return ""
}

func (x *CreateQueryTemplateRequest) GetQueryTemplate() *QueryTemplate {
	if x != nil {
		return x.QueryTemplate
	}
	return nil
}

// Message for creating a QueryTemplate.
type GetQueryTemplateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The parent resource path of the QueryTemplate.
	// e.g.
	// `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myqueryTemplate`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *GetQueryTemplateRequest) Reset() {
	*x = GetQueryTemplateRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetQueryTemplateRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetQueryTemplateRequest) ProtoMessage() {}

func (x *GetQueryTemplateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetQueryTemplateRequest.ProtoReflect.Descriptor instead.
func (*GetQueryTemplateRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{4}
}

func (x *GetQueryTemplateRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// Message for requesting the list of QueryTemplates.
type ListQueryTemplatesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The parent resource path of the QueryTemplates.
	// e.g. `projects/myproject/locations/us/dataExchanges/123`.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Optional. The maximum number of results to return in a single response
	// page. Leverage the page tokens to iterate through the entire collection.
	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Optional. Page token, returned by a previous call, to request the next page
	// of results.
	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
}

func (x *ListQueryTemplatesRequest) Reset() {
	*x = ListQueryTemplatesRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListQueryTemplatesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListQueryTemplatesRequest) ProtoMessage() {}

func (x *ListQueryTemplatesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListQueryTemplatesRequest.ProtoReflect.Descriptor instead.
func (*ListQueryTemplatesRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{5}
}

func (x *ListQueryTemplatesRequest) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *ListQueryTemplatesRequest) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListQueryTemplatesRequest) GetPageToken() string {
	if x != nil {
		return x.PageToken
	}
	return ""
}

// Message for response to the list of QueryTemplates.
type ListQueryTemplatesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The list of QueryTemplates.
	QueryTemplates []*QueryTemplate `protobuf:"bytes,1,rep,name=query_templates,json=queryTemplates,proto3" json:"query_templates,omitempty"`
	// A token to request the next page of results.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
}

func (x *ListQueryTemplatesResponse) Reset() {
	*x = ListQueryTemplatesResponse{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListQueryTemplatesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListQueryTemplatesResponse) ProtoMessage() {}

func (x *ListQueryTemplatesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListQueryTemplatesResponse.ProtoReflect.Descriptor instead.
func (*ListQueryTemplatesResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{6}
}

func (x *ListQueryTemplatesResponse) GetQueryTemplates() []*QueryTemplate {
	if x != nil {
		return x.QueryTemplates
	}
	return nil
}

func (x *ListQueryTemplatesResponse) GetNextPageToken() string {
	if x != nil {
		return x.NextPageToken
	}
	return ""
}

// Message for updating a QueryTemplate.
type UpdateQueryTemplateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Optional. Field mask specifies the fields to update in the query template
	// resource. The fields specified in the `updateMask` are relative to the
	// resource and are not a full request.
	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	// Required. The QueryTemplate to update.
	QueryTemplate *QueryTemplate `protobuf:"bytes,2,opt,name=query_template,json=queryTemplate,proto3" json:"query_template,omitempty"`
}

func (x *UpdateQueryTemplateRequest) Reset() {
	*x = UpdateQueryTemplateRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateQueryTemplateRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateQueryTemplateRequest) ProtoMessage() {}

func (x *UpdateQueryTemplateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateQueryTemplateRequest.ProtoReflect.Descriptor instead.
func (*UpdateQueryTemplateRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{7}
}

func (x *UpdateQueryTemplateRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.UpdateMask
	}
	return nil
}

func (x *UpdateQueryTemplateRequest) GetQueryTemplate() *QueryTemplate {
	if x != nil {
		return x.QueryTemplate
	}
	return nil
}

// Message for deleting a QueryTemplate.
type DeleteQueryTemplateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The resource path of the QueryTemplate.
	// e.g.
	// `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myqueryTemplate`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *DeleteQueryTemplateRequest) Reset() {
	*x = DeleteQueryTemplateRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteQueryTemplateRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteQueryTemplateRequest) ProtoMessage() {}

func (x *DeleteQueryTemplateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteQueryTemplateRequest.ProtoReflect.Descriptor instead.
func (*DeleteQueryTemplateRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{8}
}

func (x *DeleteQueryTemplateRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// Message for submitting a QueryTemplate.
type SubmitQueryTemplateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The resource path of the QueryTemplate.
	// e.g.
	// `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myqueryTemplate`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *SubmitQueryTemplateRequest) Reset() {
	*x = SubmitQueryTemplateRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SubmitQueryTemplateRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SubmitQueryTemplateRequest) ProtoMessage() {}

func (x *SubmitQueryTemplateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SubmitQueryTemplateRequest.ProtoReflect.Descriptor instead.
func (*SubmitQueryTemplateRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{9}
}

func (x *SubmitQueryTemplateRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// Message for approving a QueryTemplate.
type ApproveQueryTemplateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The resource path of the QueryTemplate.
	// e.g.
	// `projects/myproject/locations/us/dataExchanges/123/queryTemplates/myqueryTemplate`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *ApproveQueryTemplateRequest) Reset() {
	*x = ApproveQueryTemplateRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ApproveQueryTemplateRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ApproveQueryTemplateRequest) ProtoMessage() {}

func (x *ApproveQueryTemplateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ApproveQueryTemplateRequest.ProtoReflect.Descriptor instead.
func (*ApproveQueryTemplateRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{10}
}

func (x *ApproveQueryTemplateRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// Sharing environment is a behavior model for sharing data within a
// data exchange. This option is configurable for a data exchange.
type SharingEnvironmentConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Environment:
	//
	//	*SharingEnvironmentConfig_DefaultExchangeConfig_
	//	*SharingEnvironmentConfig_DcrExchangeConfig_
	Environment isSharingEnvironmentConfig_Environment `protobuf_oneof:"environment"`
}

func (x *SharingEnvironmentConfig) Reset() {
	*x = SharingEnvironmentConfig{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SharingEnvironmentConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SharingEnvironmentConfig) ProtoMessage() {}

func (x *SharingEnvironmentConfig) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SharingEnvironmentConfig.ProtoReflect.Descriptor instead.
func (*SharingEnvironmentConfig) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{11}
}

func (m *SharingEnvironmentConfig) GetEnvironment() isSharingEnvironmentConfig_Environment {
	if m != nil {
		return m.Environment
	}
	return nil
}

func (x *SharingEnvironmentConfig) GetDefaultExchangeConfig() *SharingEnvironmentConfig_DefaultExchangeConfig {
	if x, ok := x.GetEnvironment().(*SharingEnvironmentConfig_DefaultExchangeConfig_); ok {
		return x.DefaultExchangeConfig
	}
	return nil
}

func (x *SharingEnvironmentConfig) GetDcrExchangeConfig() *SharingEnvironmentConfig_DcrExchangeConfig {
	if x, ok := x.GetEnvironment().(*SharingEnvironmentConfig_DcrExchangeConfig_); ok {
		return x.DcrExchangeConfig
	}
	return nil
}

type isSharingEnvironmentConfig_Environment interface {
	isSharingEnvironmentConfig_Environment()
}

type SharingEnvironmentConfig_DefaultExchangeConfig_ struct {
	// Default Analytics Hub data exchange, used for secured data sharing.
	DefaultExchangeConfig *SharingEnvironmentConfig_DefaultExchangeConfig `protobuf:"bytes,1,opt,name=default_exchange_config,json=defaultExchangeConfig,proto3,oneof"`
}

type SharingEnvironmentConfig_DcrExchangeConfig_ struct {
	// Data Clean Room (DCR), used for privacy-safe and secured data sharing.
	DcrExchangeConfig *SharingEnvironmentConfig_DcrExchangeConfig `protobuf:"bytes,2,opt,name=dcr_exchange_config,json=dcrExchangeConfig,proto3,oneof"`
}

func (*SharingEnvironmentConfig_DefaultExchangeConfig_) isSharingEnvironmentConfig_Environment() {}

func (*SharingEnvironmentConfig_DcrExchangeConfig_) isSharingEnvironmentConfig_Environment() {}

// Contains details of the data provider.
type DataProvider struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Optional. Name of the data provider.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Optional. Email or URL of the data provider.
	// Max Length: 1000 bytes.
	PrimaryContact string `protobuf:"bytes,2,opt,name=primary_contact,json=primaryContact,proto3" json:"primary_contact,omitempty"`
}

func (x *DataProvider) Reset() {
	*x = DataProvider{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DataProvider) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DataProvider) ProtoMessage() {}

func (x *DataProvider) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DataProvider.ProtoReflect.Descriptor instead.
func (*DataProvider) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{12}
}

func (x *DataProvider) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *DataProvider) GetPrimaryContact() string {
	if x != nil {
		return x.PrimaryContact
	}
	return ""
}

// Contains details of the listing publisher.
type Publisher struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Optional. Name of the listing publisher.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Optional. Email or URL of the listing publisher.
	// Max Length: 1000 bytes.
	PrimaryContact string `protobuf:"bytes,2,opt,name=primary_contact,json=primaryContact,proto3" json:"primary_contact,omitempty"`
}

func (x *Publisher) Reset() {
	*x = Publisher{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Publisher) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Publisher) ProtoMessage() {}

func (x *Publisher) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Publisher.ProtoReflect.Descriptor instead.
func (*Publisher) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{13}
}

func (x *Publisher) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Publisher) GetPrimaryContact() string {
	if x != nil {
		return x.PrimaryContact
	}
	return ""
}

type DestinationDatasetReference struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. A unique ID for this dataset, without the project name. The ID
	// must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_).
	// The maximum length is 1,024 characters.
	DatasetId string `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"`
	// Required. The ID of the project containing this dataset.
	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
}

func (x *DestinationDatasetReference) Reset() {
	*x = DestinationDatasetReference{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DestinationDatasetReference) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DestinationDatasetReference) ProtoMessage() {}

func (x *DestinationDatasetReference) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DestinationDatasetReference.ProtoReflect.Descriptor instead.
func (*DestinationDatasetReference) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{14}
}

func (x *DestinationDatasetReference) GetDatasetId() string {
	if x != nil {
		return x.DatasetId
	}
	return ""
}

func (x *DestinationDatasetReference) GetProjectId() string {
	if x != nil {
		return x.ProjectId
	}
	return ""
}

// Defines the destination bigquery dataset.
type DestinationDataset struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. A reference that identifies the destination dataset.
	DatasetReference *DestinationDatasetReference `protobuf:"bytes,1,opt,name=dataset_reference,json=datasetReference,proto3" json:"dataset_reference,omitempty"`
	// Optional. A descriptive name for the dataset.
	FriendlyName *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=friendly_name,json=friendlyName,proto3" json:"friendly_name,omitempty"`
	// Optional. A user-friendly description of the dataset.
	Description *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// Optional. The labels associated with this dataset. You can use these
	// to organize and group your datasets.
	// You can set this property when inserting or updating a dataset.
	// See https://cloud.google.com/resource-manager/docs/creating-managing-labels
	// for more information.
	Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Required. The geographic location where the dataset should reside. See
	// https://cloud.google.com/bigquery/docs/locations for supported
	// locations.
	Location string `protobuf:"bytes,5,opt,name=location,proto3" json:"location,omitempty"`
	// Optional. The geographic locations where the dataset should be replicated.
	// See [BigQuery locations](https://cloud.google.com/bigquery/docs/locations)
	// for supported locations.
	ReplicaLocations []string `protobuf:"bytes,6,rep,name=replica_locations,json=replicaLocations,proto3" json:"replica_locations,omitempty"`
}

func (x *DestinationDataset) Reset() {
	*x = DestinationDataset{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DestinationDataset) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DestinationDataset) ProtoMessage() {}

func (x *DestinationDataset) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DestinationDataset.ProtoReflect.Descriptor instead.
func (*DestinationDataset) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{15}
}

func (x *DestinationDataset) GetDatasetReference() *DestinationDatasetReference {
	if x != nil {
		return x.DatasetReference
	}
	return nil
}

func (x *DestinationDataset) GetFriendlyName() *wrapperspb.StringValue {
	if x != nil {
		return x.FriendlyName
	}
	return nil
}

func (x *DestinationDataset) GetDescription() *wrapperspb.StringValue {
	if x != nil {
		return x.Description
	}
	return nil
}

func (x *DestinationDataset) GetLabels() map[string]string {
	if x != nil {
		return x.Labels
	}
	return nil
}

func (x *DestinationDataset) GetLocation() string {
	if x != nil {
		return x.Location
	}
	return ""
}

func (x *DestinationDataset) GetReplicaLocations() []string {
	if x != nil {
		return x.ReplicaLocations
	}
	return nil
}

// Defines the destination Pub/Sub subscription.
type DestinationPubSubSubscription struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Destination Pub/Sub subscription resource.
	PubsubSubscription *PubSubSubscription `protobuf:"bytes,1,opt,name=pubsub_subscription,json=pubsubSubscription,proto3" json:"pubsub_subscription,omitempty"`
}

func (x *DestinationPubSubSubscription) Reset() {
	*x = DestinationPubSubSubscription{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DestinationPubSubSubscription) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DestinationPubSubSubscription) ProtoMessage() {}

func (x *DestinationPubSubSubscription) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DestinationPubSubSubscription.ProtoReflect.Descriptor instead.
func (*DestinationPubSubSubscription) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{16}
}

func (x *DestinationPubSubSubscription) GetPubsubSubscription() *PubSubSubscription {
	if x != nil {
		return x.PubsubSubscription
	}
	return nil
}

// A listing is what gets published into a data exchange that a subscriber can
// subscribe to. It contains a reference to the data source along with
// descriptive information that will help subscribers find and subscribe the
// data.
type Listing struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Listing source.
	//
	// Types that are assignable to Source:
	//
	//	*Listing_BigqueryDataset
	//	*Listing_PubsubTopic
	Source isListing_Source `protobuf_oneof:"source"`
	// Output only. The resource name of the listing.
	// e.g. `projects/myproject/locations/us/dataExchanges/123/listings/456`
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Required. Human-readable display name of the listing. The display name must
	// contain only Unicode letters, numbers (0-9), underscores (_), dashes (-),
	// spaces ( ), ampersands (&) and can't start or end with spaces. Default
	// value is an empty string. Max length: 63 bytes.
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Optional. Short description of the listing. The description must not
	// contain Unicode non-characters and C0 and C1 control codes except tabs
	// (HT), new lines (LF), carriage returns (CR), and page breaks (FF). Default
	// value is an empty string. Max length: 2000 bytes.
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// Optional. Email or URL of the primary point of contact of the listing.
	// Max Length: 1000 bytes.
	PrimaryContact string `protobuf:"bytes,4,opt,name=primary_contact,json=primaryContact,proto3" json:"primary_contact,omitempty"`
	// Optional. Documentation describing the listing.
	Documentation string `protobuf:"bytes,5,opt,name=documentation,proto3" json:"documentation,omitempty"`
	// Output only. Current state of the listing.
	State Listing_State `protobuf:"varint,7,opt,name=state,proto3,enum=google.cloud.bigquery.analyticshub.v1.Listing_State" json:"state,omitempty"`
	// Optional. Base64 encoded image representing the listing. Max Size: 3.0MiB
	// Expected image dimensions are 512x512 pixels, however the API only
	// performs validation on size of the encoded data.
	// Note: For byte fields, the contents of the field are base64-encoded (which
	// increases the size of the data by 33-36%) when using JSON on the wire.
	Icon []byte `protobuf:"bytes,8,opt,name=icon,proto3" json:"icon,omitempty"`
	// Optional. Details of the data provider who owns the source data.
	DataProvider *DataProvider `protobuf:"bytes,9,opt,name=data_provider,json=dataProvider,proto3" json:"data_provider,omitempty"`
	// Optional. Categories of the listing. Up to five categories are allowed.
	Categories []Listing_Category `protobuf:"varint,10,rep,packed,name=categories,proto3,enum=google.cloud.bigquery.analyticshub.v1.Listing_Category" json:"categories,omitempty"`
	// Optional. Details of the publisher who owns the listing and who can share
	// the source data.
	Publisher *Publisher `protobuf:"bytes,11,opt,name=publisher,proto3" json:"publisher,omitempty"`
	// Optional. Email or URL of the request access of the listing.
	// Subscribers can use this reference to request access.
	// Max Length: 1000 bytes.
	RequestAccess string `protobuf:"bytes,12,opt,name=request_access,json=requestAccess,proto3" json:"request_access,omitempty"`
	// Optional. If set, restricted export configuration will be propagated and
	// enforced on the linked dataset.
	RestrictedExportConfig *Listing_RestrictedExportConfig `protobuf:"bytes,13,opt,name=restricted_export_config,json=restrictedExportConfig,proto3" json:"restricted_export_config,omitempty"`
	// Optional. Type of discovery of the listing on the discovery page.
	DiscoveryType *DiscoveryType `protobuf:"varint,14,opt,name=discovery_type,json=discoveryType,proto3,enum=google.cloud.bigquery.analyticshub.v1.DiscoveryType,oneof" json:"discovery_type,omitempty"`
	// Output only. Listing shared asset type.
	ResourceType SharedResourceType `protobuf:"varint,15,opt,name=resource_type,json=resourceType,proto3,enum=google.cloud.bigquery.analyticshub.v1.SharedResourceType" json:"resource_type,omitempty"`
	// Output only. Commercial info contains the information about the commercial
	// data products associated with the listing.
	CommercialInfo *Listing_CommercialInfo `protobuf:"bytes,17,opt,name=commercial_info,json=commercialInfo,proto3,oneof" json:"commercial_info,omitempty"`
	// Optional. By default, false.
	// If true, the Listing has an email sharing mandate enabled.
	LogLinkedDatasetQueryUserEmail *bool `protobuf:"varint,18,opt,name=log_linked_dataset_query_user_email,json=logLinkedDatasetQueryUserEmail,proto3,oneof" json:"log_linked_dataset_query_user_email,omitempty"`
	// Optional. If true, the listing is only available to get the resource
	// metadata. Listing is non subscribable.
	AllowOnlyMetadataSharing *bool `protobuf:"varint,19,opt,name=allow_only_metadata_sharing,json=allowOnlyMetadataSharing,proto3,oneof" json:"allow_only_metadata_sharing,omitempty"`
}

func (x *Listing) Reset() {
	*x = Listing{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Listing) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Listing) ProtoMessage() {}

func (x *Listing) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[17]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Listing.ProtoReflect.Descriptor instead.
func (*Listing) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{17}
}

func (m *Listing) GetSource() isListing_Source {
	if m != nil {
		return m.Source
	}
	return nil
}

func (x *Listing) GetBigqueryDataset() *Listing_BigQueryDatasetSource {
	if x, ok := x.GetSource().(*Listing_BigqueryDataset); ok {
		return x.BigqueryDataset
	}
	return nil
}

func (x *Listing) GetPubsubTopic() *Listing_PubSubTopicSource {
	if x, ok := x.GetSource().(*Listing_PubsubTopic); ok {
		return x.PubsubTopic
	}
	return nil
}

func (x *Listing) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Listing) GetDisplayName() string {
	if x != nil {
		return x.DisplayName
	}
	return ""
}

func (x *Listing) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *Listing) GetPrimaryContact() string {
	if x != nil {
		return x.PrimaryContact
	}
	return ""
}

func (x *Listing) GetDocumentation() string {
	if x != nil {
		return x.Documentation
	}
	return ""
}

func (x *Listing) GetState() Listing_State {
	if x != nil {
		return x.State
	}
	return Listing_STATE_UNSPECIFIED
}

func (x *Listing) GetIcon() []byte {
	if x != nil {
		return x.Icon
	}
	return nil
}

func (x *Listing) GetDataProvider() *DataProvider {
	if x != nil {
		return x.DataProvider
	}
	return nil
}

func (x *Listing) GetCategories() []Listing_Category {
	if x != nil {
		return x.Categories
	}
	return nil
}

func (x *Listing) GetPublisher() *Publisher {
	if x != nil {
		return x.Publisher
	}
	return nil
}

func (x *Listing) GetRequestAccess() string {
	if x != nil {
		return x.RequestAccess
	}
	return ""
}

func (x *Listing) GetRestrictedExportConfig() *Listing_RestrictedExportConfig {
	if x != nil {
		return x.RestrictedExportConfig
	}
	return nil
}

func (x *Listing) GetDiscoveryType() DiscoveryType {
	if x != nil && x.DiscoveryType != nil {
		return *x.DiscoveryType
	}
	return DiscoveryType_DISCOVERY_TYPE_UNSPECIFIED
}

func (x *Listing) GetResourceType() SharedResourceType {
	if x != nil {
		return x.ResourceType
	}
	return SharedResourceType_SHARED_RESOURCE_TYPE_UNSPECIFIED
}

func (x *Listing) GetCommercialInfo() *Listing_CommercialInfo {
	if x != nil {
		return x.CommercialInfo
	}
	return nil
}

func (x *Listing) GetLogLinkedDatasetQueryUserEmail() bool {
	if x != nil && x.LogLinkedDatasetQueryUserEmail != nil {
		return *x.LogLinkedDatasetQueryUserEmail
	}
	return false
}

func (x *Listing) GetAllowOnlyMetadataSharing() bool {
	if x != nil && x.AllowOnlyMetadataSharing != nil {
		return *x.AllowOnlyMetadataSharing
	}
	return false
}

type isListing_Source interface {
	isListing_Source()
}

type Listing_BigqueryDataset struct {
	// Shared dataset i.e. BigQuery dataset source.
	BigqueryDataset *Listing_BigQueryDatasetSource `protobuf:"bytes,6,opt,name=bigquery_dataset,json=bigqueryDataset,proto3,oneof"`
}

type Listing_PubsubTopic struct {
	// Pub/Sub topic source.
	PubsubTopic *Listing_PubSubTopicSource `protobuf:"bytes,16,opt,name=pubsub_topic,json=pubsubTopic,proto3,oneof"`
}

func (*Listing_BigqueryDataset) isListing_Source() {}

func (*Listing_PubsubTopic) isListing_Source() {}

// A subscription represents a subscribers' access to a particular set of
// published data. It contains references to associated listings,
// data exchanges, and linked datasets.
type Subscription struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to ResourceName:
	//
	//	*Subscription_Listing
	//	*Subscription_DataExchange
	ResourceName isSubscription_ResourceName `protobuf_oneof:"resource_name"`
	// Output only. The resource name of the subscription.
	// e.g. `projects/myproject/locations/us/subscriptions/123`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Output only. Timestamp when the subscription was created.
	CreationTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=creation_time,json=creationTime,proto3" json:"creation_time,omitempty"`
	// Output only. Timestamp when the subscription was last modified.
	LastModifyTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=last_modify_time,json=lastModifyTime,proto3" json:"last_modify_time,omitempty"`
	// Output only. Organization of the project this subscription belongs to.
	OrganizationId string `protobuf:"bytes,4,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"`
	// Output only. Display name of the project of this subscription.
	OrganizationDisplayName string `protobuf:"bytes,10,opt,name=organization_display_name,json=organizationDisplayName,proto3" json:"organization_display_name,omitempty"`
	// Output only. Current state of the subscription.
	State Subscription_State `protobuf:"varint,7,opt,name=state,proto3,enum=google.cloud.bigquery.analyticshub.v1.Subscription_State" json:"state,omitempty"`
	// Output only. Map of listing resource names to associated linked resource,
	// e.g. projects/123/locations/us/dataExchanges/456/listings/789
	// ->
	// projects/123/datasets/my_dataset
	//
	// For listing-level subscriptions, this is a map of size 1.
	// Only contains values if state == STATE_ACTIVE.
	LinkedDatasetMap map[string]*Subscription_LinkedResource `protobuf:"bytes,8,rep,name=linked_dataset_map,json=linkedDatasetMap,proto3" json:"linked_dataset_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Output only. Email of the subscriber.
	SubscriberContact string `protobuf:"bytes,9,opt,name=subscriber_contact,json=subscriberContact,proto3" json:"subscriber_contact,omitempty"`
	// Output only. Linked resources created in the subscription. Only contains
	// values if state = STATE_ACTIVE.
	LinkedResources []*Subscription_LinkedResource `protobuf:"bytes,11,rep,name=linked_resources,json=linkedResources,proto3" json:"linked_resources,omitempty"`
	// Output only. Listing shared asset type.
	ResourceType SharedResourceType `protobuf:"varint,12,opt,name=resource_type,json=resourceType,proto3,enum=google.cloud.bigquery.analyticshub.v1.SharedResourceType" json:"resource_type,omitempty"`
	// Output only. This is set if this is a commercial subscription i.e. if this
	// subscription was created from subscribing to a commercial listing.
	CommercialInfo *Subscription_CommercialInfo `protobuf:"bytes,13,opt,name=commercial_info,json=commercialInfo,proto3" json:"commercial_info,omitempty"`
	// Output only. By default, false.
	// If true, the Subscriber agreed to the email sharing mandate
	// that is enabled for DataExchange/Listing.
	LogLinkedDatasetQueryUserEmail *bool `protobuf:"varint,14,opt,name=log_linked_dataset_query_user_email,json=logLinkedDatasetQueryUserEmail,proto3,oneof" json:"log_linked_dataset_query_user_email,omitempty"`
	// Optional. BigQuery destination dataset to create for the subscriber.
	DestinationDataset *DestinationDataset `protobuf:"bytes,15,opt,name=destination_dataset,json=destinationDataset,proto3" json:"destination_dataset,omitempty"`
}

func (x *Subscription) Reset() {
	*x = Subscription{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[18]
	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_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[18]
	if 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_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{18}
}

func (m *Subscription) GetResourceName() isSubscription_ResourceName {
	if m != nil {
		return m.ResourceName
	}
	return nil
}

func (x *Subscription) GetListing() string {
	if x, ok := x.GetResourceName().(*Subscription_Listing); ok {
		return x.Listing
	}
	return ""
}

func (x *Subscription) GetDataExchange() string {
	if x, ok := x.GetResourceName().(*Subscription_DataExchange); ok {
		return x.DataExchange
	}
	return ""
}

func (x *Subscription) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Subscription) GetCreationTime() *timestamppb.Timestamp {
	if x != nil {
		return x.CreationTime
	}
	return nil
}

func (x *Subscription) GetLastModifyTime() *timestamppb.Timestamp {
	if x != nil {
		return x.LastModifyTime
	}
	return nil
}

func (x *Subscription) GetOrganizationId() string {
	if x != nil {
		return x.OrganizationId
	}
	return ""
}

func (x *Subscription) GetOrganizationDisplayName() string {
	if x != nil {
		return x.OrganizationDisplayName
	}
	return ""
}

func (x *Subscription) GetState() Subscription_State {
	if x != nil {
		return x.State
	}
	return Subscription_STATE_UNSPECIFIED
}

func (x *Subscription) GetLinkedDatasetMap() map[string]*Subscription_LinkedResource {
	if x != nil {
		return x.LinkedDatasetMap
	}
	return nil
}

func (x *Subscription) GetSubscriberContact() string {
	if x != nil {
		return x.SubscriberContact
	}
	return ""
}

func (x *Subscription) GetLinkedResources() []*Subscription_LinkedResource {
	if x != nil {
		return x.LinkedResources
	}
	return nil
}

func (x *Subscription) GetResourceType() SharedResourceType {
	if x != nil {
		return x.ResourceType
	}
	return SharedResourceType_SHARED_RESOURCE_TYPE_UNSPECIFIED
}

func (x *Subscription) GetCommercialInfo() *Subscription_CommercialInfo {
	if x != nil {
		return x.CommercialInfo
	}
	return nil
}

func (x *Subscription) GetLogLinkedDatasetQueryUserEmail() bool {
	if x != nil && x.LogLinkedDatasetQueryUserEmail != nil {
		return *x.LogLinkedDatasetQueryUserEmail
	}
	return false
}

func (x *Subscription) GetDestinationDataset() *DestinationDataset {
	if x != nil {
		return x.DestinationDataset
	}
	return nil
}

type isSubscription_ResourceName interface {
	isSubscription_ResourceName()
}

type Subscription_Listing struct {
	// Output only. Resource name of the source Listing.
	// e.g. projects/123/locations/us/dataExchanges/456/listings/789
	Listing string `protobuf:"bytes,5,opt,name=listing,proto3,oneof"`
}

type Subscription_DataExchange struct {
	// Output only. Resource name of the source Data Exchange.
	// e.g. projects/123/locations/us/dataExchanges/456
	DataExchange string `protobuf:"bytes,6,opt,name=data_exchange,json=dataExchange,proto3,oneof"`
}

func (*Subscription_Listing) isSubscription_ResourceName() {}

func (*Subscription_DataExchange) isSubscription_ResourceName() {}

// Message for requesting the list of data exchanges.
type ListDataExchangesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The parent resource path of the data exchanges.
	// e.g. `projects/myproject/locations/us`.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// The maximum number of results to return in a single response page. Leverage
	// the page tokens to iterate through the entire collection.
	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Page token, returned by a previous call, to request the next page of
	// results.
	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
}

func (x *ListDataExchangesRequest) Reset() {
	*x = ListDataExchangesRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListDataExchangesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListDataExchangesRequest) ProtoMessage() {}

func (x *ListDataExchangesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[19]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListDataExchangesRequest.ProtoReflect.Descriptor instead.
func (*ListDataExchangesRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{19}
}

func (x *ListDataExchangesRequest) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *ListDataExchangesRequest) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListDataExchangesRequest) GetPageToken() string {
	if x != nil {
		return x.PageToken
	}
	return ""
}

// Message for response to the list of data exchanges.
type ListDataExchangesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The list of data exchanges.
	DataExchanges []*DataExchange `protobuf:"bytes,1,rep,name=data_exchanges,json=dataExchanges,proto3" json:"data_exchanges,omitempty"`
	// A token to request the next page of results.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
}

func (x *ListDataExchangesResponse) Reset() {
	*x = ListDataExchangesResponse{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListDataExchangesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListDataExchangesResponse) ProtoMessage() {}

func (x *ListDataExchangesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[20]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListDataExchangesResponse.ProtoReflect.Descriptor instead.
func (*ListDataExchangesResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{20}
}

func (x *ListDataExchangesResponse) GetDataExchanges() []*DataExchange {
	if x != nil {
		return x.DataExchanges
	}
	return nil
}

func (x *ListDataExchangesResponse) GetNextPageToken() string {
	if x != nil {
		return x.NextPageToken
	}
	return ""
}

// Message for requesting the list of data exchanges from projects in an
// organization and location.
type ListOrgDataExchangesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The organization resource path of the projects containing
	// DataExchanges. e.g. `organizations/myorg/locations/us`.
	Organization string `protobuf:"bytes,1,opt,name=organization,proto3" json:"organization,omitempty"`
	// The maximum number of results to return in a single response page. Leverage
	// the page tokens to iterate through the entire collection.
	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Page token, returned by a previous call, to request the next page of
	// results.
	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
}

func (x *ListOrgDataExchangesRequest) Reset() {
	*x = ListOrgDataExchangesRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListOrgDataExchangesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListOrgDataExchangesRequest) ProtoMessage() {}

func (x *ListOrgDataExchangesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[21]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListOrgDataExchangesRequest.ProtoReflect.Descriptor instead.
func (*ListOrgDataExchangesRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{21}
}

func (x *ListOrgDataExchangesRequest) GetOrganization() string {
	if x != nil {
		return x.Organization
	}
	return ""
}

func (x *ListOrgDataExchangesRequest) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListOrgDataExchangesRequest) GetPageToken() string {
	if x != nil {
		return x.PageToken
	}
	return ""
}

// Message for response to listing data exchanges in an organization and
// location.
type ListOrgDataExchangesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The list of data exchanges.
	DataExchanges []*DataExchange `protobuf:"bytes,1,rep,name=data_exchanges,json=dataExchanges,proto3" json:"data_exchanges,omitempty"`
	// A token to request the next page of results.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
}

func (x *ListOrgDataExchangesResponse) Reset() {
	*x = ListOrgDataExchangesResponse{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListOrgDataExchangesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListOrgDataExchangesResponse) ProtoMessage() {}

func (x *ListOrgDataExchangesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[22]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListOrgDataExchangesResponse.ProtoReflect.Descriptor instead.
func (*ListOrgDataExchangesResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{22}
}

func (x *ListOrgDataExchangesResponse) GetDataExchanges() []*DataExchange {
	if x != nil {
		return x.DataExchanges
	}
	return nil
}

func (x *ListOrgDataExchangesResponse) GetNextPageToken() string {
	if x != nil {
		return x.NextPageToken
	}
	return ""
}

// Message for getting a data exchange.
type GetDataExchangeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The resource name of the data exchange.
	// e.g. `projects/myproject/locations/us/dataExchanges/123`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *GetDataExchangeRequest) Reset() {
	*x = GetDataExchangeRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetDataExchangeRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetDataExchangeRequest) ProtoMessage() {}

func (x *GetDataExchangeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[23]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetDataExchangeRequest.ProtoReflect.Descriptor instead.
func (*GetDataExchangeRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{23}
}

func (x *GetDataExchangeRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// Message for creating a data exchange.
type CreateDataExchangeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The parent resource path of the data exchange.
	// e.g. `projects/myproject/locations/us`.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Required. The ID of the data exchange.
	// Must contain only Unicode letters, numbers (0-9), underscores (_).
	// Max length: 100 bytes.
	DataExchangeId string `protobuf:"bytes,2,opt,name=data_exchange_id,json=dataExchangeId,proto3" json:"data_exchange_id,omitempty"`
	// Required. The data exchange to create.
	DataExchange *DataExchange `protobuf:"bytes,3,opt,name=data_exchange,json=dataExchange,proto3" json:"data_exchange,omitempty"`
}

func (x *CreateDataExchangeRequest) Reset() {
	*x = CreateDataExchangeRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CreateDataExchangeRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateDataExchangeRequest) ProtoMessage() {}

func (x *CreateDataExchangeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[24]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateDataExchangeRequest.ProtoReflect.Descriptor instead.
func (*CreateDataExchangeRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{24}
}

func (x *CreateDataExchangeRequest) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *CreateDataExchangeRequest) GetDataExchangeId() string {
	if x != nil {
		return x.DataExchangeId
	}
	return ""
}

func (x *CreateDataExchangeRequest) GetDataExchange() *DataExchange {
	if x != nil {
		return x.DataExchange
	}
	return nil
}

// Message for updating a data exchange.
type UpdateDataExchangeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Field mask specifies the fields to update in the data exchange
	// resource. The fields specified in the
	// `updateMask` are relative to the resource and are not a full request.
	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	// Required. The data exchange to update.
	DataExchange *DataExchange `protobuf:"bytes,2,opt,name=data_exchange,json=dataExchange,proto3" json:"data_exchange,omitempty"`
}

func (x *UpdateDataExchangeRequest) Reset() {
	*x = UpdateDataExchangeRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateDataExchangeRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateDataExchangeRequest) ProtoMessage() {}

func (x *UpdateDataExchangeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[25]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateDataExchangeRequest.ProtoReflect.Descriptor instead.
func (*UpdateDataExchangeRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{25}
}

func (x *UpdateDataExchangeRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.UpdateMask
	}
	return nil
}

func (x *UpdateDataExchangeRequest) GetDataExchange() *DataExchange {
	if x != nil {
		return x.DataExchange
	}
	return nil
}

// Message for deleting a data exchange.
type DeleteDataExchangeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The full name of the data exchange resource that you want to
	// delete. For example, `projects/myproject/locations/us/dataExchanges/123`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *DeleteDataExchangeRequest) Reset() {
	*x = DeleteDataExchangeRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[26]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteDataExchangeRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteDataExchangeRequest) ProtoMessage() {}

func (x *DeleteDataExchangeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[26]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteDataExchangeRequest.ProtoReflect.Descriptor instead.
func (*DeleteDataExchangeRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{26}
}

func (x *DeleteDataExchangeRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// Message for requesting the list of listings.
type ListListingsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The parent resource path of the listing.
	// e.g. `projects/myproject/locations/us/dataExchanges/123`.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// The maximum number of results to return in a single response page. Leverage
	// the page tokens to iterate through the entire collection.
	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Page token, returned by a previous call, to request the next page of
	// results.
	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
}

func (x *ListListingsRequest) Reset() {
	*x = ListListingsRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[27]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListListingsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListListingsRequest) ProtoMessage() {}

func (x *ListListingsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[27]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListListingsRequest.ProtoReflect.Descriptor instead.
func (*ListListingsRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{27}
}

func (x *ListListingsRequest) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *ListListingsRequest) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListListingsRequest) GetPageToken() string {
	if x != nil {
		return x.PageToken
	}
	return ""
}

// Message for response to the list of Listings.
type ListListingsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The list of Listing.
	Listings []*Listing `protobuf:"bytes,1,rep,name=listings,proto3" json:"listings,omitempty"`
	// A token to request the next page of results.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
}

func (x *ListListingsResponse) Reset() {
	*x = ListListingsResponse{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[28]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListListingsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListListingsResponse) ProtoMessage() {}

func (x *ListListingsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[28]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListListingsResponse.ProtoReflect.Descriptor instead.
func (*ListListingsResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{28}
}

func (x *ListListingsResponse) GetListings() []*Listing {
	if x != nil {
		return x.Listings
	}
	return nil
}

func (x *ListListingsResponse) GetNextPageToken() string {
	if x != nil {
		return x.NextPageToken
	}
	return ""
}

// Message for getting a listing.
type GetListingRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The resource name of the listing.
	// e.g. `projects/myproject/locations/us/dataExchanges/123/listings/456`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *GetListingRequest) Reset() {
	*x = GetListingRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[29]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetListingRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetListingRequest) ProtoMessage() {}

func (x *GetListingRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[29]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetListingRequest.ProtoReflect.Descriptor instead.
func (*GetListingRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{29}
}

func (x *GetListingRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// Message for creating a listing.
type CreateListingRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The parent resource path of the listing.
	// e.g. `projects/myproject/locations/us/dataExchanges/123`.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Required. The ID of the listing to create.
	// Must contain only Unicode letters, numbers (0-9), underscores (_).
	// Max length: 100 bytes.
	ListingId string `protobuf:"bytes,2,opt,name=listing_id,json=listingId,proto3" json:"listing_id,omitempty"`
	// Required. The listing to create.
	Listing *Listing `protobuf:"bytes,3,opt,name=listing,proto3" json:"listing,omitempty"`
}

func (x *CreateListingRequest) Reset() {
	*x = CreateListingRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[30]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CreateListingRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateListingRequest) ProtoMessage() {}

func (x *CreateListingRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[30]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateListingRequest.ProtoReflect.Descriptor instead.
func (*CreateListingRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{30}
}

func (x *CreateListingRequest) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *CreateListingRequest) GetListingId() string {
	if x != nil {
		return x.ListingId
	}
	return ""
}

func (x *CreateListingRequest) GetListing() *Listing {
	if x != nil {
		return x.Listing
	}
	return nil
}

// Message for updating a Listing.
type UpdateListingRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Field mask specifies the fields to update in the listing
	// resource. The fields specified in the `updateMask` are relative to the
	// resource and are not a full request.
	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	// Required. The listing to update.
	Listing *Listing `protobuf:"bytes,2,opt,name=listing,proto3" json:"listing,omitempty"`
}

func (x *UpdateListingRequest) Reset() {
	*x = UpdateListingRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[31]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateListingRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateListingRequest) ProtoMessage() {}

func (x *UpdateListingRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[31]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateListingRequest.ProtoReflect.Descriptor instead.
func (*UpdateListingRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{31}
}

func (x *UpdateListingRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.UpdateMask
	}
	return nil
}

func (x *UpdateListingRequest) GetListing() *Listing {
	if x != nil {
		return x.Listing
	}
	return nil
}

// Message for deleting a listing.
type DeleteListingRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Resource name of the listing to delete.
	// e.g. `projects/myproject/locations/us/dataExchanges/123/listings/456`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Optional. If the listing is commercial then this field must be set to true,
	// otherwise a failure is thrown. This acts as a safety guard to avoid
	// deleting commercial listings accidentally.
	DeleteCommercial bool `protobuf:"varint,2,opt,name=delete_commercial,json=deleteCommercial,proto3" json:"delete_commercial,omitempty"`
}

func (x *DeleteListingRequest) Reset() {
	*x = DeleteListingRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[32]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteListingRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteListingRequest) ProtoMessage() {}

func (x *DeleteListingRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[32]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteListingRequest.ProtoReflect.Descriptor instead.
func (*DeleteListingRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{32}
}

func (x *DeleteListingRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *DeleteListingRequest) GetDeleteCommercial() bool {
	if x != nil {
		return x.DeleteCommercial
	}
	return false
}

// Message for subscribing to a listing.
type SubscribeListingRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Resulting destination of the listing that you subscribed to.
	//
	// Types that are assignable to Destination:
	//
	//	*SubscribeListingRequest_DestinationDataset
	//	*SubscribeListingRequest_DestinationPubsubSubscription
	Destination isSubscribeListingRequest_Destination `protobuf_oneof:"destination"`
	// Required. Resource name of the listing that you want to subscribe to.
	// e.g. `projects/myproject/locations/us/dataExchanges/123/listings/456`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *SubscribeListingRequest) Reset() {
	*x = SubscribeListingRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[33]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SubscribeListingRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SubscribeListingRequest) ProtoMessage() {}

func (x *SubscribeListingRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[33]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SubscribeListingRequest.ProtoReflect.Descriptor instead.
func (*SubscribeListingRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{33}
}

func (m *SubscribeListingRequest) GetDestination() isSubscribeListingRequest_Destination {
	if m != nil {
		return m.Destination
	}
	return nil
}

func (x *SubscribeListingRequest) GetDestinationDataset() *DestinationDataset {
	if x, ok := x.GetDestination().(*SubscribeListingRequest_DestinationDataset); ok {
		return x.DestinationDataset
	}
	return nil
}

func (x *SubscribeListingRequest) GetDestinationPubsubSubscription() *DestinationPubSubSubscription {
	if x, ok := x.GetDestination().(*SubscribeListingRequest_DestinationPubsubSubscription); ok {
		return x.DestinationPubsubSubscription
	}
	return nil
}

func (x *SubscribeListingRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type isSubscribeListingRequest_Destination interface {
	isSubscribeListingRequest_Destination()
}

type SubscribeListingRequest_DestinationDataset struct {
	// Input only. BigQuery destination dataset to create for the subscriber.
	DestinationDataset *DestinationDataset `protobuf:"bytes,3,opt,name=destination_dataset,json=destinationDataset,proto3,oneof"`
}

type SubscribeListingRequest_DestinationPubsubSubscription struct {
	// Input only. Destination Pub/Sub subscription to create for the
	// subscriber.
	DestinationPubsubSubscription *DestinationPubSubSubscription `protobuf:"bytes,5,opt,name=destination_pubsub_subscription,json=destinationPubsubSubscription,proto3,oneof"`
}

func (*SubscribeListingRequest_DestinationDataset) isSubscribeListingRequest_Destination() {}

func (*SubscribeListingRequest_DestinationPubsubSubscription) isSubscribeListingRequest_Destination() {
}

// Message for response when you subscribe to a listing.
type SubscribeListingResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Subscription object created from this subscribe action.
	Subscription *Subscription `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
}

func (x *SubscribeListingResponse) Reset() {
	*x = SubscribeListingResponse{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[34]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SubscribeListingResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SubscribeListingResponse) ProtoMessage() {}

func (x *SubscribeListingResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[34]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SubscribeListingResponse.ProtoReflect.Descriptor instead.
func (*SubscribeListingResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{34}
}

func (x *SubscribeListingResponse) GetSubscription() *Subscription {
	if x != nil {
		return x.Subscription
	}
	return nil
}

// Message for subscribing to a Data Exchange.
type SubscribeDataExchangeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Resource name of the Data Exchange.
	// e.g. `projects/publisherproject/locations/us/dataExchanges/123`
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Required. The parent resource path of the Subscription.
	// e.g. `projects/subscriberproject/locations/us`
	Destination string `protobuf:"bytes,2,opt,name=destination,proto3" json:"destination,omitempty"`
	// Optional. BigQuery destination dataset to create for the subscriber.
	DestinationDataset *DestinationDataset `protobuf:"bytes,5,opt,name=destination_dataset,json=destinationDataset,proto3" json:"destination_dataset,omitempty"`
	// Required. Name of the subscription to create.
	// e.g. `subscription1`
	Subscription string `protobuf:"bytes,4,opt,name=subscription,proto3" json:"subscription,omitempty"`
	// Email of the subscriber.
	SubscriberContact string `protobuf:"bytes,3,opt,name=subscriber_contact,json=subscriberContact,proto3" json:"subscriber_contact,omitempty"`
}

func (x *SubscribeDataExchangeRequest) Reset() {
	*x = SubscribeDataExchangeRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[35]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SubscribeDataExchangeRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SubscribeDataExchangeRequest) ProtoMessage() {}

func (x *SubscribeDataExchangeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[35]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SubscribeDataExchangeRequest.ProtoReflect.Descriptor instead.
func (*SubscribeDataExchangeRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{35}
}

func (x *SubscribeDataExchangeRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *SubscribeDataExchangeRequest) GetDestination() string {
	if x != nil {
		return x.Destination
	}
	return ""
}

func (x *SubscribeDataExchangeRequest) GetDestinationDataset() *DestinationDataset {
	if x != nil {
		return x.DestinationDataset
	}
	return nil
}

func (x *SubscribeDataExchangeRequest) GetSubscription() string {
	if x != nil {
		return x.Subscription
	}
	return ""
}

func (x *SubscribeDataExchangeRequest) GetSubscriberContact() string {
	if x != nil {
		return x.SubscriberContact
	}
	return ""
}

// Message for response when you subscribe to a Data Exchange.
type SubscribeDataExchangeResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Subscription object created from this subscribe action.
	Subscription *Subscription `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
}

func (x *SubscribeDataExchangeResponse) Reset() {
	*x = SubscribeDataExchangeResponse{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[36]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SubscribeDataExchangeResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SubscribeDataExchangeResponse) ProtoMessage() {}

func (x *SubscribeDataExchangeResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[36]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SubscribeDataExchangeResponse.ProtoReflect.Descriptor instead.
func (*SubscribeDataExchangeResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{36}
}

func (x *SubscribeDataExchangeResponse) GetSubscription() *Subscription {
	if x != nil {
		return x.Subscription
	}
	return nil
}

// Message for refreshing a subscription.
type RefreshSubscriptionRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Resource name of the Subscription to refresh.
	// e.g. `projects/subscriberproject/locations/us/subscriptions/123`
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *RefreshSubscriptionRequest) Reset() {
	*x = RefreshSubscriptionRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[37]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RefreshSubscriptionRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshSubscriptionRequest) ProtoMessage() {}

func (x *RefreshSubscriptionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[37]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RefreshSubscriptionRequest.ProtoReflect.Descriptor instead.
func (*RefreshSubscriptionRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{37}
}

func (x *RefreshSubscriptionRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// Message for response when you refresh a subscription.
type RefreshSubscriptionResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The refreshed subscription resource.
	Subscription *Subscription `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
}

func (x *RefreshSubscriptionResponse) Reset() {
	*x = RefreshSubscriptionResponse{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[38]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RefreshSubscriptionResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshSubscriptionResponse) ProtoMessage() {}

func (x *RefreshSubscriptionResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[38]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RefreshSubscriptionResponse.ProtoReflect.Descriptor instead.
func (*RefreshSubscriptionResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{38}
}

func (x *RefreshSubscriptionResponse) GetSubscription() *Subscription {
	if x != nil {
		return x.Subscription
	}
	return nil
}

// Message for getting a subscription.
type GetSubscriptionRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Resource name of the subscription.
	// e.g. projects/123/locations/us/subscriptions/456
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *GetSubscriptionRequest) Reset() {
	*x = GetSubscriptionRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[39]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetSubscriptionRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSubscriptionRequest) ProtoMessage() {}

func (x *GetSubscriptionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[39]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetSubscriptionRequest.ProtoReflect.Descriptor instead.
func (*GetSubscriptionRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{39}
}

func (x *GetSubscriptionRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// Message for listing subscriptions.
type ListSubscriptionsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. The parent resource path of the subscription.
	// e.g. projects/myproject/locations/us
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// An expression for filtering the results of the request. Eligible
	// fields for filtering are:
	//
	//   - `listing`
	//   - `data_exchange`
	//
	// Alternatively, a literal wrapped in double quotes may be provided.
	// This will be checked for an exact match against both fields above.
	//
	// In all cases, the full Data Exchange or Listing resource name must
	// be provided. Some example of using filters:
	//
	//   - data_exchange="projects/myproject/locations/us/dataExchanges/123"
	//   - listing="projects/123/locations/us/dataExchanges/456/listings/789"
	//   - "projects/myproject/locations/us/dataExchanges/123"
	Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
	// The maximum number of results to return in a single response page.
	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Page token, returned by a previous call.
	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
}

func (x *ListSubscriptionsRequest) Reset() {
	*x = ListSubscriptionsRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[40]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListSubscriptionsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListSubscriptionsRequest) ProtoMessage() {}

func (x *ListSubscriptionsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[40]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListSubscriptionsRequest.ProtoReflect.Descriptor instead.
func (*ListSubscriptionsRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{40}
}

func (x *ListSubscriptionsRequest) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *ListSubscriptionsRequest) GetFilter() string {
	if x != nil {
		return x.Filter
	}
	return ""
}

func (x *ListSubscriptionsRequest) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListSubscriptionsRequest) GetPageToken() string {
	if x != nil {
		return x.PageToken
	}
	return ""
}

// Message for response to the listing of subscriptions.
type ListSubscriptionsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The list of subscriptions.
	Subscriptions []*Subscription `protobuf:"bytes,1,rep,name=subscriptions,proto3" json:"subscriptions,omitempty"`
	// Next page token.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
}

func (x *ListSubscriptionsResponse) Reset() {
	*x = ListSubscriptionsResponse{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[41]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListSubscriptionsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListSubscriptionsResponse) ProtoMessage() {}

func (x *ListSubscriptionsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[41]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListSubscriptionsResponse.ProtoReflect.Descriptor instead.
func (*ListSubscriptionsResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{41}
}

func (x *ListSubscriptionsResponse) GetSubscriptions() []*Subscription {
	if x != nil {
		return x.Subscriptions
	}
	return nil
}

func (x *ListSubscriptionsResponse) GetNextPageToken() string {
	if x != nil {
		return x.NextPageToken
	}
	return ""
}

// Message for listing subscriptions of a shared resource.
type ListSharedResourceSubscriptionsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Resource name of the requested target. This resource may be
	// either a Listing or a DataExchange. e.g.
	// projects/123/locations/us/dataExchanges/456 OR e.g.
	// projects/123/locations/us/dataExchanges/456/listings/789
	Resource string `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"`
	// If selected, includes deleted subscriptions in the response
	// (up to 63 days after deletion).
	IncludeDeletedSubscriptions bool `protobuf:"varint,2,opt,name=include_deleted_subscriptions,json=includeDeletedSubscriptions,proto3" json:"include_deleted_subscriptions,omitempty"`
	// The maximum number of results to return in a single response page.
	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Page token, returned by a previous call.
	PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
}

func (x *ListSharedResourceSubscriptionsRequest) Reset() {
	*x = ListSharedResourceSubscriptionsRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[42]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListSharedResourceSubscriptionsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListSharedResourceSubscriptionsRequest) ProtoMessage() {}

func (x *ListSharedResourceSubscriptionsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[42]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListSharedResourceSubscriptionsRequest.ProtoReflect.Descriptor instead.
func (*ListSharedResourceSubscriptionsRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{42}
}

func (x *ListSharedResourceSubscriptionsRequest) GetResource() string {
	if x != nil {
		return x.Resource
	}
	return ""
}

func (x *ListSharedResourceSubscriptionsRequest) GetIncludeDeletedSubscriptions() bool {
	if x != nil {
		return x.IncludeDeletedSubscriptions
	}
	return false
}

func (x *ListSharedResourceSubscriptionsRequest) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListSharedResourceSubscriptionsRequest) GetPageToken() string {
	if x != nil {
		return x.PageToken
	}
	return ""
}

// Message for response to the listing of shared resource subscriptions.
type ListSharedResourceSubscriptionsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The list of subscriptions.
	SharedResourceSubscriptions []*Subscription `protobuf:"bytes,1,rep,name=shared_resource_subscriptions,json=sharedResourceSubscriptions,proto3" json:"shared_resource_subscriptions,omitempty"`
	// Next page token.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
}

func (x *ListSharedResourceSubscriptionsResponse) Reset() {
	*x = ListSharedResourceSubscriptionsResponse{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[43]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListSharedResourceSubscriptionsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListSharedResourceSubscriptionsResponse) ProtoMessage() {}

func (x *ListSharedResourceSubscriptionsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[43]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListSharedResourceSubscriptionsResponse.ProtoReflect.Descriptor instead.
func (*ListSharedResourceSubscriptionsResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{43}
}

func (x *ListSharedResourceSubscriptionsResponse) GetSharedResourceSubscriptions() []*Subscription {
	if x != nil {
		return x.SharedResourceSubscriptions
	}
	return nil
}

func (x *ListSharedResourceSubscriptionsResponse) GetNextPageToken() string {
	if x != nil {
		return x.NextPageToken
	}
	return ""
}

// Message for revoking a subscription.
type RevokeSubscriptionRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Resource name of the subscription to revoke.
	// e.g. projects/123/locations/us/subscriptions/456
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Optional. If the subscription is commercial then this field must be set to
	// true, otherwise a failure is thrown. This acts as a safety guard to avoid
	// revoking commercial subscriptions accidentally.
	RevokeCommercial bool `protobuf:"varint,2,opt,name=revoke_commercial,json=revokeCommercial,proto3" json:"revoke_commercial,omitempty"`
}

func (x *RevokeSubscriptionRequest) Reset() {
	*x = RevokeSubscriptionRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[44]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RevokeSubscriptionRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RevokeSubscriptionRequest) ProtoMessage() {}

func (x *RevokeSubscriptionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[44]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RevokeSubscriptionRequest.ProtoReflect.Descriptor instead.
func (*RevokeSubscriptionRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{44}
}

func (x *RevokeSubscriptionRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *RevokeSubscriptionRequest) GetRevokeCommercial() bool {
	if x != nil {
		return x.RevokeCommercial
	}
	return false
}

// Message for response when you revoke a subscription.
// Empty for now.
type RevokeSubscriptionResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *RevokeSubscriptionResponse) Reset() {
	*x = RevokeSubscriptionResponse{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[45]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RevokeSubscriptionResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RevokeSubscriptionResponse) ProtoMessage() {}

func (x *RevokeSubscriptionResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[45]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RevokeSubscriptionResponse.ProtoReflect.Descriptor instead.
func (*RevokeSubscriptionResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{45}
}

// Message for deleting a subscription.
type DeleteSubscriptionRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Resource name of the subscription to delete.
	// e.g. projects/123/locations/us/subscriptions/456
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *DeleteSubscriptionRequest) Reset() {
	*x = DeleteSubscriptionRequest{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[46]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteSubscriptionRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteSubscriptionRequest) ProtoMessage() {}

func (x *DeleteSubscriptionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[46]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteSubscriptionRequest.ProtoReflect.Descriptor instead.
func (*DeleteSubscriptionRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{46}
}

func (x *DeleteSubscriptionRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// Represents the metadata of a long-running operation in Analytics Hub.
type OperationMetadata struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Output only. The time the operation was created.
	CreateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// Output only. The time the operation finished running.
	EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
	// Output only. Server-defined resource path for the target of the operation.
	Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"`
	// Output only. Name of the verb executed by the operation.
	Verb string `protobuf:"bytes,4,opt,name=verb,proto3" json:"verb,omitempty"`
	// Output only. Human-readable status of the operation, if any.
	StatusMessage string `protobuf:"bytes,5,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"`
	// Output only. Identifies whether the user has requested cancellation
	// of the operation. Operations that have successfully been cancelled
	// have [Operation.error][] value with a
	// [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
	// `Code.CANCELLED`.
	RequestedCancellation bool `protobuf:"varint,6,opt,name=requested_cancellation,json=requestedCancellation,proto3" json:"requested_cancellation,omitempty"`
	// Output only. API version used to start the operation.
	ApiVersion string `protobuf:"bytes,7,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"`
}

func (x *OperationMetadata) Reset() {
	*x = OperationMetadata{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[47]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OperationMetadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OperationMetadata) ProtoMessage() {}

func (x *OperationMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[47]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OperationMetadata.ProtoReflect.Descriptor instead.
func (*OperationMetadata) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{47}
}

func (x *OperationMetadata) GetCreateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.CreateTime
	}
	return nil
}

func (x *OperationMetadata) GetEndTime() *timestamppb.Timestamp {
	if x != nil {
		return x.EndTime
	}
	return nil
}

func (x *OperationMetadata) GetTarget() string {
	if x != nil {
		return x.Target
	}
	return ""
}

func (x *OperationMetadata) GetVerb() string {
	if x != nil {
		return x.Verb
	}
	return ""
}

func (x *OperationMetadata) GetStatusMessage() string {
	if x != nil {
		return x.StatusMessage
	}
	return ""
}

func (x *OperationMetadata) GetRequestedCancellation() bool {
	if x != nil {
		return x.RequestedCancellation
	}
	return false
}

func (x *OperationMetadata) GetApiVersion() string {
	if x != nil {
		return x.ApiVersion
	}
	return ""
}

// Default Analytics Hub data exchange, used for secured data sharing.
type SharingEnvironmentConfig_DefaultExchangeConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *SharingEnvironmentConfig_DefaultExchangeConfig) Reset() {
	*x = SharingEnvironmentConfig_DefaultExchangeConfig{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[48]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SharingEnvironmentConfig_DefaultExchangeConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SharingEnvironmentConfig_DefaultExchangeConfig) ProtoMessage() {}

func (x *SharingEnvironmentConfig_DefaultExchangeConfig) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[48]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SharingEnvironmentConfig_DefaultExchangeConfig.ProtoReflect.Descriptor instead.
func (*SharingEnvironmentConfig_DefaultExchangeConfig) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{11, 0}
}

// Data Clean Room (DCR), used for privacy-safe and secured data sharing.
type SharingEnvironmentConfig_DcrExchangeConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Output only. If True, this DCR restricts the contributors to sharing
	// only a single resource in a Listing. And no two resources should have the
	// same IDs. So if a contributor adds a view with a conflicting name, the
	// CreateListing API will reject the request. if False, the data contributor
	// can publish an entire dataset (as before). This is not configurable, and
	// by default, all new DCRs will have the restriction set to True.
	SingleSelectedResourceSharingRestriction *bool `protobuf:"varint,1,opt,name=single_selected_resource_sharing_restriction,json=singleSelectedResourceSharingRestriction,proto3,oneof" json:"single_selected_resource_sharing_restriction,omitempty"`
	// Output only. If True, when subscribing to this DCR, it will create only
	// one linked dataset containing all resources shared within the
	// cleanroom. If False, when subscribing to this DCR, it will
	// create 1 linked dataset per listing. This is not configurable, and by
	// default, all new DCRs will have the restriction set to True.
	SingleLinkedDatasetPerCleanroom *bool `protobuf:"varint,2,opt,name=single_linked_dataset_per_cleanroom,json=singleLinkedDatasetPerCleanroom,proto3,oneof" json:"single_linked_dataset_per_cleanroom,omitempty"`
}

func (x *SharingEnvironmentConfig_DcrExchangeConfig) Reset() {
	*x = SharingEnvironmentConfig_DcrExchangeConfig{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[49]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SharingEnvironmentConfig_DcrExchangeConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SharingEnvironmentConfig_DcrExchangeConfig) ProtoMessage() {}

func (x *SharingEnvironmentConfig_DcrExchangeConfig) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[49]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SharingEnvironmentConfig_DcrExchangeConfig.ProtoReflect.Descriptor instead.
func (*SharingEnvironmentConfig_DcrExchangeConfig) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{11, 1}
}

func (x *SharingEnvironmentConfig_DcrExchangeConfig) GetSingleSelectedResourceSharingRestriction() bool {
	if x != nil && x.SingleSelectedResourceSharingRestriction != nil {
		return *x.SingleSelectedResourceSharingRestriction
	}
	return false
}

func (x *SharingEnvironmentConfig_DcrExchangeConfig) GetSingleLinkedDatasetPerCleanroom() bool {
	if x != nil && x.SingleLinkedDatasetPerCleanroom != nil {
		return *x.SingleLinkedDatasetPerCleanroom
	}
	return false
}

// A reference to a shared dataset. It is an existing BigQuery dataset with a
// collection of objects such as tables and views that you want to share
// with subscribers.
// When subscriber's subscribe to a listing, Analytics Hub creates a linked
// dataset in
// the subscriber's project. A Linked dataset is an opaque, read-only BigQuery
// dataset that serves as a _symbolic link_ to a shared dataset.
type Listing_BigQueryDatasetSource struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Optional. Resource name of the dataset source for this listing.
	// e.g. `projects/myproject/datasets/123`
	Dataset string `protobuf:"bytes,1,opt,name=dataset,proto3" json:"dataset,omitempty"`
	// Optional. Resource in this dataset that is selectively shared.
	// This field is required for data clean room exchanges.
	SelectedResources []*Listing_BigQueryDatasetSource_SelectedResource `protobuf:"bytes,2,rep,name=selected_resources,json=selectedResources,proto3" json:"selected_resources,omitempty"`
	// Optional. If set, restricted export policy will be propagated and
	// enforced on the linked dataset.
	RestrictedExportPolicy *Listing_BigQueryDatasetSource_RestrictedExportPolicy `protobuf:"bytes,3,opt,name=restricted_export_policy,json=restrictedExportPolicy,proto3" json:"restricted_export_policy,omitempty"`
	// Optional. A list of regions where the publisher has created shared
	// dataset replicas.
	ReplicaLocations []string `protobuf:"bytes,5,rep,name=replica_locations,json=replicaLocations,proto3" json:"replica_locations,omitempty"`
	// Output only. Server-owned effective state of replicas.
	// Contains both primary and secondary replicas.
	// Each replica includes a system-computed (output-only) state and primary
	// designation.
	EffectiveReplicas []*Listing_BigQueryDatasetSource_Replica `protobuf:"bytes,6,rep,name=effective_replicas,json=effectiveReplicas,proto3" json:"effective_replicas,omitempty"`
}

func (x *Listing_BigQueryDatasetSource) Reset() {
	*x = Listing_BigQueryDatasetSource{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[51]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Listing_BigQueryDatasetSource) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Listing_BigQueryDatasetSource) ProtoMessage() {}

func (x *Listing_BigQueryDatasetSource) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[51]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Listing_BigQueryDatasetSource.ProtoReflect.Descriptor instead.
func (*Listing_BigQueryDatasetSource) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{17, 0}
}

func (x *Listing_BigQueryDatasetSource) GetDataset() string {
	if x != nil {
		return x.Dataset
	}
	return ""
}

func (x *Listing_BigQueryDatasetSource) GetSelectedResources() []*Listing_BigQueryDatasetSource_SelectedResource {
	if x != nil {
		return x.SelectedResources
	}
	return nil
}

func (x *Listing_BigQueryDatasetSource) GetRestrictedExportPolicy() *Listing_BigQueryDatasetSource_RestrictedExportPolicy {
	if x != nil {
		return x.RestrictedExportPolicy
	}
	return nil
}

func (x *Listing_BigQueryDatasetSource) GetReplicaLocations() []string {
	if x != nil {
		return x.ReplicaLocations
	}
	return nil
}

func (x *Listing_BigQueryDatasetSource) GetEffectiveReplicas() []*Listing_BigQueryDatasetSource_Replica {
	if x != nil {
		return x.EffectiveReplicas
	}
	return nil
}

// Pub/Sub topic source.
type Listing_PubSubTopicSource struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. Resource name of the Pub/Sub topic source for this listing.
	// e.g. projects/myproject/topics/topicId
	Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
	// Optional. Region hint on where the data might be published. Data affinity
	// regions are modifiable. See https://cloud.google.com/about/locations for
	// full listing of possible Cloud regions.
	DataAffinityRegions []string `protobuf:"bytes,2,rep,name=data_affinity_regions,json=dataAffinityRegions,proto3" json:"data_affinity_regions,omitempty"`
}

func (x *Listing_PubSubTopicSource) Reset() {
	*x = Listing_PubSubTopicSource{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[52]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Listing_PubSubTopicSource) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Listing_PubSubTopicSource) ProtoMessage() {}

func (x *Listing_PubSubTopicSource) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[52]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Listing_PubSubTopicSource.ProtoReflect.Descriptor instead.
func (*Listing_PubSubTopicSource) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{17, 1}
}

func (x *Listing_PubSubTopicSource) GetTopic() string {
	if x != nil {
		return x.Topic
	}
	return ""
}

func (x *Listing_PubSubTopicSource) GetDataAffinityRegions() []string {
	if x != nil {
		return x.DataAffinityRegions
	}
	return nil
}

// Restricted export config, used to configure restricted export on linked
// dataset.
type Listing_RestrictedExportConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Optional. If true, enable restricted export.
	Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"`
	// Output only. If true, restrict direct table access(read
	// api/tabledata.list) on linked table.
	RestrictDirectTableAccess bool `protobuf:"varint,1,opt,name=restrict_direct_table_access,json=restrictDirectTableAccess,proto3" json:"restrict_direct_table_access,omitempty"`
	// Optional. If true, restrict export of query result derived from
	// restricted linked dataset table.
	RestrictQueryResult bool `protobuf:"varint,2,opt,name=restrict_query_result,json=restrictQueryResult,proto3" json:"restrict_query_result,omitempty"`
}

func (x *Listing_RestrictedExportConfig) Reset() {
	*x = Listing_RestrictedExportConfig{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[53]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Listing_RestrictedExportConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Listing_RestrictedExportConfig) ProtoMessage() {}

func (x *Listing_RestrictedExportConfig) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[53]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Listing_RestrictedExportConfig.ProtoReflect.Descriptor instead.
func (*Listing_RestrictedExportConfig) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{17, 2}
}

func (x *Listing_RestrictedExportConfig) GetEnabled() bool {
	if x != nil {
		return x.Enabled
	}
	return false
}

func (x *Listing_RestrictedExportConfig) GetRestrictDirectTableAccess() bool {
	if x != nil {
		return x.RestrictDirectTableAccess
	}
	return false
}

func (x *Listing_RestrictedExportConfig) GetRestrictQueryResult() bool {
	if x != nil {
		return x.RestrictQueryResult
	}
	return false
}

// Commercial info contains the information about the commercial data products
// associated with the listing.
type Listing_CommercialInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Output only. Details of the Marketplace Data Product associated with the
	// Listing.
	CloudMarketplace *Listing_CommercialInfo_GoogleCloudMarketplaceInfo `protobuf:"bytes,1,opt,name=cloud_marketplace,json=cloudMarketplace,proto3,oneof" json:"cloud_marketplace,omitempty"`
}

func (x *Listing_CommercialInfo) Reset() {
	*x = Listing_CommercialInfo{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[54]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Listing_CommercialInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Listing_CommercialInfo) ProtoMessage() {}

func (x *Listing_CommercialInfo) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[54]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Listing_CommercialInfo.ProtoReflect.Descriptor instead.
func (*Listing_CommercialInfo) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{17, 3}
}

func (x *Listing_CommercialInfo) GetCloudMarketplace() *Listing_CommercialInfo_GoogleCloudMarketplaceInfo {
	if x != nil {
		return x.CloudMarketplace
	}
	return nil
}

// Resource in this dataset that is selectively shared.
type Listing_BigQueryDatasetSource_SelectedResource struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Resource:
	//
	//	*Listing_BigQueryDatasetSource_SelectedResource_Table
	//	*Listing_BigQueryDatasetSource_SelectedResource_Routine
	Resource isListing_BigQueryDatasetSource_SelectedResource_Resource `protobuf_oneof:"resource"`
}

func (x *Listing_BigQueryDatasetSource_SelectedResource) Reset() {
	*x = Listing_BigQueryDatasetSource_SelectedResource{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[55]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Listing_BigQueryDatasetSource_SelectedResource) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Listing_BigQueryDatasetSource_SelectedResource) ProtoMessage() {}

func (x *Listing_BigQueryDatasetSource_SelectedResource) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[55]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Listing_BigQueryDatasetSource_SelectedResource.ProtoReflect.Descriptor instead.
func (*Listing_BigQueryDatasetSource_SelectedResource) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{17, 0, 0}
}

func (m *Listing_BigQueryDatasetSource_SelectedResource) GetResource() isListing_BigQueryDatasetSource_SelectedResource_Resource {
	if m != nil {
		return m.Resource
	}
	return nil
}

func (x *Listing_BigQueryDatasetSource_SelectedResource) GetTable() string {
	if x, ok := x.GetResource().(*Listing_BigQueryDatasetSource_SelectedResource_Table); ok {
		return x.Table
	}
	return ""
}

func (x *Listing_BigQueryDatasetSource_SelectedResource) GetRoutine() string {
	if x, ok := x.GetResource().(*Listing_BigQueryDatasetSource_SelectedResource_Routine); ok {
		return x.Routine
	}
	return ""
}

type isListing_BigQueryDatasetSource_SelectedResource_Resource interface {
	isListing_BigQueryDatasetSource_SelectedResource_Resource()
}

type Listing_BigQueryDatasetSource_SelectedResource_Table struct {
	// Optional. Format:
	// For table:
	// `projects/{projectId}/datasets/{datasetId}/tables/{tableId}`
	// Example:"projects/test_project/datasets/test_dataset/tables/test_table"
	Table string `protobuf:"bytes,1,opt,name=table,proto3,oneof"`
}

type Listing_BigQueryDatasetSource_SelectedResource_Routine struct {
	// Optional. Format:
	// For routine:
	// `projects/{projectId}/datasets/{datasetId}/routines/{routineId}`
	// Example:"projects/test_project/datasets/test_dataset/routines/test_routine"
	Routine string `protobuf:"bytes,2,opt,name=routine,proto3,oneof"`
}

func (*Listing_BigQueryDatasetSource_SelectedResource_Table) isListing_BigQueryDatasetSource_SelectedResource_Resource() {
}

func (*Listing_BigQueryDatasetSource_SelectedResource_Routine) isListing_BigQueryDatasetSource_SelectedResource_Resource() {
}

// Restricted export policy used to configure restricted export on linked
// dataset.
type Listing_BigQueryDatasetSource_RestrictedExportPolicy struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Optional. If true, enable restricted export.
	Enabled *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	// Optional. If true, restrict direct table access (read
	// api/tabledata.list) on linked table.
	RestrictDirectTableAccess *wrapperspb.BoolValue `protobuf:"bytes,2,opt,name=restrict_direct_table_access,json=restrictDirectTableAccess,proto3" json:"restrict_direct_table_access,omitempty"`
	// Optional. If true, restrict export of query result derived from
	// restricted linked dataset table.
	RestrictQueryResult *wrapperspb.BoolValue `protobuf:"bytes,3,opt,name=restrict_query_result,json=restrictQueryResult,proto3" json:"restrict_query_result,omitempty"`
}

func (x *Listing_BigQueryDatasetSource_RestrictedExportPolicy) Reset() {
	*x = Listing_BigQueryDatasetSource_RestrictedExportPolicy{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[56]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Listing_BigQueryDatasetSource_RestrictedExportPolicy) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Listing_BigQueryDatasetSource_RestrictedExportPolicy) ProtoMessage() {}

func (x *Listing_BigQueryDatasetSource_RestrictedExportPolicy) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[56]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Listing_BigQueryDatasetSource_RestrictedExportPolicy.ProtoReflect.Descriptor instead.
func (*Listing_BigQueryDatasetSource_RestrictedExportPolicy) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{17, 0, 1}
}

func (x *Listing_BigQueryDatasetSource_RestrictedExportPolicy) GetEnabled() *wrapperspb.BoolValue {
	if x != nil {
		return x.Enabled
	}
	return nil
}

func (x *Listing_BigQueryDatasetSource_RestrictedExportPolicy) GetRestrictDirectTableAccess() *wrapperspb.BoolValue {
	if x != nil {
		return x.RestrictDirectTableAccess
	}
	return nil
}

func (x *Listing_BigQueryDatasetSource_RestrictedExportPolicy) GetRestrictQueryResult() *wrapperspb.BoolValue {
	if x != nil {
		return x.RestrictQueryResult
	}
	return nil
}

// Represents the state of a replica of a shared dataset.
// It includes the geographic location of the replica and
// system-computed, output-only fields indicating its replication state and
// whether it is the primary replica.
type Listing_BigQueryDatasetSource_Replica struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Output only. The geographic location where the replica resides. See
	// [BigQuery locations](https://cloud.google.com/bigquery/docs/locations)
	// for supported locations. Eg. "us-central1".
	Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"`
	// Output only. Assigned by Analytics Hub based on real BigQuery
	// replication state.
	ReplicaState Listing_BigQueryDatasetSource_Replica_ReplicaState `protobuf:"varint,2,opt,name=replica_state,json=replicaState,proto3,enum=google.cloud.bigquery.analyticshub.v1.Listing_BigQueryDatasetSource_Replica_ReplicaState" json:"replica_state,omitempty"`
	// Output only. Indicates that this replica is the primary replica.
	PrimaryState *Listing_BigQueryDatasetSource_Replica_PrimaryState `protobuf:"varint,3,opt,name=primary_state,json=primaryState,proto3,enum=google.cloud.bigquery.analyticshub.v1.Listing_BigQueryDatasetSource_Replica_PrimaryState,oneof" json:"primary_state,omitempty"`
}

func (x *Listing_BigQueryDatasetSource_Replica) Reset() {
	*x = Listing_BigQueryDatasetSource_Replica{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[57]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Listing_BigQueryDatasetSource_Replica) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Listing_BigQueryDatasetSource_Replica) ProtoMessage() {}

func (x *Listing_BigQueryDatasetSource_Replica) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[57]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Listing_BigQueryDatasetSource_Replica.ProtoReflect.Descriptor instead.
func (*Listing_BigQueryDatasetSource_Replica) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{17, 0, 2}
}

func (x *Listing_BigQueryDatasetSource_Replica) GetLocation() string {
	if x != nil {
		return x.Location
	}
	return ""
}

func (x *Listing_BigQueryDatasetSource_Replica) GetReplicaState() Listing_BigQueryDatasetSource_Replica_ReplicaState {
	if x != nil {
		return x.ReplicaState
	}
	return Listing_BigQueryDatasetSource_Replica_REPLICA_STATE_UNSPECIFIED
}

func (x *Listing_BigQueryDatasetSource_Replica) GetPrimaryState() Listing_BigQueryDatasetSource_Replica_PrimaryState {
	if x != nil && x.PrimaryState != nil {
		return *x.PrimaryState
	}
	return Listing_BigQueryDatasetSource_Replica_PRIMARY_STATE_UNSPECIFIED
}

// Specifies the details of the Marketplace Data Product associated with the
// Listing.
type Listing_CommercialInfo_GoogleCloudMarketplaceInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Output only. Resource name of the commercial service associated with
	// the Marketplace Data Product. e.g. example.com
	Service *string `protobuf:"bytes,1,opt,name=service,proto3,oneof" json:"service,omitempty"`
	// Output only. Commercial state of the Marketplace Data Product.
	CommercialState *Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState `protobuf:"varint,3,opt,name=commercial_state,json=commercialState,proto3,enum=google.cloud.bigquery.analyticshub.v1.Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState,oneof" json:"commercial_state,omitempty"`
}

func (x *Listing_CommercialInfo_GoogleCloudMarketplaceInfo) Reset() {
	*x = Listing_CommercialInfo_GoogleCloudMarketplaceInfo{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[58]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Listing_CommercialInfo_GoogleCloudMarketplaceInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Listing_CommercialInfo_GoogleCloudMarketplaceInfo) ProtoMessage() {}

func (x *Listing_CommercialInfo_GoogleCloudMarketplaceInfo) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[58]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Listing_CommercialInfo_GoogleCloudMarketplaceInfo.ProtoReflect.Descriptor instead.
func (*Listing_CommercialInfo_GoogleCloudMarketplaceInfo) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{17, 3, 0}
}

func (x *Listing_CommercialInfo_GoogleCloudMarketplaceInfo) GetService() string {
	if x != nil && x.Service != nil {
		return *x.Service
	}
	return ""
}

func (x *Listing_CommercialInfo_GoogleCloudMarketplaceInfo) GetCommercialState() Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState {
	if x != nil && x.CommercialState != nil {
		return *x.CommercialState
	}
	return Listing_CommercialInfo_GoogleCloudMarketplaceInfo_COMMERCIAL_STATE_UNSPECIFIED
}

// Reference to a linked resource tracked by this Subscription.
type Subscription_LinkedResource struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Reference:
	//
	//	*Subscription_LinkedResource_LinkedDataset
	//	*Subscription_LinkedResource_LinkedPubsubSubscription
	Reference isSubscription_LinkedResource_Reference `protobuf_oneof:"reference"`
	// Output only. Listing for which linked resource is created.
	Listing string `protobuf:"bytes,2,opt,name=listing,proto3" json:"listing,omitempty"`
}

func (x *Subscription_LinkedResource) Reset() {
	*x = Subscription_LinkedResource{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[59]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Subscription_LinkedResource) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Subscription_LinkedResource) ProtoMessage() {}

func (x *Subscription_LinkedResource) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[59]
	if 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_LinkedResource.ProtoReflect.Descriptor instead.
func (*Subscription_LinkedResource) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{18, 0}
}

func (m *Subscription_LinkedResource) GetReference() isSubscription_LinkedResource_Reference {
	if m != nil {
		return m.Reference
	}
	return nil
}

func (x *Subscription_LinkedResource) GetLinkedDataset() string {
	if x, ok := x.GetReference().(*Subscription_LinkedResource_LinkedDataset); ok {
		return x.LinkedDataset
	}
	return ""
}

func (x *Subscription_LinkedResource) GetLinkedPubsubSubscription() string {
	if x, ok := x.GetReference().(*Subscription_LinkedResource_LinkedPubsubSubscription); ok {
		return x.LinkedPubsubSubscription
	}
	return ""
}

func (x *Subscription_LinkedResource) GetListing() string {
	if x != nil {
		return x.Listing
	}
	return ""
}

type isSubscription_LinkedResource_Reference interface {
	isSubscription_LinkedResource_Reference()
}

type Subscription_LinkedResource_LinkedDataset struct {
	// Output only. Name of the linked dataset, e.g.
	// projects/subscriberproject/datasets/linked_dataset
	LinkedDataset string `protobuf:"bytes,1,opt,name=linked_dataset,json=linkedDataset,proto3,oneof"`
}

type Subscription_LinkedResource_LinkedPubsubSubscription struct {
	// Output only. Name of the Pub/Sub subscription, e.g.
	// projects/subscriberproject/subscriptions/subscriptions/sub_id
	LinkedPubsubSubscription string `protobuf:"bytes,3,opt,name=linked_pubsub_subscription,json=linkedPubsubSubscription,proto3,oneof"`
}

func (*Subscription_LinkedResource_LinkedDataset) isSubscription_LinkedResource_Reference() {}

func (*Subscription_LinkedResource_LinkedPubsubSubscription) isSubscription_LinkedResource_Reference() {
}

// Commercial info metadata for this subscription.
type Subscription_CommercialInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Output only. This is set when the subscription is commercialised via
	// Cloud Marketplace.
	CloudMarketplace *Subscription_CommercialInfo_GoogleCloudMarketplaceInfo `protobuf:"bytes,1,opt,name=cloud_marketplace,json=cloudMarketplace,proto3" json:"cloud_marketplace,omitempty"`
}

func (x *Subscription_CommercialInfo) Reset() {
	*x = Subscription_CommercialInfo{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[60]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Subscription_CommercialInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Subscription_CommercialInfo) ProtoMessage() {}

func (x *Subscription_CommercialInfo) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[60]
	if 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_CommercialInfo.ProtoReflect.Descriptor instead.
func (*Subscription_CommercialInfo) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{18, 1}
}

func (x *Subscription_CommercialInfo) GetCloudMarketplace() *Subscription_CommercialInfo_GoogleCloudMarketplaceInfo {
	if x != nil {
		return x.CloudMarketplace
	}
	return nil
}

// Cloud Marketplace commercial metadata for this subscription.
type Subscription_CommercialInfo_GoogleCloudMarketplaceInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Resource name of the Marketplace Order.
	Order string `protobuf:"bytes,1,opt,name=order,proto3" json:"order,omitempty"`
}

func (x *Subscription_CommercialInfo_GoogleCloudMarketplaceInfo) Reset() {
	*x = Subscription_CommercialInfo_GoogleCloudMarketplaceInfo{}
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[62]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Subscription_CommercialInfo_GoogleCloudMarketplaceInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Subscription_CommercialInfo_GoogleCloudMarketplaceInfo) ProtoMessage() {}

func (x *Subscription_CommercialInfo_GoogleCloudMarketplaceInfo) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[62]
	if 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_CommercialInfo_GoogleCloudMarketplaceInfo.ProtoReflect.Descriptor instead.
func (*Subscription_CommercialInfo_GoogleCloudMarketplaceInfo) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP(), []int{18, 1, 0}
}

func (x *Subscription_CommercialInfo_GoogleCloudMarketplaceInfo) GetOrder() string {
	if x != nil {
		return x.Order
	}
	return ""
}

var File_google_cloud_bigquery_analyticshub_v1_analyticshub_proto protoreflect.FileDescriptor

var file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDesc = []byte{
	0x0a, 0x38, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x62,
	0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63,
	0x73, 0x68, 0x75, 0x62, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63,
	0x73, 0x68, 0x75, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72,
	0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 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, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x61, 0x6e, 0x61, 0x6c,
	0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x75, 0x62, 0x73,
	0x75, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2f, 0x69, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x61, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69,
	0x63, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2f, 0x69, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 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, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70,
	0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x86, 0x06, 0x0a, 0x0c, 0x44, 0x61,
	0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 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, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b,
	0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 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, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f,
	0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01,
	0x52, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74,
	0x12, 0x29, 0x0a, 0x0d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x64, 0x6f,
	0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0d, 0x6c,
	0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x82,
	0x01, 0x0a, 0x1a, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72,
	0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c,
	0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x61, 0x72,
	0x69, 0x6e, 0x67, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x18, 0x73, 0x68, 0x61, 0x72, 0x69,
	0x6e, 0x67, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x12, 0x65, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75,
	0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70,
	0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76,
	0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x23, 0x6c, 0x6f,
	0x67, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74,
	0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69,
	0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x1e,
	0x6c, 0x6f, 0x67, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74,
	0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x88, 0x01,
	0x01, 0x3a, 0x74, 0xea, 0x41, 0x71, 0x0a, 0x28, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63,
	0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x12, 0x45, 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, 0x45, 0x78,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x78,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x7d, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x69, 0x73, 0x63,
	0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x26, 0x0a, 0x24, 0x5f, 0x6c,
	0x6f, 0x67, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65,
	0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61,
	0x69, 0x6c, 0x22, 0xa8, 0x06, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70,
	0x6c, 0x61, 0x74, 0x65, 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, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61,
	0x79, 0x4e, 0x61, 0x6d, 0x65, 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, 0x1f, 0x0a, 0x08,
	0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x2c, 0x0a,
	0x0f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74,
	0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x70, 0x72, 0x69,
	0x6d, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x29, 0x0a, 0x0d, 0x64,
	0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75,
	0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a,
	0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69,
	0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73,
	0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x65, 0x42, 0x03,
	0xe0, 0x41, 0x01, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 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, 0x53, 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, 0x44, 0x52, 0x41, 0x46, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a,
	0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45,
	0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x52, 0x4f,
	0x56, 0x45, 0x44, 0x10, 0x04, 0x3a, 0xb5, 0x01, 0xea, 0x41, 0xb1, 0x01, 0x0a, 0x29, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54,
	0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x65, 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, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x7b,
	0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x7d, 0x2f, 0x71,
	0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x71,
	0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x7d, 0x2a, 0x0e,
	0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x32, 0x0d,
	0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0xe3, 0x01,
	0x0a, 0x07, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x65, 0x12, 0x62, 0x0a, 0x0c, 0x72, 0x6f, 0x75,
	0x74, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62,
	0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63,
	0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x65, 0x2e,
	0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a,
	0x0f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x6f, 0x64, 0x79,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x64, 0x65, 0x66,
	0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x46, 0x0a, 0x0b, 0x52,
	0x6f, 0x75, 0x74, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x4f,
	0x55, 0x54, 0x49, 0x4e, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45,
	0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x41, 0x42, 0x4c,
	0x45, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x44, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x54, 0x49, 0x4f,
	0x4e, 0x10, 0x01, 0x22, 0xf9, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, 0x75,
	0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x61, 0x6e, 0x61, 0x6c,
	0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x11,
	0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x71, 0x75,
	0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x60, 0x0a,
	0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75,
	0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x0d, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22,
	0x60, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2b,
	0x0a, 0x29, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x51, 0x75,
	0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x22, 0xab, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54,
	0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69,
	0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
	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, 0x22,
	0xa3, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d,
	0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d,
	0x0a, 0x0f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e,
	0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e,
	0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x71,
	0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 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, 0x22, 0xc0, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 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, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61,
	0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x60, 0x0a, 0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f,
	0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69,
	0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73,
	0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70,
	0x6c, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x72, 0x79,
	0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x63, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2b, 0x0a, 0x29, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54,
	0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x63, 0x0a,
	0x1a, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70,
	0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xe0, 0x41, 0x02, 0xfa, 0x41,
	0x2b, 0x0a, 0x29, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x51,
	0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x22, 0x64, 0x0a, 0x1b, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x45, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x31, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2b, 0x0a, 0x29, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69,
	0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61,
	0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8b, 0x05, 0x0a, 0x18, 0x53, 0x68, 0x61,
	0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x8f, 0x01, 0x0a, 0x17, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
	0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e,
	0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65,
	0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
	0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00,
	0x52, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x83, 0x01, 0x0a, 0x13, 0x64, 0x63, 0x72, 0x5f,
	0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68,
	0x61, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x63, 0x72, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x11, 0x64, 0x63, 0x72, 0x45,
	0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x17, 0x0a,
	0x15, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0xae, 0x02, 0x0a, 0x11, 0x44, 0x63, 0x72, 0x45, 0x78,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x68, 0x0a, 0x2c,
	0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f,
	0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67,
	0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x28, 0x73, 0x69, 0x6e, 0x67, 0x6c,
	0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x23, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65,
	0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f,
	0x70, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x1f, 0x73, 0x69, 0x6e, 0x67,
	0x6c, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x50,
	0x65, 0x72, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x72, 0x6f, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x42, 0x2f,
	0x0a, 0x2d, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74,
	0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72,
	0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42,
	0x26, 0x0a, 0x24, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
	0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x6c,
	0x65, 0x61, 0x6e, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x0d, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72,
	0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x55, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72,
	0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
	0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61,
	0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x70,
	0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x22, 0x52, 0x0a,
	0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x63,
	0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x01, 0x52, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63,
	0x74, 0x22, 0x65, 0x0a, 0x1b, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
	0x12, 0x22, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73,
	0x65, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f,
	0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70,
	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x89, 0x04, 0x0a, 0x12, 0x44, 0x65, 0x73,
	0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12,
	0x74, 0x0a, 0x11, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72,
	0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65,
	0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61,
	0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x10, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x65, 0x66, 0x65,
	0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x46, 0x0a, 0x0d, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c,
	0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53,
	0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52,
	0x0c, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x6c, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a,
	0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x62, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
	0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79,
	0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69,
	0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 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, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6c,
	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03,
	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x22, 0x90, 0x01, 0x0a, 0x1d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x50, 0x75, 0x62, 0x53, 0x75, 0x62, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6f, 0x0a, 0x13, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62,
	0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c,
	0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x62, 0x53,
	0x75, 0x62, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x12, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x53, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x91, 0x25, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74,
	0x69, 0x6e, 0x67, 0x12, 0x71, 0x0a, 0x10, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f,
	0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67,
	0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68,
	0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x42, 0x69,
	0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x53, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x44,
	0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x65, 0x0a, 0x0c, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62,
	0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71,
	0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75,
	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x50, 0x75, 0x62,
	0x53, 0x75, 0x62, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00,
	0x52, 0x0b, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x54, 0x6f, 0x70, 0x69, 0x63, 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, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 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, 0x2c, 0x0a, 0x0f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79,
	0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x01, 0x52, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x74,
	0x61, 0x63, 0x74, 0x12, 0x29, 0x0a, 0x0d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52,
	0x0d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f,
	0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67,
	0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68,
	0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12,
	0x17, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0,
	0x41, 0x01, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x5d, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x61,
	0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62,
	0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63,
	0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x76,
	0x69, 0x64, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x50,
	0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x5c, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67,
	0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75,
	0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x61, 0x74, 0x65,
	0x67, 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67,
	0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68,
	0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79,
	0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52,
	0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x84, 0x01, 0x0a, 0x18, 0x72, 0x65, 0x73, 0x74, 0x72,
	0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72,
	0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76,
	0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69,
	0x63, 0x74, 0x65, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x16, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x65,
	0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x65, 0x0a,
	0x0e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69,
	0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01,
	0x48, 0x01, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70,
	0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75,
	0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x70, 0x0a, 0x0f, 0x63, 0x6f, 0x6d,
	0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
	0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79,
	0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x69,
	0x6e, 0x67, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66,
	0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x02, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72,
	0x63, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x23, 0x6c,
	0x6f, 0x67, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65,
	0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61,
	0x69, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x03, 0x52,
	0x1e, 0x6c, 0x6f, 0x67, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65,
	0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x88,
	0x01, 0x01, 0x12, 0x47, 0x0a, 0x1b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x6e, 0x6c, 0x79,
	0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e,
	0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x04, 0x52, 0x18,
	0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4f, 0x6e, 0x6c, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
	0x61, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0xd0, 0x0b, 0x0a, 0x15,
	0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x53,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x21, 0x0a, 0x1f,
	0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52,
	0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x89, 0x01, 0x0a, 0x12, 0x73, 0x65, 0x6c,
	0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69,
	0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x61,
	0x74, 0x61, 0x73, 0x65, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x65,
	0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41,
	0x01, 0x52, 0x11, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x73, 0x12, 0x9a, 0x01, 0x0a, 0x18, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63,
	0x74, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63,
	0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e,
	0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e,
	0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79,
	0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, 0x65,
	0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x6f,
	0x6c, 0x69, 0x63, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x16, 0x72, 0x65, 0x73, 0x74, 0x72,
	0x69, 0x63, 0x74, 0x65, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63,
	0x79, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6c, 0x6f, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x01, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x12, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76,
	0x65, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
	0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69,
	0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67,
	0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74,
	0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x42, 0x03,
	0xe0, 0x41, 0x03, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x1a, 0xa2, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x6c, 0x65, 0x63,
	0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x05, 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, 0x48, 0x00, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x72, 0x6f,
	0x75, 0x74, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x01,
	0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x75,
	0x74, 0x69, 0x6e, 0x65, 0x48, 0x00, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x65, 0x42,
	0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x8a, 0x02, 0x0a, 0x16,
	0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74,
	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x39, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x64, 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, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x64, 0x12, 0x60, 0x0a, 0x1c, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x64, 0x69,
	0x72, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73,
	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x19, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69,
	0x63, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x63,
	0x65, 0x73, 0x73, 0x12, 0x53, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f,
	0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 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, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03,
	0xe0, 0x41, 0x01, 0x52, 0x13, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0xe3, 0x03, 0x0a, 0x07, 0x52, 0x65, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x6c, 0x6f, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x83, 0x01, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x59, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67,
	0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68,
	0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x42, 0x69,
	0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x53, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c,
	0x69, 0x63, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x72,
	0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x88, 0x01, 0x0a, 0x0d,
	0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x59, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c,
	0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74,
	0x69, 0x6e, 0x67, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61,
	0x73, 0x65, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03,
	0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x22, 0x50, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x45, 0x50, 0x4c, 0x49, 0x43,
	0x41, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x54,
	0x4f, 0x5f, 0x55, 0x53, 0x45, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x41, 0x56, 0x41,
	0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x02, 0x22, 0x42, 0x0a, 0x0c, 0x50, 0x72, 0x69, 0x6d,
	0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x52, 0x49, 0x4d,
	0x41, 0x52, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x52, 0x49, 0x4d, 0x41,
	0x52, 0x59, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x10, 0x01, 0x42, 0x10, 0x0a, 0x0e,
	0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x87,
	0x01, 0x0a, 0x11, 0x50, 0x75, 0x62, 0x53, 0x75, 0x62, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x53, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x0a, 0x1b, 0x70, 0x75, 0x62,
	0x73, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63,
	0x6f, 0x6d, 0x2f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12,
	0x37, 0x0a, 0x15, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79,
	0x5f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x01, 0x52, 0x13, 0x64, 0x61, 0x74, 0x61, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74,
	0x79, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xb6, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73,
	0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x12, 0x44, 0x0a, 0x1c, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x64,
	0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65,
	0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x19, 0x72,
	0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x61, 0x62,
	0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x37, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x74,
	0x72, 0x69, 0x63, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x72, 0x65,
	0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x1a, 0xc1, 0x04, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c,
	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x8f, 0x01, 0x0a, 0x11, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x6d,
	0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x58, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
	0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69,
	0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67,
	0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x2e,
	0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65,
	0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48,
	0x00, 0x52, 0x10, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c,
	0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x86, 0x03, 0x0a, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63,
	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x56, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x31, 0x0a, 0x2f,
	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e,
	0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
	0x2f, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48,
	0x00, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x9d, 0x01,
	0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61,
	0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79,
	0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63,
	0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x6c,
	0x6f, 0x75, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x49, 0x6e,
	0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x74, 0x61,
	0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
	0x72, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x22, 0x4f, 0x0a,
	0x0f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65,
	0x12, 0x20, 0x0a, 0x1c, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x52, 0x43, 0x49, 0x41, 0x4c, 0x5f, 0x53,
	0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
	0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x4e, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x49, 0x4e, 0x47,
	0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x42, 0x0a,
	0x0a, 0x08, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x63,
	0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42,
	0x14, 0x0a, 0x12, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74,
	0x70, 0x6c, 0x61, 0x63, 0x65, 0x22, 0x2a, 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, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10,
	0x01, 0x22, 0xd9, 0x04, 0x0a, 0x08, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x18,
	0x0a, 0x14, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45,
	0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x41, 0x54, 0x45,
	0x47, 0x4f, 0x52, 0x59, 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x53, 0x10, 0x01, 0x12, 0x26, 0x0a,
	0x22, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x54,
	0x49, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x54,
	0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52,
	0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x52, 0x43, 0x45, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20,
	0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x43, 0x4c, 0x49, 0x4d, 0x41, 0x54, 0x45,
	0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x45, 0x4e, 0x56, 0x49, 0x52, 0x4f, 0x4e, 0x4d, 0x45, 0x4e, 0x54,
	0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x44,
	0x45, 0x4d, 0x4f, 0x47, 0x52, 0x41, 0x50, 0x48, 0x49, 0x43, 0x53, 0x10, 0x05, 0x12, 0x16, 0x0a,
	0x12, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x45, 0x43, 0x4f, 0x4e, 0x4f, 0x4d,
	0x49, 0x43, 0x53, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52,
	0x59, 0x5f, 0x45, 0x44, 0x55, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x07, 0x12, 0x13, 0x0a,
	0x0f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x45, 0x52, 0x47, 0x59,
	0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x46,
	0x49, 0x4e, 0x41, 0x4e, 0x43, 0x49, 0x41, 0x4c, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x41,
	0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x47, 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x10, 0x0a, 0x12,
	0x17, 0x0a, 0x13, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x47, 0x45, 0x4f, 0x53,
	0x50, 0x41, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x0b, 0x12, 0x28, 0x0a, 0x24, 0x43, 0x41, 0x54, 0x45,
	0x47, 0x4f, 0x52, 0x59, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x43, 0x41, 0x52, 0x45, 0x5f,
	0x41, 0x4e, 0x44, 0x5f, 0x4c, 0x49, 0x46, 0x45, 0x5f, 0x53, 0x43, 0x49, 0x45, 0x4e, 0x43, 0x45,
	0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x4d,
	0x45, 0x44, 0x49, 0x41, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f,
	0x52, 0x59, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x5f, 0x53, 0x45, 0x43, 0x54, 0x4f, 0x52,
	0x10, 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x52,
	0x45, 0x54, 0x41, 0x49, 0x4c, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x41, 0x54, 0x45, 0x47,
	0x4f, 0x52, 0x59, 0x5f, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x53, 0x10, 0x10, 0x12, 0x21, 0x0a, 0x1d,
	0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x53, 0x43, 0x49, 0x45, 0x4e, 0x43, 0x45,
	0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x11, 0x12,
	0x29, 0x0a, 0x25, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x54, 0x52, 0x41, 0x4e,
	0x53, 0x50, 0x4f, 0x52, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x4c,
	0x4f, 0x47, 0x49, 0x53, 0x54, 0x49, 0x43, 0x53, 0x10, 0x12, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x41,
	0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x54, 0x52, 0x41, 0x56, 0x45, 0x4c, 0x5f, 0x41, 0x4e,
	0x44, 0x5f, 0x54, 0x4f, 0x55, 0x52, 0x49, 0x53, 0x4d, 0x10, 0x13, 0x12, 0x20, 0x0a, 0x1c, 0x43,
	0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x5f, 0x45,
	0x41, 0x52, 0x54, 0x48, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x10, 0x14, 0x3a, 0x82, 0x01,
	0xea, 0x41, 0x7f, 0x0a, 0x23, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75,
	0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
	0x2f, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x58, 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, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f,
	0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x7d, 0x2f,
	0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e,
	0x67, 0x7d, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x11, 0x0a, 0x0f,
	0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42,
	0x12, 0x0a, 0x10, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x5f, 0x69,
	0x6e, 0x66, 0x6f, 0x42, 0x26, 0x0a, 0x24, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x69, 0x6e, 0x6b,
	0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79,
	0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x42, 0x1e, 0x0a, 0x1c, 0x5f,
	0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64,
	0x61, 0x74, 0x61, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x22, 0xe5, 0x0f, 0x0a, 0x0c,
	0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x07,
	0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
	0x41, 0x03, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a,
	0x0d, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x61, 0x74,
	0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 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, 0x44, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74,
	0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74,
	0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 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, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x54,
	0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x03, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x64, 0x12, 0x3f, 0x0a, 0x19, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x17, 0x6f, 0x72, 0x67, 0x61, 0x6e,
	0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61,
	0x6d, 0x65, 0x12, 0x54, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74,
	0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41,
	0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x7c, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b,
	0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x08,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61,
	0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64,
	0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42,
	0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61,
	0x73, 0x65, 0x74, 0x4d, 0x61, 0x70, 0x12, 0x32, 0x0a, 0x12, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x62, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x09, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x62, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x72, 0x0a, 0x10, 0x6c, 0x69,
	0x6e, 0x6b, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x0b,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61,
	0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64,
	0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x6c,
	0x69, 0x6e, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x63,
	0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68,
	0x61, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x70, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61,
	0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71,
	0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75,
	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f,
	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61,
	0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x55, 0x0a, 0x23, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x69, 0x6e,
	0x6b, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72,
	0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x0e, 0x20, 0x01,
	0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x01, 0x52, 0x1e, 0x6c, 0x6f, 0x67, 0x4c, 0x69,
	0x6e, 0x6b, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79,
	0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x13,
	0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61,
	0x73, 0x65, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72,
	0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76,
	0x31, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74,
	0x61, 0x73, 0x65, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69,
	0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x1a, 0xaf, 0x01,
	0x0a, 0x0e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x12, 0x2c, 0x0a, 0x0e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73,
	0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52,
	0x0d, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x43,
	0x0a, 0x1a, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x5f, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f,
	0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x18, 0x6c, 0x69, 0x6e, 0x6b, 0x65,
	0x64, 0x50, 0x75, 0x62, 0x73, 0x75, 0x62, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x07, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6c, 0x69, 0x73, 0x74, 0x69,
	0x6e, 0x67, 0x42, 0x0b, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x1a,
	0x92, 0x02, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x49, 0x6e,
	0x66, 0x6f, 0x12, 0x8f, 0x01, 0x0a, 0x11, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x6d, 0x61, 0x72,
	0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5d,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69,
	0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73,
	0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x49, 0x6e,
	0x66, 0x6f, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x61,
	0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0,
	0x41, 0x03, 0x52, 0x10, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70,
	0x6c, 0x61, 0x63, 0x65, 0x1a, 0x6e, 0x0a, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x6c,
	0x6f, 0x75, 0x64, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x49, 0x6e,
	0x66, 0x6f, 0x12, 0x50, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x3a, 0xfa, 0x41, 0x37, 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, 0x52, 0x05, 0x6f,
	0x72, 0x64, 0x65, 0x72, 0x1a, 0x87, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x44,
	0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
	0x12, 0x58, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62,
	0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63,
	0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 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, 0x10,
	0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01,
	0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x4c, 0x45, 0x10,
	0x02, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54,
	0x49, 0x56, 0x45, 0x10, 0x03, 0x3a, 0x73, 0xea, 0x41, 0x70, 0x0a, 0x28, 0x61, 0x6e, 0x61, 0x6c,
	0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b,
	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x75,
	0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x73, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x42, 0x0f, 0x0a, 0x0d, 0x72, 0x65,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x26, 0x0a, 0x24, 0x5f,
	0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73,
	0x65, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d,
	0x61, 0x69, 0x6c, 0x22, 0xa0, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61,
	0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x12, 0x28, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74,
	0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e,
	0x67, 0x65, 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, 0x22, 0x9f, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x44,
	0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x78, 0x63,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71,
	0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75,
	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 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, 0x22, 0x82, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73,
	0x74, 0x4f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61,
	0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 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, 0x22, 0xa2, 0x01,
	0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a,
	0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61,
	0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44,
	0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x64, 0x61, 0x74,
	0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 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, 0x22, 0x5e, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa,
	0x41, 0x2a, 0x0a, 0x28, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
	0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x22, 0xf3, 0x01, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74,
	0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x12, 0x28, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74,
	0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x10, 0x64, 0x61,
	0x74, 0x61, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x45,
	0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x12, 0x5d, 0x0a, 0x0d, 0x64, 0x61, 0x74,
	0x61, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
	0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69,
	0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61,
	0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 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, 0x5d, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x61,
	0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62,
	0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63,
	0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x45,
	0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x61, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x61, 0x6e, 0x61, 0x6c,
	0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x13, 0x4c,
	0x69, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x61, 0x6e, 0x61, 0x6c,
	0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 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, 0x22, 0x8a, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73,
	0x74, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x4a, 0x0a, 0x08, 0x6c, 0x69, 0x73, 0x74, 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, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c,
	0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74,
	0x69, 0x6e, 0x67, 0x52, 0x08, 0x6c, 0x69, 0x73, 0x74, 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, 0x22, 0x54, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74,
	0x69, 0x6e, 0x67, 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, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x69,
	0x73, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x14,
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x22,
	0x0a, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67,
	0x49, 0x64, 0x12, 0x4d, 0x0a, 0x07, 0x6c, 0x69, 0x73, 0x74, 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, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c,
	0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74,
	0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e,
	0x67, 0x22, 0xa7, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74,
	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, 0x4d, 0x0a, 0x07,
	0x6c, 0x69, 0x73, 0x74, 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, 0x62, 0x69, 0x67,
	0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68,
	0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0,
	0x41, 0x02, 0x52, 0x07, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x89, 0x01, 0x0a, 0x14,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 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, 0x61, 0x6e, 0x61, 0x6c,
	0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x52,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f,
	0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
	0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6d,
	0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x22, 0xf2, 0x02, 0x0a, 0x17, 0x53, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x62, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x71, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
	0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69,
	0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x04,
	0x48, 0x00, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44,
	0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x93, 0x01, 0x0a, 0x1f, 0x64, 0x65, 0x73, 0x74, 0x69,
	0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f, 0x73, 0x75,
	0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
	0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69,
	0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x50, 0x75, 0x62, 0x53, 0x75, 0x62, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x04, 0x48, 0x00, 0x52, 0x1d, 0x64,
	0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x75, 0x62, 0x73, 0x75, 0x62,
	0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa,
	0x41, 0x25, 0x0a, 0x23, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
	0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a,
	0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x73, 0x0a, 0x18,
	0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69,
	0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73,
	0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x22, 0xfa, 0x02, 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x44,
	0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x44, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74,
	0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74,
	0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 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, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
	0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79,
	0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69,
	0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x42, 0x03, 0xe0,
	0x41, 0x01, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44,
	0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x27, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x2d, 0x0a, 0x12, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x5f, 0x63, 0x6f,
	0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x22, 0x78,
	0x0a, 0x1d, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x44, 0x61, 0x74, 0x61, 0x45,
	0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x57, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75,
	0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x62, 0x0a, 0x1a, 0x52, 0x65, 0x66, 0x72,
	0x65, 0x73, 0x68, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x76, 0x0a, 0x1b,
	0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0c, 0x73,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74,
	0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5e, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44,
	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41,
	0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68,
	0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
	0x6d, 0x2f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x12, 0x28, 0x61, 0x6e, 0x61, 0x6c, 0x79,
	0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66,
	0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c,
	0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65,
	0x18, 0x03, 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, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22,
	0x9e, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a,
	0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61,
	0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 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,
	0x22, 0xcf, 0x01, 0x0a, 0x26, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x52,
	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x08, 0x72,
	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09, 0xe0,
	0x41, 0x02, 0xfa, 0x41, 0x03, 0x0a, 0x01, 0x2a, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x12, 0x42, 0x0a, 0x1d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65,
	0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x69, 0x6e, 0x63, 0x6c, 0x75,
	0x64, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73,
	0x69, 0x7a, 0x65, 0x18, 0x03, 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, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b,
	0x65, 0x6e, 0x22, 0xca, 0x01, 0x0a, 0x27, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65,
	0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77,
	0x0a, 0x1d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75,
	0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1b, 0x73, 0x68, 0x61, 0x72,
	0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 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, 0x22,
	0x93, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02,
	0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75,
	0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
	0x2f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x5f, 0x63, 0x6f,
	0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03,
	0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x65,
	0x72, 0x63, 0x69, 0x61, 0x6c, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0x61, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x44, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30,
	0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63,
	0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd5, 0x02, 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0b,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 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, 0x42, 0x03, 0xe0,
	0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a,
	0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41,
	0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x74, 0x61,
	0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
	0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x76, 0x65, 0x72, 0x62, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x76, 0x65, 0x72, 0x62,
	0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x16,
	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c,
	0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41,
	0x03, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x43, 0x61, 0x6e, 0x63,
	0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f,
	0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
	0x41, 0x03, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2a, 0x66,
	0x0a, 0x0d, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x1e, 0x0a, 0x1a, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50,
	0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
	0x1a, 0x0a, 0x16, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50,
	0x45, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x44,
	0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55,
	0x42, 0x4c, 0x49, 0x43, 0x10, 0x02, 0x2a, 0x62, 0x0a, 0x12, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64,
	0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x20,
	0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f,
	0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
	0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x49, 0x47, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x44,
	0x41, 0x54, 0x41, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x55, 0x42, 0x53,
	0x55, 0x42, 0x5f, 0x54, 0x4f, 0x50, 0x49, 0x43, 0x10, 0x02, 0x32, 0x80, 0x38, 0x0a, 0x13, 0x41,
	0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x48, 0x75, 0x62, 0x53, 0x65, 0x72, 0x76, 0x69,
	0x63, 0x65, 0x12, 0xda, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x45,
	0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79,
	0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72,
	0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76,
	0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e,
	0x67, 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,
	0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12,
	0xf4, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x45,
	0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79,
	0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71,
	0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75,
	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x44, 0x61, 0x74, 0x61,
	0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x53, 0xda, 0x41, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6f,
	0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3d, 0x6f, 0x72, 0x67, 0x61,
	0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0xc7, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x44, 0x61,
	0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65,
	0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72,
	0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76,
	0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 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,
	0x64, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x7d,
	0x12, 0xec, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x45,
	0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e,
	0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e,
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72,
	0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76,
	0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x5f,
	0xda, 0x41, 0x14, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65,
	0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x3a, 0x0d, 0x64,
	0x61, 0x74, 0x61, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 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,
	0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12,
	0xff, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61,
	0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79,
	0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x72, 0xda,
	0x41, 0x19, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2c,
	0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02,
	0x50, 0x3a, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x32, 0x3f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x65, 0x78, 0x63, 0x68,
	0x61, 0x6e, 0x67, 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, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x2a,
	0x7d, 0x12, 0xb0, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61,
	0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79,
	0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 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, 0x40, 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, 0x64, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd6, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x69, 0x73,
	0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69,
	0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 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, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74,
	0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x69,
	0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d,
	0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12,
	0x3c, 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, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
	0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0xc3, 0x01,
	0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71,
	0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75,
	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 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, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61,
	0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c,
	0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x4b, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82,
	0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 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, 0x45, 0x78, 0x63, 0x68,
	0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73,
	0x2f, 0x2a, 0x7d, 0x12, 0xdc, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x69,
	0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 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, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79,
	0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x69,
	0x6e, 0x67, 0x22, 0x5e, 0xda, 0x41, 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6c, 0x69,
	0x73, 0x74, 0x69, 0x6e, 0x67, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x3a, 0x07, 0x6c, 0x69, 0x73,
	0x74, 0x69, 0x6e, 0x67, 0x22, 0x3c, 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, 0x45, 0x78, 0x63,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e,
	0x67, 0x73, 0x12, 0xe9, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73,
	0x74, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61,
	0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 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, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74,
	0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e,
	0x67, 0x22, 0x6b, 0xda, 0x41, 0x13, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4f, 0x3a,
	0x07, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x32, 0x44, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6c,
	0x69, 0x73, 0x74, 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, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73,
	0x2f, 0x2a, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb1,
	0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67,
	0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
	0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69,
	0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c,
	0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 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, 0x4b, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3,
	0xe4, 0x93, 0x02, 0x3e, 0x2a, 0x3c, 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, 0x45, 0x78, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f,
	0x2a, 0x7d, 0x12, 0xed, 0x01, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
	0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e,
	0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e,
	0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x3a, 0x01, 0x2a, 0x22, 0x46, 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, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x69, 0x73,
	0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x62, 0x65, 0x12, 0x80, 0x02, 0x0a, 0x15, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
	0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x43, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71,
	0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75,
	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x44, 0x61,
	0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 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, 0x82, 0x01, 0xca, 0x41, 0x32, 0x0a, 0x1d, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
	0x65, 0x44, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 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, 0x40, 0x3a, 0x01, 0x2a, 0x22, 0x3b, 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, 0x45,
	0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0xf7, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73,
	0x68, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67,
	0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68,
	0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 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,
	0x7e, 0xca, 0x41, 0x30, 0x0a, 0x1b, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 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,
	0x3e, 0x3a, 0x01, 0x2a, 0x22, 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, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x12,
	0xc7, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c,
	0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
	0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79,
	0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xda, 0x01, 0x0a, 0x11, 0x4c, 0x69,
	0x73, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
	0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62,
	0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63,
	0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
	0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69,
	0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x7d, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xf4, 0x02, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x53,
	0x68, 0x61, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4d, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65,
	0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72,
	0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76,
	0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb1, 0x01, 0xda, 0x41, 0x08, 0x72,
	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x9f, 0x01, 0x5a, 0x54,
	0x12, 0x52, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 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, 0x45, 0x78, 0x63, 0x68, 0x61,
	0x6e, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f,
	0x2a, 0x7d, 0x3a, 0x6c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x12, 0x47, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 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, 0x45,
	0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x6c, 0x69, 0x73, 0x74,
	0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xe5, 0x01,
	0x0a, 0x12, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61,
	0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76,
	0x6f, 0x6b, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61,
	0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x52,
	0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0xda, 0x41, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x3a, 0x01, 0x2a, 0x22, 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, 0x73, 0x75,
	0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72,
	0x65, 0x76, 0x6f, 0x6b, 0x65, 0x12, 0xe4, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71,
	0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75,
	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 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, 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, 0x73, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb7, 0x02, 0x0a,
	0x0c, 0x47, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x22, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65,
	0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76,
	0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xeb, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02,
	0xe4, 0x01, 0x3a, 0x01, 0x2a, 0x5a, 0x52, 0x3a, 0x01, 0x2a, 0x22, 0x4d, 0x2f, 0x76, 0x31, 0x2f,
	0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 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, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x2a,
	0x2f, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x74,
	0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5a, 0x47, 0x3a, 0x01, 0x2a, 0x22, 0x42,
	0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3d, 0x70, 0x72,
	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69,
	0x63, 0x79, 0x22, 0x42, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
	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, 0x45, 0x78, 0x63,
	0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x74, 0x49, 0x61, 0x6d,
	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0xb7, 0x02, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x49, 0x61,
	0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f,
	0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69,
	0x63, 0x79, 0x22, 0xeb, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xe4, 0x01, 0x3a, 0x01, 0x2a, 0x5a,
	0x52, 0x3a, 0x01, 0x2a, 0x22, 0x4d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 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, 0x45,
	0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x69,
	0x6e, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c,
	0x69, 0x63, 0x79, 0x5a, 0x47, 0x3a, 0x01, 0x2a, 0x22, 0x42, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72,
	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73,
	0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a,
	0x73, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x42, 0x2f, 0x76,
	0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 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, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73,
	0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
	0x12, 0x9a, 0x02, 0x0a, 0x12, 0x54, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d,
	0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d, 0x50,
	0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76,
	0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73,
	0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xae, 0x01, 0x82,
	0xd3, 0xe4, 0x93, 0x02, 0xa7, 0x01, 0x3a, 0x01, 0x2a, 0x5a, 0x58, 0x3a, 0x01, 0x2a, 0x22, 0x53,
	0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 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, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x2a, 0x7d,
	0x3a, 0x74, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69,
	0x6f, 0x6e, 0x73, 0x22, 0x48, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
	0x63, 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, 0x45, 0x78,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x74, 0x65, 0x73, 0x74, 0x49,
	0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x95, 0x02,
	0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d,
	0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e,
	0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79,
	0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31,
	0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x84,
	0x01, 0xda, 0x41, 0x27, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x71, 0x75, 0x65, 0x72, 0x79,
	0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f,
	0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02,
	0x54, 0x3a, 0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
	0x65, 0x22, 0x42, 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, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e,
	0x67, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70,
	0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0xdb, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65,
	0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65,
	0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65,
	0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x22, 0x51, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x12,
	0x42, 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, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f,
	0x2a, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73,
	0x2f, 0x2a, 0x7d, 0x12, 0xee, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72,
	0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0x40, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65,
	0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e,
	0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70,
	0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71,
	0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75,
	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65,
	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0x53, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44,
	0x12, 0x42, 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, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x73, 0x12, 0x97, 0x02, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x51,
	0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x41, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71,
	0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75,
	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79,
	0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62,
	0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63,
	0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d,
	0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x86, 0x01, 0xda, 0x41, 0x1a, 0x71, 0x75, 0x65, 0x72, 0x79,
	0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x63, 0x3a, 0x0e, 0x71, 0x75, 0x65,
	0x72, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x32, 0x51, 0x2f, 0x76, 0x31,
	0x2f, 0x7b, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 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, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x71, 0x75, 0x65,
	0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc3,
	0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65,
	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61,
	0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61,
	0x74, 0x65, 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,
	0x2a, 0x42, 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, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73,
	0x2f, 0x2a, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xeb, 0x01, 0x0a, 0x13, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x51,
	0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x41, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71,
	0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75,
	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79,
	0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62,
	0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63,
	0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d,
	0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x5b, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3,
	0xe4, 0x93, 0x02, 0x4e, 0x3a, 0x01, 0x2a, 0x22, 0x49, 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, 0x45, 0x78,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54,
	0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x75, 0x62, 0x6d,
	0x69, 0x74, 0x12, 0xee, 0x01, 0x0a, 0x14, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x51, 0x75,
	0x65, 0x72, 0x79, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x42, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75,
	0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62,
	0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79,
	0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62,
	0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63,
	0x73, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x6d,
	0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x5c, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3,
	0xe4, 0x93, 0x02, 0x4f, 0x3a, 0x01, 0x2a, 0x22, 0x4a, 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, 0x45, 0x78,
	0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54,
	0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x70, 0x70, 0x72,
	0x6f, 0x76, 0x65, 0x1a, 0x78, 0xca, 0x41, 0x1b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63,
	0x73, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x57, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
	0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
	0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2c, 0x68,
	0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xf4, 0x05,
	0xea, 0x41, 0x48, 0x0a, 0x1f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74,
	0x61, 0x73, 0x65, 0x74, 0x12, 0x25, 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, 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, 0xea, 0x41, 0x40, 0x0a, 0x1b, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x6f,
	0x70, 0x69, 0x63, 0x12, 0x21, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70,
	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x2f, 0x7b,
	0x74, 0x6f, 0x70, 0x69, 0x63, 0x7d, 0xea, 0x41, 0x5b, 0x0a, 0x1f, 0x62, 0x69, 0x67, 0x71, 0x75,
	0x65, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63,
	0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x65, 0x12, 0x38, 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, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x6f, 0x75, 0x74,
	0x69, 0x6e, 0x65, 0x7d, 0xea, 0x41, 0x45, 0x0a, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
	0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65,
	0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0xea, 0x41, 0x5a, 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, 0x21, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73,
	0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6f, 0x72, 0x64, 0x65, 0x72,
	0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x7d, 0x0a, 0x29, 0x63, 0x6f, 0x6d, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x71,
	0x75, 0x65, 0x72, 0x79, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x68, 0x75,
	0x62, 0x2e, 0x76, 0x31, 0x42, 0x11, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x48,
	0x75, 0x62, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4d, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x62,
	0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63,
	0x73, 0x68, 0x75, 0x62, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79,
	0x74, 0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x70, 0x62, 0x3b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74,
	0x69, 0x63, 0x73, 0x68, 0x75, 0x62, 0x70, 0x62, 0xaa, 0x02, 0x25, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79,
	0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x48, 0x75, 0x62, 0x2e, 0x56, 0x31,
	0xca, 0x02, 0x25, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c,
	0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x5c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69,
	0x63, 0x73, 0x48, 0x75, 0x62, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x29, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x42, 0x69, 0x67, 0x71, 0x75, 0x65,
	0x72, 0x79, 0x3a, 0x3a, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x48, 0x75, 0x62,
	0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescOnce sync.Once
	file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescData = file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDesc
)

func file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescGZIP() []byte {
	file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescOnce.Do(func() {
		file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescData)
	})
	return file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDescData
}

var file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes = make([]protoimpl.EnumInfo, 10)
var file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes = make([]protoimpl.MessageInfo, 63)
var file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_goTypes = []any{
	(DiscoveryType)(0),       // 0: google.cloud.bigquery.analyticshub.v1.DiscoveryType
	(SharedResourceType)(0),  // 1: google.cloud.bigquery.analyticshub.v1.SharedResourceType
	(QueryTemplate_State)(0), // 2: google.cloud.bigquery.analyticshub.v1.QueryTemplate.State
	(Routine_RoutineType)(0), // 3: google.cloud.bigquery.analyticshub.v1.Routine.RoutineType
	(Listing_State)(0),       // 4: google.cloud.bigquery.analyticshub.v1.Listing.State
	(Listing_Category)(0),    // 5: google.cloud.bigquery.analyticshub.v1.Listing.Category
	(Listing_BigQueryDatasetSource_Replica_ReplicaState)(0),                // 6: google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.Replica.ReplicaState
	(Listing_BigQueryDatasetSource_Replica_PrimaryState)(0),                // 7: google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.Replica.PrimaryState
	(Listing_CommercialInfo_GoogleCloudMarketplaceInfo_CommercialState)(0), // 8: google.cloud.bigquery.analyticshub.v1.Listing.CommercialInfo.GoogleCloudMarketplaceInfo.CommercialState
	(Subscription_State)(0),                                // 9: google.cloud.bigquery.analyticshub.v1.Subscription.State
	(*DataExchange)(nil),                                   // 10: google.cloud.bigquery.analyticshub.v1.DataExchange
	(*QueryTemplate)(nil),                                  // 11: google.cloud.bigquery.analyticshub.v1.QueryTemplate
	(*Routine)(nil),                                        // 12: google.cloud.bigquery.analyticshub.v1.Routine
	(*CreateQueryTemplateRequest)(nil),                     // 13: google.cloud.bigquery.analyticshub.v1.CreateQueryTemplateRequest
	(*GetQueryTemplateRequest)(nil),                        // 14: google.cloud.bigquery.analyticshub.v1.GetQueryTemplateRequest
	(*ListQueryTemplatesRequest)(nil),                      // 15: google.cloud.bigquery.analyticshub.v1.ListQueryTemplatesRequest
	(*ListQueryTemplatesResponse)(nil),                     // 16: google.cloud.bigquery.analyticshub.v1.ListQueryTemplatesResponse
	(*UpdateQueryTemplateRequest)(nil),                     // 17: google.cloud.bigquery.analyticshub.v1.UpdateQueryTemplateRequest
	(*DeleteQueryTemplateRequest)(nil),                     // 18: google.cloud.bigquery.analyticshub.v1.DeleteQueryTemplateRequest
	(*SubmitQueryTemplateRequest)(nil),                     // 19: google.cloud.bigquery.analyticshub.v1.SubmitQueryTemplateRequest
	(*ApproveQueryTemplateRequest)(nil),                    // 20: google.cloud.bigquery.analyticshub.v1.ApproveQueryTemplateRequest
	(*SharingEnvironmentConfig)(nil),                       // 21: google.cloud.bigquery.analyticshub.v1.SharingEnvironmentConfig
	(*DataProvider)(nil),                                   // 22: google.cloud.bigquery.analyticshub.v1.DataProvider
	(*Publisher)(nil),                                      // 23: google.cloud.bigquery.analyticshub.v1.Publisher
	(*DestinationDatasetReference)(nil),                    // 24: google.cloud.bigquery.analyticshub.v1.DestinationDatasetReference
	(*DestinationDataset)(nil),                             // 25: google.cloud.bigquery.analyticshub.v1.DestinationDataset
	(*DestinationPubSubSubscription)(nil),                  // 26: google.cloud.bigquery.analyticshub.v1.DestinationPubSubSubscription
	(*Listing)(nil),                                        // 27: google.cloud.bigquery.analyticshub.v1.Listing
	(*Subscription)(nil),                                   // 28: google.cloud.bigquery.analyticshub.v1.Subscription
	(*ListDataExchangesRequest)(nil),                       // 29: google.cloud.bigquery.analyticshub.v1.ListDataExchangesRequest
	(*ListDataExchangesResponse)(nil),                      // 30: google.cloud.bigquery.analyticshub.v1.ListDataExchangesResponse
	(*ListOrgDataExchangesRequest)(nil),                    // 31: google.cloud.bigquery.analyticshub.v1.ListOrgDataExchangesRequest
	(*ListOrgDataExchangesResponse)(nil),                   // 32: google.cloud.bigquery.analyticshub.v1.ListOrgDataExchangesResponse
	(*GetDataExchangeRequest)(nil),                         // 33: google.cloud.bigquery.analyticshub.v1.GetDataExchangeRequest
	(*CreateDataExchangeRequest)(nil),                      // 34: google.cloud.bigquery.analyticshub.v1.CreateDataExchangeRequest
	(*UpdateDataExchangeRequest)(nil),                      // 35: google.cloud.bigquery.analyticshub.v1.UpdateDataExchangeRequest
	(*DeleteDataExchangeRequest)(nil),                      // 36: google.cloud.bigquery.analyticshub.v1.DeleteDataExchangeRequest
	(*ListListingsRequest)(nil),                            // 37: google.cloud.bigquery.analyticshub.v1.ListListingsRequest
	(*ListListingsResponse)(nil),                           // 38: google.cloud.bigquery.analyticshub.v1.ListListingsResponse
	(*GetListingRequest)(nil),                              // 39: google.cloud.bigquery.analyticshub.v1.GetListingRequest
	(*CreateListingRequest)(nil),                           // 40: google.cloud.bigquery.analyticshub.v1.CreateListingRequest
	(*UpdateListingRequest)(nil),                           // 41: google.cloud.bigquery.analyticshub.v1.UpdateListingRequest
	(*DeleteListingRequest)(nil),                           // 42: google.cloud.bigquery.analyticshub.v1.DeleteListingRequest
	(*SubscribeListingRequest)(nil),                        // 43: google.cloud.bigquery.analyticshub.v1.SubscribeListingRequest
	(*SubscribeListingResponse)(nil),                       // 44: google.cloud.bigquery.analyticshub.v1.SubscribeListingResponse
	(*SubscribeDataExchangeRequest)(nil),                   // 45: google.cloud.bigquery.analyticshub.v1.SubscribeDataExchangeRequest
	(*SubscribeDataExchangeResponse)(nil),                  // 46: google.cloud.bigquery.analyticshub.v1.SubscribeDataExchangeResponse
	(*RefreshSubscriptionRequest)(nil),                     // 47: google.cloud.bigquery.analyticshub.v1.RefreshSubscriptionRequest
	(*RefreshSubscriptionResponse)(nil),                    // 48: google.cloud.bigquery.analyticshub.v1.RefreshSubscriptionResponse
	(*GetSubscriptionRequest)(nil),                         // 49: google.cloud.bigquery.analyticshub.v1.GetSubscriptionRequest
	(*ListSubscriptionsRequest)(nil),                       // 50: google.cloud.bigquery.analyticshub.v1.ListSubscriptionsRequest
	(*ListSubscriptionsResponse)(nil),                      // 51: google.cloud.bigquery.analyticshub.v1.ListSubscriptionsResponse
	(*ListSharedResourceSubscriptionsRequest)(nil),         // 52: google.cloud.bigquery.analyticshub.v1.ListSharedResourceSubscriptionsRequest
	(*ListSharedResourceSubscriptionsResponse)(nil),        // 53: google.cloud.bigquery.analyticshub.v1.ListSharedResourceSubscriptionsResponse
	(*RevokeSubscriptionRequest)(nil),                      // 54: google.cloud.bigquery.analyticshub.v1.RevokeSubscriptionRequest
	(*RevokeSubscriptionResponse)(nil),                     // 55: google.cloud.bigquery.analyticshub.v1.RevokeSubscriptionResponse
	(*DeleteSubscriptionRequest)(nil),                      // 56: google.cloud.bigquery.analyticshub.v1.DeleteSubscriptionRequest
	(*OperationMetadata)(nil),                              // 57: google.cloud.bigquery.analyticshub.v1.OperationMetadata
	(*SharingEnvironmentConfig_DefaultExchangeConfig)(nil), // 58: google.cloud.bigquery.analyticshub.v1.SharingEnvironmentConfig.DefaultExchangeConfig
	(*SharingEnvironmentConfig_DcrExchangeConfig)(nil),     // 59: google.cloud.bigquery.analyticshub.v1.SharingEnvironmentConfig.DcrExchangeConfig
	nil,                                    // 60: google.cloud.bigquery.analyticshub.v1.DestinationDataset.LabelsEntry
	(*Listing_BigQueryDatasetSource)(nil),  // 61: google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource
	(*Listing_PubSubTopicSource)(nil),      // 62: google.cloud.bigquery.analyticshub.v1.Listing.PubSubTopicSource
	(*Listing_RestrictedExportConfig)(nil), // 63: google.cloud.bigquery.analyticshub.v1.Listing.RestrictedExportConfig
	(*Listing_CommercialInfo)(nil),         // 64: google.cloud.bigquery.analyticshub.v1.Listing.CommercialInfo
	(*Listing_BigQueryDatasetSource_SelectedResource)(nil),         // 65: google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.SelectedResource
	(*Listing_BigQueryDatasetSource_RestrictedExportPolicy)(nil),   // 66: google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.RestrictedExportPolicy
	(*Listing_BigQueryDatasetSource_Replica)(nil),                  // 67: google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.Replica
	(*Listing_CommercialInfo_GoogleCloudMarketplaceInfo)(nil),      // 68: google.cloud.bigquery.analyticshub.v1.Listing.CommercialInfo.GoogleCloudMarketplaceInfo
	(*Subscription_LinkedResource)(nil),                            // 69: google.cloud.bigquery.analyticshub.v1.Subscription.LinkedResource
	(*Subscription_CommercialInfo)(nil),                            // 70: google.cloud.bigquery.analyticshub.v1.Subscription.CommercialInfo
	nil,                                                            // 71: google.cloud.bigquery.analyticshub.v1.Subscription.LinkedDatasetMapEntry
	(*Subscription_CommercialInfo_GoogleCloudMarketplaceInfo)(nil), // 72: google.cloud.bigquery.analyticshub.v1.Subscription.CommercialInfo.GoogleCloudMarketplaceInfo
	(*timestamppb.Timestamp)(nil),                                  // 73: google.protobuf.Timestamp
	(*fieldmaskpb.FieldMask)(nil),                                  // 74: google.protobuf.FieldMask
	(*wrapperspb.StringValue)(nil),                                 // 75: google.protobuf.StringValue
	(*PubSubSubscription)(nil),                                     // 76: google.cloud.bigquery.analyticshub.v1.PubSubSubscription
	(*wrapperspb.BoolValue)(nil),                                   // 77: google.protobuf.BoolValue
	(*iampb.GetIamPolicyRequest)(nil),                              // 78: google.iam.v1.GetIamPolicyRequest
	(*iampb.SetIamPolicyRequest)(nil),                              // 79: google.iam.v1.SetIamPolicyRequest
	(*iampb.TestIamPermissionsRequest)(nil),                        // 80: google.iam.v1.TestIamPermissionsRequest
	(*emptypb.Empty)(nil),                                          // 81: google.protobuf.Empty
	(*longrunningpb.Operation)(nil),                                // 82: google.longrunning.Operation
	(*iampb.Policy)(nil),                                           // 83: google.iam.v1.Policy
	(*iampb.TestIamPermissionsResponse)(nil),                       // 84: google.iam.v1.TestIamPermissionsResponse
}
var file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_depIdxs = []int32{
	21, // 0: google.cloud.bigquery.analyticshub.v1.DataExchange.sharing_environment_config:type_name -> google.cloud.bigquery.analyticshub.v1.SharingEnvironmentConfig
	0,  // 1: google.cloud.bigquery.analyticshub.v1.DataExchange.discovery_type:type_name -> google.cloud.bigquery.analyticshub.v1.DiscoveryType
	2,  // 2: google.cloud.bigquery.analyticshub.v1.QueryTemplate.state:type_name -> google.cloud.bigquery.analyticshub.v1.QueryTemplate.State
	12, // 3: google.cloud.bigquery.analyticshub.v1.QueryTemplate.routine:type_name -> google.cloud.bigquery.analyticshub.v1.Routine
	73, // 4: google.cloud.bigquery.analyticshub.v1.QueryTemplate.create_time:type_name -> google.protobuf.Timestamp
	73, // 5: google.cloud.bigquery.analyticshub.v1.QueryTemplate.update_time:type_name -> google.protobuf.Timestamp
	3,  // 6: google.cloud.bigquery.analyticshub.v1.Routine.routine_type:type_name -> google.cloud.bigquery.analyticshub.v1.Routine.RoutineType
	11, // 7: google.cloud.bigquery.analyticshub.v1.CreateQueryTemplateRequest.query_template:type_name -> google.cloud.bigquery.analyticshub.v1.QueryTemplate
	11, // 8: google.cloud.bigquery.analyticshub.v1.ListQueryTemplatesResponse.query_templates:type_name -> google.cloud.bigquery.analyticshub.v1.QueryTemplate
	74, // 9: google.cloud.bigquery.analyticshub.v1.UpdateQueryTemplateRequest.update_mask:type_name -> google.protobuf.FieldMask
	11, // 10: google.cloud.bigquery.analyticshub.v1.UpdateQueryTemplateRequest.query_template:type_name -> google.cloud.bigquery.analyticshub.v1.QueryTemplate
	58, // 11: google.cloud.bigquery.analyticshub.v1.SharingEnvironmentConfig.default_exchange_config:type_name -> google.cloud.bigquery.analyticshub.v1.SharingEnvironmentConfig.DefaultExchangeConfig
	59, // 12: google.cloud.bigquery.analyticshub.v1.SharingEnvironmentConfig.dcr_exchange_config:type_name -> google.cloud.bigquery.analyticshub.v1.SharingEnvironmentConfig.DcrExchangeConfig
	24, // 13: google.cloud.bigquery.analyticshub.v1.DestinationDataset.dataset_reference:type_name -> google.cloud.bigquery.analyticshub.v1.DestinationDatasetReference
	75, // 14: google.cloud.bigquery.analyticshub.v1.DestinationDataset.friendly_name:type_name -> google.protobuf.StringValue
	75, // 15: google.cloud.bigquery.analyticshub.v1.DestinationDataset.description:type_name -> google.protobuf.StringValue
	60, // 16: google.cloud.bigquery.analyticshub.v1.DestinationDataset.labels:type_name -> google.cloud.bigquery.analyticshub.v1.DestinationDataset.LabelsEntry
	76, // 17: google.cloud.bigquery.analyticshub.v1.DestinationPubSubSubscription.pubsub_subscription:type_name -> google.cloud.bigquery.analyticshub.v1.PubSubSubscription
	61, // 18: google.cloud.bigquery.analyticshub.v1.Listing.bigquery_dataset:type_name -> google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource
	62, // 19: google.cloud.bigquery.analyticshub.v1.Listing.pubsub_topic:type_name -> google.cloud.bigquery.analyticshub.v1.Listing.PubSubTopicSource
	4,  // 20: google.cloud.bigquery.analyticshub.v1.Listing.state:type_name -> google.cloud.bigquery.analyticshub.v1.Listing.State
	22, // 21: google.cloud.bigquery.analyticshub.v1.Listing.data_provider:type_name -> google.cloud.bigquery.analyticshub.v1.DataProvider
	5,  // 22: google.cloud.bigquery.analyticshub.v1.Listing.categories:type_name -> google.cloud.bigquery.analyticshub.v1.Listing.Category
	23, // 23: google.cloud.bigquery.analyticshub.v1.Listing.publisher:type_name -> google.cloud.bigquery.analyticshub.v1.Publisher
	63, // 24: google.cloud.bigquery.analyticshub.v1.Listing.restricted_export_config:type_name -> google.cloud.bigquery.analyticshub.v1.Listing.RestrictedExportConfig
	0,  // 25: google.cloud.bigquery.analyticshub.v1.Listing.discovery_type:type_name -> google.cloud.bigquery.analyticshub.v1.DiscoveryType
	1,  // 26: google.cloud.bigquery.analyticshub.v1.Listing.resource_type:type_name -> google.cloud.bigquery.analyticshub.v1.SharedResourceType
	64, // 27: google.cloud.bigquery.analyticshub.v1.Listing.commercial_info:type_name -> google.cloud.bigquery.analyticshub.v1.Listing.CommercialInfo
	73, // 28: google.cloud.bigquery.analyticshub.v1.Subscription.creation_time:type_name -> google.protobuf.Timestamp
	73, // 29: google.cloud.bigquery.analyticshub.v1.Subscription.last_modify_time:type_name -> google.protobuf.Timestamp
	9,  // 30: google.cloud.bigquery.analyticshub.v1.Subscription.state:type_name -> google.cloud.bigquery.analyticshub.v1.Subscription.State
	71, // 31: google.cloud.bigquery.analyticshub.v1.Subscription.linked_dataset_map:type_name -> google.cloud.bigquery.analyticshub.v1.Subscription.LinkedDatasetMapEntry
	69, // 32: google.cloud.bigquery.analyticshub.v1.Subscription.linked_resources:type_name -> google.cloud.bigquery.analyticshub.v1.Subscription.LinkedResource
	1,  // 33: google.cloud.bigquery.analyticshub.v1.Subscription.resource_type:type_name -> google.cloud.bigquery.analyticshub.v1.SharedResourceType
	70, // 34: google.cloud.bigquery.analyticshub.v1.Subscription.commercial_info:type_name -> google.cloud.bigquery.analyticshub.v1.Subscription.CommercialInfo
	25, // 35: google.cloud.bigquery.analyticshub.v1.Subscription.destination_dataset:type_name -> google.cloud.bigquery.analyticshub.v1.DestinationDataset
	10, // 36: google.cloud.bigquery.analyticshub.v1.ListDataExchangesResponse.data_exchanges:type_name -> google.cloud.bigquery.analyticshub.v1.DataExchange
	10, // 37: google.cloud.bigquery.analyticshub.v1.ListOrgDataExchangesResponse.data_exchanges:type_name -> google.cloud.bigquery.analyticshub.v1.DataExchange
	10, // 38: google.cloud.bigquery.analyticshub.v1.CreateDataExchangeRequest.data_exchange:type_name -> google.cloud.bigquery.analyticshub.v1.DataExchange
	74, // 39: google.cloud.bigquery.analyticshub.v1.UpdateDataExchangeRequest.update_mask:type_name -> google.protobuf.FieldMask
	10, // 40: google.cloud.bigquery.analyticshub.v1.UpdateDataExchangeRequest.data_exchange:type_name -> google.cloud.bigquery.analyticshub.v1.DataExchange
	27, // 41: google.cloud.bigquery.analyticshub.v1.ListListingsResponse.listings:type_name -> google.cloud.bigquery.analyticshub.v1.Listing
	27, // 42: google.cloud.bigquery.analyticshub.v1.CreateListingRequest.listing:type_name -> google.cloud.bigquery.analyticshub.v1.Listing
	74, // 43: google.cloud.bigquery.analyticshub.v1.UpdateListingRequest.update_mask:type_name -> google.protobuf.FieldMask
	27, // 44: google.cloud.bigquery.analyticshub.v1.UpdateListingRequest.listing:type_name -> google.cloud.bigquery.analyticshub.v1.Listing
	25, // 45: google.cloud.bigquery.analyticshub.v1.SubscribeListingRequest.destination_dataset:type_name -> google.cloud.bigquery.analyticshub.v1.DestinationDataset
	26, // 46: google.cloud.bigquery.analyticshub.v1.SubscribeListingRequest.destination_pubsub_subscription:type_name -> google.cloud.bigquery.analyticshub.v1.DestinationPubSubSubscription
	28, // 47: google.cloud.bigquery.analyticshub.v1.SubscribeListingResponse.subscription:type_name -> google.cloud.bigquery.analyticshub.v1.Subscription
	25, // 48: google.cloud.bigquery.analyticshub.v1.SubscribeDataExchangeRequest.destination_dataset:type_name -> google.cloud.bigquery.analyticshub.v1.DestinationDataset
	28, // 49: google.cloud.bigquery.analyticshub.v1.SubscribeDataExchangeResponse.subscription:type_name -> google.cloud.bigquery.analyticshub.v1.Subscription
	28, // 50: google.cloud.bigquery.analyticshub.v1.RefreshSubscriptionResponse.subscription:type_name -> google.cloud.bigquery.analyticshub.v1.Subscription
	28, // 51: google.cloud.bigquery.analyticshub.v1.ListSubscriptionsResponse.subscriptions:type_name -> google.cloud.bigquery.analyticshub.v1.Subscription
	28, // 52: google.cloud.bigquery.analyticshub.v1.ListSharedResourceSubscriptionsResponse.shared_resource_subscriptions:type_name -> google.cloud.bigquery.analyticshub.v1.Subscription
	73, // 53: google.cloud.bigquery.analyticshub.v1.OperationMetadata.create_time:type_name -> google.protobuf.Timestamp
	73, // 54: google.cloud.bigquery.analyticshub.v1.OperationMetadata.end_time:type_name -> google.protobuf.Timestamp
	65, // 55: google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.selected_resources:type_name -> google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.SelectedResource
	66, // 56: google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.restricted_export_policy:type_name -> google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.RestrictedExportPolicy
	67, // 57: google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.effective_replicas:type_name -> google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.Replica
	68, // 58: google.cloud.bigquery.analyticshub.v1.Listing.CommercialInfo.cloud_marketplace:type_name -> google.cloud.bigquery.analyticshub.v1.Listing.CommercialInfo.GoogleCloudMarketplaceInfo
	77, // 59: google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.RestrictedExportPolicy.enabled:type_name -> google.protobuf.BoolValue
	77, // 60: google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.RestrictedExportPolicy.restrict_direct_table_access:type_name -> google.protobuf.BoolValue
	77, // 61: google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.RestrictedExportPolicy.restrict_query_result:type_name -> google.protobuf.BoolValue
	6,  // 62: google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.Replica.replica_state:type_name -> google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.Replica.ReplicaState
	7,  // 63: google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.Replica.primary_state:type_name -> google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.Replica.PrimaryState
	8,  // 64: google.cloud.bigquery.analyticshub.v1.Listing.CommercialInfo.GoogleCloudMarketplaceInfo.commercial_state:type_name -> google.cloud.bigquery.analyticshub.v1.Listing.CommercialInfo.GoogleCloudMarketplaceInfo.CommercialState
	72, // 65: google.cloud.bigquery.analyticshub.v1.Subscription.CommercialInfo.cloud_marketplace:type_name -> google.cloud.bigquery.analyticshub.v1.Subscription.CommercialInfo.GoogleCloudMarketplaceInfo
	69, // 66: google.cloud.bigquery.analyticshub.v1.Subscription.LinkedDatasetMapEntry.value:type_name -> google.cloud.bigquery.analyticshub.v1.Subscription.LinkedResource
	29, // 67: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ListDataExchanges:input_type -> google.cloud.bigquery.analyticshub.v1.ListDataExchangesRequest
	31, // 68: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ListOrgDataExchanges:input_type -> google.cloud.bigquery.analyticshub.v1.ListOrgDataExchangesRequest
	33, // 69: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.GetDataExchange:input_type -> google.cloud.bigquery.analyticshub.v1.GetDataExchangeRequest
	34, // 70: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.CreateDataExchange:input_type -> google.cloud.bigquery.analyticshub.v1.CreateDataExchangeRequest
	35, // 71: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.UpdateDataExchange:input_type -> google.cloud.bigquery.analyticshub.v1.UpdateDataExchangeRequest
	36, // 72: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.DeleteDataExchange:input_type -> google.cloud.bigquery.analyticshub.v1.DeleteDataExchangeRequest
	37, // 73: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ListListings:input_type -> google.cloud.bigquery.analyticshub.v1.ListListingsRequest
	39, // 74: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.GetListing:input_type -> google.cloud.bigquery.analyticshub.v1.GetListingRequest
	40, // 75: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.CreateListing:input_type -> google.cloud.bigquery.analyticshub.v1.CreateListingRequest
	41, // 76: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.UpdateListing:input_type -> google.cloud.bigquery.analyticshub.v1.UpdateListingRequest
	42, // 77: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.DeleteListing:input_type -> google.cloud.bigquery.analyticshub.v1.DeleteListingRequest
	43, // 78: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.SubscribeListing:input_type -> google.cloud.bigquery.analyticshub.v1.SubscribeListingRequest
	45, // 79: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.SubscribeDataExchange:input_type -> google.cloud.bigquery.analyticshub.v1.SubscribeDataExchangeRequest
	47, // 80: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.RefreshSubscription:input_type -> google.cloud.bigquery.analyticshub.v1.RefreshSubscriptionRequest
	49, // 81: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.GetSubscription:input_type -> google.cloud.bigquery.analyticshub.v1.GetSubscriptionRequest
	50, // 82: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ListSubscriptions:input_type -> google.cloud.bigquery.analyticshub.v1.ListSubscriptionsRequest
	52, // 83: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ListSharedResourceSubscriptions:input_type -> google.cloud.bigquery.analyticshub.v1.ListSharedResourceSubscriptionsRequest
	54, // 84: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.RevokeSubscription:input_type -> google.cloud.bigquery.analyticshub.v1.RevokeSubscriptionRequest
	56, // 85: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.DeleteSubscription:input_type -> google.cloud.bigquery.analyticshub.v1.DeleteSubscriptionRequest
	78, // 86: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.GetIamPolicy:input_type -> google.iam.v1.GetIamPolicyRequest
	79, // 87: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.SetIamPolicy:input_type -> google.iam.v1.SetIamPolicyRequest
	80, // 88: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.TestIamPermissions:input_type -> google.iam.v1.TestIamPermissionsRequest
	13, // 89: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.CreateQueryTemplate:input_type -> google.cloud.bigquery.analyticshub.v1.CreateQueryTemplateRequest
	14, // 90: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.GetQueryTemplate:input_type -> google.cloud.bigquery.analyticshub.v1.GetQueryTemplateRequest
	15, // 91: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ListQueryTemplates:input_type -> google.cloud.bigquery.analyticshub.v1.ListQueryTemplatesRequest
	17, // 92: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.UpdateQueryTemplate:input_type -> google.cloud.bigquery.analyticshub.v1.UpdateQueryTemplateRequest
	18, // 93: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.DeleteQueryTemplate:input_type -> google.cloud.bigquery.analyticshub.v1.DeleteQueryTemplateRequest
	19, // 94: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.SubmitQueryTemplate:input_type -> google.cloud.bigquery.analyticshub.v1.SubmitQueryTemplateRequest
	20, // 95: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ApproveQueryTemplate:input_type -> google.cloud.bigquery.analyticshub.v1.ApproveQueryTemplateRequest
	30, // 96: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ListDataExchanges:output_type -> google.cloud.bigquery.analyticshub.v1.ListDataExchangesResponse
	32, // 97: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ListOrgDataExchanges:output_type -> google.cloud.bigquery.analyticshub.v1.ListOrgDataExchangesResponse
	10, // 98: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.GetDataExchange:output_type -> google.cloud.bigquery.analyticshub.v1.DataExchange
	10, // 99: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.CreateDataExchange:output_type -> google.cloud.bigquery.analyticshub.v1.DataExchange
	10, // 100: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.UpdateDataExchange:output_type -> google.cloud.bigquery.analyticshub.v1.DataExchange
	81, // 101: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.DeleteDataExchange:output_type -> google.protobuf.Empty
	38, // 102: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ListListings:output_type -> google.cloud.bigquery.analyticshub.v1.ListListingsResponse
	27, // 103: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.GetListing:output_type -> google.cloud.bigquery.analyticshub.v1.Listing
	27, // 104: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.CreateListing:output_type -> google.cloud.bigquery.analyticshub.v1.Listing
	27, // 105: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.UpdateListing:output_type -> google.cloud.bigquery.analyticshub.v1.Listing
	81, // 106: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.DeleteListing:output_type -> google.protobuf.Empty
	44, // 107: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.SubscribeListing:output_type -> google.cloud.bigquery.analyticshub.v1.SubscribeListingResponse
	82, // 108: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.SubscribeDataExchange:output_type -> google.longrunning.Operation
	82, // 109: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.RefreshSubscription:output_type -> google.longrunning.Operation
	28, // 110: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.GetSubscription:output_type -> google.cloud.bigquery.analyticshub.v1.Subscription
	51, // 111: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ListSubscriptions:output_type -> google.cloud.bigquery.analyticshub.v1.ListSubscriptionsResponse
	53, // 112: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ListSharedResourceSubscriptions:output_type -> google.cloud.bigquery.analyticshub.v1.ListSharedResourceSubscriptionsResponse
	55, // 113: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.RevokeSubscription:output_type -> google.cloud.bigquery.analyticshub.v1.RevokeSubscriptionResponse
	82, // 114: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.DeleteSubscription:output_type -> google.longrunning.Operation
	83, // 115: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.GetIamPolicy:output_type -> google.iam.v1.Policy
	83, // 116: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.SetIamPolicy:output_type -> google.iam.v1.Policy
	84, // 117: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.TestIamPermissions:output_type -> google.iam.v1.TestIamPermissionsResponse
	11, // 118: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.CreateQueryTemplate:output_type -> google.cloud.bigquery.analyticshub.v1.QueryTemplate
	11, // 119: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.GetQueryTemplate:output_type -> google.cloud.bigquery.analyticshub.v1.QueryTemplate
	16, // 120: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ListQueryTemplates:output_type -> google.cloud.bigquery.analyticshub.v1.ListQueryTemplatesResponse
	11, // 121: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.UpdateQueryTemplate:output_type -> google.cloud.bigquery.analyticshub.v1.QueryTemplate
	81, // 122: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.DeleteQueryTemplate:output_type -> google.protobuf.Empty
	11, // 123: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.SubmitQueryTemplate:output_type -> google.cloud.bigquery.analyticshub.v1.QueryTemplate
	11, // 124: google.cloud.bigquery.analyticshub.v1.AnalyticsHubService.ApproveQueryTemplate:output_type -> google.cloud.bigquery.analyticshub.v1.QueryTemplate
	96, // [96:125] is the sub-list for method output_type
	67, // [67:96] is the sub-list for method input_type
	67, // [67:67] is the sub-list for extension type_name
	67, // [67:67] is the sub-list for extension extendee
	0,  // [0:67] is the sub-list for field type_name
}

func init() { file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_init() }
func file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_init() {
	if File_google_cloud_bigquery_analyticshub_v1_analyticshub_proto != nil {
		return
	}
	file_google_cloud_bigquery_analyticshub_v1_pubsub_proto_init()
	file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[0].OneofWrappers = []any{}
	file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[11].OneofWrappers = []any{
		(*SharingEnvironmentConfig_DefaultExchangeConfig_)(nil),
		(*SharingEnvironmentConfig_DcrExchangeConfig_)(nil),
	}
	file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[17].OneofWrappers = []any{
		(*Listing_BigqueryDataset)(nil),
		(*Listing_PubsubTopic)(nil),
	}
	file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[18].OneofWrappers = []any{
		(*Subscription_Listing)(nil),
		(*Subscription_DataExchange)(nil),
	}
	file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[33].OneofWrappers = []any{
		(*SubscribeListingRequest_DestinationDataset)(nil),
		(*SubscribeListingRequest_DestinationPubsubSubscription)(nil),
	}
	file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[49].OneofWrappers = []any{}
	file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[54].OneofWrappers = []any{}
	file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[55].OneofWrappers = []any{
		(*Listing_BigQueryDatasetSource_SelectedResource_Table)(nil),
		(*Listing_BigQueryDatasetSource_SelectedResource_Routine)(nil),
	}
	file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[57].OneofWrappers = []any{}
	file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[58].OneofWrappers = []any{}
	file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes[59].OneofWrappers = []any{
		(*Subscription_LinkedResource_LinkedDataset)(nil),
		(*Subscription_LinkedResource_LinkedPubsubSubscription)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDesc,
			NumEnums:      10,
			NumMessages:   63,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_goTypes,
		DependencyIndexes: file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_depIdxs,
		EnumInfos:         file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_enumTypes,
		MessageInfos:      file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_msgTypes,
	}.Build()
	File_google_cloud_bigquery_analyticshub_v1_analyticshub_proto = out.File
	file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_rawDesc = nil
	file_google_cloud_bigquery_analyticshub_v1_analyticshub_proto_goTypes = nil
	file_google_cloud_bigquery_analyticshub_v1_analyticshub_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

// AnalyticsHubServiceClient is the client API for AnalyticsHubService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type AnalyticsHubServiceClient interface {
	// Lists all data exchanges in a given project and location.
	ListDataExchanges(ctx context.Context, in *ListDataExchangesRequest, opts ...grpc.CallOption) (*ListDataExchangesResponse, error)
	// Lists all data exchanges from projects in a given organization and
	// location.
	ListOrgDataExchanges(ctx context.Context, in *ListOrgDataExchangesRequest, opts ...grpc.CallOption) (*ListOrgDataExchangesResponse, error)
	// Gets the details of a data exchange.
	GetDataExchange(ctx context.Context, in *GetDataExchangeRequest, opts ...grpc.CallOption) (*DataExchange, error)
	// Creates a new data exchange.
	CreateDataExchange(ctx context.Context, in *CreateDataExchangeRequest, opts ...grpc.CallOption) (*DataExchange, error)
	// Updates an existing data exchange.
	UpdateDataExchange(ctx context.Context, in *UpdateDataExchangeRequest, opts ...grpc.CallOption) (*DataExchange, error)
	// Deletes an existing data exchange.
	DeleteDataExchange(ctx context.Context, in *DeleteDataExchangeRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Lists all listings in a given project and location.
	ListListings(ctx context.Context, in *ListListingsRequest, opts ...grpc.CallOption) (*ListListingsResponse, error)
	// Gets the details of a listing.
	GetListing(ctx context.Context, in *GetListingRequest, opts ...grpc.CallOption) (*Listing, error)
	// Creates a new listing.
	CreateListing(ctx context.Context, in *CreateListingRequest, opts ...grpc.CallOption) (*Listing, error)
	// Updates an existing listing.
	UpdateListing(ctx context.Context, in *UpdateListingRequest, opts ...grpc.CallOption) (*Listing, error)
	// Deletes a listing.
	DeleteListing(ctx context.Context, in *DeleteListingRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Subscribes to a listing.
	//
	// Currently, with Analytics Hub, you can create listings that
	// reference only BigQuery datasets.
	// Upon subscription to a listing for a BigQuery dataset, Analytics Hub
	// creates a linked dataset in the subscriber's project.
	SubscribeListing(ctx context.Context, in *SubscribeListingRequest, opts ...grpc.CallOption) (*SubscribeListingResponse, error)
	// Creates a Subscription to a Data Clean Room. This is a
	// long-running operation as it will create one or more linked datasets.
	// Throws a Bad Request error if the Data Exchange does not contain any
	// listings.
	SubscribeDataExchange(ctx context.Context, in *SubscribeDataExchangeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error)
	// Refreshes a Subscription to a Data Exchange. A Data Exchange can become
	// stale when a publisher adds or removes data. This is a long-running
	// operation as it may create many linked datasets.
	RefreshSubscription(ctx context.Context, in *RefreshSubscriptionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error)
	// Gets the details of a Subscription.
	GetSubscription(ctx context.Context, in *GetSubscriptionRequest, opts ...grpc.CallOption) (*Subscription, error)
	// Lists all subscriptions in a given project and location.
	ListSubscriptions(ctx context.Context, in *ListSubscriptionsRequest, opts ...grpc.CallOption) (*ListSubscriptionsResponse, error)
	// Lists all subscriptions on a given Data Exchange or Listing.
	ListSharedResourceSubscriptions(ctx context.Context, in *ListSharedResourceSubscriptionsRequest, opts ...grpc.CallOption) (*ListSharedResourceSubscriptionsResponse, error)
	// Revokes a given subscription.
	RevokeSubscription(ctx context.Context, in *RevokeSubscriptionRequest, opts ...grpc.CallOption) (*RevokeSubscriptionResponse, error)
	// Deletes a subscription.
	DeleteSubscription(ctx context.Context, in *DeleteSubscriptionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error)
	// Gets the IAM policy.
	GetIamPolicy(ctx context.Context, in *iampb.GetIamPolicyRequest, opts ...grpc.CallOption) (*iampb.Policy, error)
	// Sets the IAM policy.
	SetIamPolicy(ctx context.Context, in *iampb.SetIamPolicyRequest, opts ...grpc.CallOption) (*iampb.Policy, error)
	// Returns the permissions that a caller has.
	TestIamPermissions(ctx context.Context, in *iampb.TestIamPermissionsRequest, opts ...grpc.CallOption) (*iampb.TestIamPermissionsResponse, error)
	// Creates a new QueryTemplate
	CreateQueryTemplate(ctx context.Context, in *CreateQueryTemplateRequest, opts ...grpc.CallOption) (*QueryTemplate, error)
	// Gets a QueryTemplate
	GetQueryTemplate(ctx context.Context, in *GetQueryTemplateRequest, opts ...grpc.CallOption) (*QueryTemplate, error)
	// Lists all QueryTemplates in a given project and location.
	ListQueryTemplates(ctx context.Context, in *ListQueryTemplatesRequest, opts ...grpc.CallOption) (*ListQueryTemplatesResponse, error)
	// Updates an existing QueryTemplate
	UpdateQueryTemplate(ctx context.Context, in *UpdateQueryTemplateRequest, opts ...grpc.CallOption) (*QueryTemplate, error)
	// Deletes a query template.
	DeleteQueryTemplate(ctx context.Context, in *DeleteQueryTemplateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Submits a query template for approval.
	SubmitQueryTemplate(ctx context.Context, in *SubmitQueryTemplateRequest, opts ...grpc.CallOption) (*QueryTemplate, error)
	// Approves a query template.
	ApproveQueryTemplate(ctx context.Context, in *ApproveQueryTemplateRequest, opts ...grpc.CallOption) (*QueryTemplate, error)
}

type analyticsHubServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewAnalyticsHubServiceClient(cc grpc.ClientConnInterface) AnalyticsHubServiceClient {
	return &analyticsHubServiceClient{cc}
}

func (c *analyticsHubServiceClient) ListDataExchanges(ctx context.Context, in *ListDataExchangesRequest, opts ...grpc.CallOption) (*ListDataExchangesResponse, error) {
	out := new(ListDataExchangesResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/ListDataExchanges", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) ListOrgDataExchanges(ctx context.Context, in *ListOrgDataExchangesRequest, opts ...grpc.CallOption) (*ListOrgDataExchangesResponse, error) {
	out := new(ListOrgDataExchangesResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/ListOrgDataExchanges", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) GetDataExchange(ctx context.Context, in *GetDataExchangeRequest, opts ...grpc.CallOption) (*DataExchange, error) {
	out := new(DataExchange)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/GetDataExchange", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) CreateDataExchange(ctx context.Context, in *CreateDataExchangeRequest, opts ...grpc.CallOption) (*DataExchange, error) {
	out := new(DataExchange)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/CreateDataExchange", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) UpdateDataExchange(ctx context.Context, in *UpdateDataExchangeRequest, opts ...grpc.CallOption) (*DataExchange, error) {
	out := new(DataExchange)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/UpdateDataExchange", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) DeleteDataExchange(ctx context.Context, in *DeleteDataExchangeRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/DeleteDataExchange", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) ListListings(ctx context.Context, in *ListListingsRequest, opts ...grpc.CallOption) (*ListListingsResponse, error) {
	out := new(ListListingsResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/ListListings", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) GetListing(ctx context.Context, in *GetListingRequest, opts ...grpc.CallOption) (*Listing, error) {
	out := new(Listing)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/GetListing", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) CreateListing(ctx context.Context, in *CreateListingRequest, opts ...grpc.CallOption) (*Listing, error) {
	out := new(Listing)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/CreateListing", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) UpdateListing(ctx context.Context, in *UpdateListingRequest, opts ...grpc.CallOption) (*Listing, error) {
	out := new(Listing)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/UpdateListing", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) DeleteListing(ctx context.Context, in *DeleteListingRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/DeleteListing", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) SubscribeListing(ctx context.Context, in *SubscribeListingRequest, opts ...grpc.CallOption) (*SubscribeListingResponse, error) {
	out := new(SubscribeListingResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/SubscribeListing", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) SubscribeDataExchange(ctx context.Context, in *SubscribeDataExchangeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) {
	out := new(longrunningpb.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/SubscribeDataExchange", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) RefreshSubscription(ctx context.Context, in *RefreshSubscriptionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) {
	out := new(longrunningpb.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/RefreshSubscription", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) GetSubscription(ctx context.Context, in *GetSubscriptionRequest, opts ...grpc.CallOption) (*Subscription, error) {
	out := new(Subscription)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/GetSubscription", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) ListSubscriptions(ctx context.Context, in *ListSubscriptionsRequest, opts ...grpc.CallOption) (*ListSubscriptionsResponse, error) {
	out := new(ListSubscriptionsResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/ListSubscriptions", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) ListSharedResourceSubscriptions(ctx context.Context, in *ListSharedResourceSubscriptionsRequest, opts ...grpc.CallOption) (*ListSharedResourceSubscriptionsResponse, error) {
	out := new(ListSharedResourceSubscriptionsResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/ListSharedResourceSubscriptions", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) RevokeSubscription(ctx context.Context, in *RevokeSubscriptionRequest, opts ...grpc.CallOption) (*RevokeSubscriptionResponse, error) {
	out := new(RevokeSubscriptionResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/RevokeSubscription", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) DeleteSubscription(ctx context.Context, in *DeleteSubscriptionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) {
	out := new(longrunningpb.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/DeleteSubscription", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) GetIamPolicy(ctx context.Context, in *iampb.GetIamPolicyRequest, opts ...grpc.CallOption) (*iampb.Policy, error) {
	out := new(iampb.Policy)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/GetIamPolicy", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) SetIamPolicy(ctx context.Context, in *iampb.SetIamPolicyRequest, opts ...grpc.CallOption) (*iampb.Policy, error) {
	out := new(iampb.Policy)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/SetIamPolicy", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) TestIamPermissions(ctx context.Context, in *iampb.TestIamPermissionsRequest, opts ...grpc.CallOption) (*iampb.TestIamPermissionsResponse, error) {
	out := new(iampb.TestIamPermissionsResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/TestIamPermissions", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) CreateQueryTemplate(ctx context.Context, in *CreateQueryTemplateRequest, opts ...grpc.CallOption) (*QueryTemplate, error) {
	out := new(QueryTemplate)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/CreateQueryTemplate", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) GetQueryTemplate(ctx context.Context, in *GetQueryTemplateRequest, opts ...grpc.CallOption) (*QueryTemplate, error) {
	out := new(QueryTemplate)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/GetQueryTemplate", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) ListQueryTemplates(ctx context.Context, in *ListQueryTemplatesRequest, opts ...grpc.CallOption) (*ListQueryTemplatesResponse, error) {
	out := new(ListQueryTemplatesResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/ListQueryTemplates", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) UpdateQueryTemplate(ctx context.Context, in *UpdateQueryTemplateRequest, opts ...grpc.CallOption) (*QueryTemplate, error) {
	out := new(QueryTemplate)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/UpdateQueryTemplate", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) DeleteQueryTemplate(ctx context.Context, in *DeleteQueryTemplateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/DeleteQueryTemplate", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) SubmitQueryTemplate(ctx context.Context, in *SubmitQueryTemplateRequest, opts ...grpc.CallOption) (*QueryTemplate, error) {
	out := new(QueryTemplate)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/SubmitQueryTemplate", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *analyticsHubServiceClient) ApproveQueryTemplate(ctx context.Context, in *ApproveQueryTemplateRequest, opts ...grpc.CallOption) (*QueryTemplate, error) {
	out := new(QueryTemplate)
	err := c.cc.Invoke(ctx, "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/ApproveQueryTemplate", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// AnalyticsHubServiceServer is the server API for AnalyticsHubService service.
type AnalyticsHubServiceServer interface {
	// Lists all data exchanges in a given project and location.
	ListDataExchanges(context.Context, *ListDataExchangesRequest) (*ListDataExchangesResponse, error)
	// Lists all data exchanges from projects in a given organization and
	// location.
	ListOrgDataExchanges(context.Context, *ListOrgDataExchangesRequest) (*ListOrgDataExchangesResponse, error)
	// Gets the details of a data exchange.
	GetDataExchange(context.Context, *GetDataExchangeRequest) (*DataExchange, error)
	// Creates a new data exchange.
	CreateDataExchange(context.Context, *CreateDataExchangeRequest) (*DataExchange, error)
	// Updates an existing data exchange.
	UpdateDataExchange(context.Context, *UpdateDataExchangeRequest) (*DataExchange, error)
	// Deletes an existing data exchange.
	DeleteDataExchange(context.Context, *DeleteDataExchangeRequest) (*emptypb.Empty, error)
	// Lists all listings in a given project and location.
	ListListings(context.Context, *ListListingsRequest) (*ListListingsResponse, error)
	// Gets the details of a listing.
	GetListing(context.Context, *GetListingRequest) (*Listing, error)
	// Creates a new listing.
	CreateListing(context.Context, *CreateListingRequest) (*Listing, error)
	// Updates an existing listing.
	UpdateListing(context.Context, *UpdateListingRequest) (*Listing, error)
	// Deletes a listing.
	DeleteListing(context.Context, *DeleteListingRequest) (*emptypb.Empty, error)
	// Subscribes to a listing.
	//
	// Currently, with Analytics Hub, you can create listings that
	// reference only BigQuery datasets.
	// Upon subscription to a listing for a BigQuery dataset, Analytics Hub
	// creates a linked dataset in the subscriber's project.
	SubscribeListing(context.Context, *SubscribeListingRequest) (*SubscribeListingResponse, error)
	// Creates a Subscription to a Data Clean Room. This is a
	// long-running operation as it will create one or more linked datasets.
	// Throws a Bad Request error if the Data Exchange does not contain any
	// listings.
	SubscribeDataExchange(context.Context, *SubscribeDataExchangeRequest) (*longrunningpb.Operation, error)
	// Refreshes a Subscription to a Data Exchange. A Data Exchange can become
	// stale when a publisher adds or removes data. This is a long-running
	// operation as it may create many linked datasets.
	RefreshSubscription(context.Context, *RefreshSubscriptionRequest) (*longrunningpb.Operation, error)
	// Gets the details of a Subscription.
	GetSubscription(context.Context, *GetSubscriptionRequest) (*Subscription, error)
	// Lists all subscriptions in a given project and location.
	ListSubscriptions(context.Context, *ListSubscriptionsRequest) (*ListSubscriptionsResponse, error)
	// Lists all subscriptions on a given Data Exchange or Listing.
	ListSharedResourceSubscriptions(context.Context, *ListSharedResourceSubscriptionsRequest) (*ListSharedResourceSubscriptionsResponse, error)
	// Revokes a given subscription.
	RevokeSubscription(context.Context, *RevokeSubscriptionRequest) (*RevokeSubscriptionResponse, error)
	// Deletes a subscription.
	DeleteSubscription(context.Context, *DeleteSubscriptionRequest) (*longrunningpb.Operation, error)
	// Gets the IAM policy.
	GetIamPolicy(context.Context, *iampb.GetIamPolicyRequest) (*iampb.Policy, error)
	// Sets the IAM policy.
	SetIamPolicy(context.Context, *iampb.SetIamPolicyRequest) (*iampb.Policy, error)
	// Returns the permissions that a caller has.
	TestIamPermissions(context.Context, *iampb.TestIamPermissionsRequest) (*iampb.TestIamPermissionsResponse, error)
	// Creates a new QueryTemplate
	CreateQueryTemplate(context.Context, *CreateQueryTemplateRequest) (*QueryTemplate, error)
	// Gets a QueryTemplate
	GetQueryTemplate(context.Context, *GetQueryTemplateRequest) (*QueryTemplate, error)
	// Lists all QueryTemplates in a given project and location.
	ListQueryTemplates(context.Context, *ListQueryTemplatesRequest) (*ListQueryTemplatesResponse, error)
	// Updates an existing QueryTemplate
	UpdateQueryTemplate(context.Context, *UpdateQueryTemplateRequest) (*QueryTemplate, error)
	// Deletes a query template.
	DeleteQueryTemplate(context.Context, *DeleteQueryTemplateRequest) (*emptypb.Empty, error)
	// Submits a query template for approval.
	SubmitQueryTemplate(context.Context, *SubmitQueryTemplateRequest) (*QueryTemplate, error)
	// Approves a query template.
	ApproveQueryTemplate(context.Context, *ApproveQueryTemplateRequest) (*QueryTemplate, error)
}

// UnimplementedAnalyticsHubServiceServer can be embedded to have forward compatible implementations.
type UnimplementedAnalyticsHubServiceServer struct {
}

func (*UnimplementedAnalyticsHubServiceServer) ListDataExchanges(context.Context, *ListDataExchangesRequest) (*ListDataExchangesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListDataExchanges not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) ListOrgDataExchanges(context.Context, *ListOrgDataExchangesRequest) (*ListOrgDataExchangesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListOrgDataExchanges not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) GetDataExchange(context.Context, *GetDataExchangeRequest) (*DataExchange, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetDataExchange not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) CreateDataExchange(context.Context, *CreateDataExchangeRequest) (*DataExchange, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateDataExchange not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) UpdateDataExchange(context.Context, *UpdateDataExchangeRequest) (*DataExchange, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateDataExchange not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) DeleteDataExchange(context.Context, *DeleteDataExchangeRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteDataExchange not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) ListListings(context.Context, *ListListingsRequest) (*ListListingsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListListings not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) GetListing(context.Context, *GetListingRequest) (*Listing, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetListing not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) CreateListing(context.Context, *CreateListingRequest) (*Listing, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateListing not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) UpdateListing(context.Context, *UpdateListingRequest) (*Listing, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateListing not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) DeleteListing(context.Context, *DeleteListingRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteListing not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) SubscribeListing(context.Context, *SubscribeListingRequest) (*SubscribeListingResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SubscribeListing not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) SubscribeDataExchange(context.Context, *SubscribeDataExchangeRequest) (*longrunningpb.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SubscribeDataExchange not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) RefreshSubscription(context.Context, *RefreshSubscriptionRequest) (*longrunningpb.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RefreshSubscription not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) GetSubscription(context.Context, *GetSubscriptionRequest) (*Subscription, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetSubscription not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) ListSubscriptions(context.Context, *ListSubscriptionsRequest) (*ListSubscriptionsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListSubscriptions not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) ListSharedResourceSubscriptions(context.Context, *ListSharedResourceSubscriptionsRequest) (*ListSharedResourceSubscriptionsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListSharedResourceSubscriptions not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) RevokeSubscription(context.Context, *RevokeSubscriptionRequest) (*RevokeSubscriptionResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RevokeSubscription not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) DeleteSubscription(context.Context, *DeleteSubscriptionRequest) (*longrunningpb.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteSubscription not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) GetIamPolicy(context.Context, *iampb.GetIamPolicyRequest) (*iampb.Policy, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetIamPolicy not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) SetIamPolicy(context.Context, *iampb.SetIamPolicyRequest) (*iampb.Policy, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetIamPolicy not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) TestIamPermissions(context.Context, *iampb.TestIamPermissionsRequest) (*iampb.TestIamPermissionsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method TestIamPermissions not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) CreateQueryTemplate(context.Context, *CreateQueryTemplateRequest) (*QueryTemplate, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateQueryTemplate not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) GetQueryTemplate(context.Context, *GetQueryTemplateRequest) (*QueryTemplate, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetQueryTemplate not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) ListQueryTemplates(context.Context, *ListQueryTemplatesRequest) (*ListQueryTemplatesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListQueryTemplates not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) UpdateQueryTemplate(context.Context, *UpdateQueryTemplateRequest) (*QueryTemplate, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateQueryTemplate not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) DeleteQueryTemplate(context.Context, *DeleteQueryTemplateRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteQueryTemplate not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) SubmitQueryTemplate(context.Context, *SubmitQueryTemplateRequest) (*QueryTemplate, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SubmitQueryTemplate not implemented")
}
func (*UnimplementedAnalyticsHubServiceServer) ApproveQueryTemplate(context.Context, *ApproveQueryTemplateRequest) (*QueryTemplate, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ApproveQueryTemplate not implemented")
}

func RegisterAnalyticsHubServiceServer(s *grpc.Server, srv AnalyticsHubServiceServer) {
	s.RegisterService(&_AnalyticsHubService_serviceDesc, srv)
}

func _AnalyticsHubService_ListDataExchanges_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListDataExchangesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).ListDataExchanges(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/ListDataExchanges",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).ListDataExchanges(ctx, req.(*ListDataExchangesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_ListOrgDataExchanges_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListOrgDataExchangesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).ListOrgDataExchanges(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/ListOrgDataExchanges",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).ListOrgDataExchanges(ctx, req.(*ListOrgDataExchangesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_GetDataExchange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetDataExchangeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).GetDataExchange(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/GetDataExchange",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).GetDataExchange(ctx, req.(*GetDataExchangeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_CreateDataExchange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateDataExchangeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).CreateDataExchange(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/CreateDataExchange",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).CreateDataExchange(ctx, req.(*CreateDataExchangeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_UpdateDataExchange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateDataExchangeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).UpdateDataExchange(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/UpdateDataExchange",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).UpdateDataExchange(ctx, req.(*UpdateDataExchangeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_DeleteDataExchange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteDataExchangeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).DeleteDataExchange(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/DeleteDataExchange",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).DeleteDataExchange(ctx, req.(*DeleteDataExchangeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_ListListings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListListingsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).ListListings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/ListListings",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).ListListings(ctx, req.(*ListListingsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_GetListing_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetListingRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).GetListing(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/GetListing",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).GetListing(ctx, req.(*GetListingRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_CreateListing_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateListingRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).CreateListing(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/CreateListing",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).CreateListing(ctx, req.(*CreateListingRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_UpdateListing_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateListingRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).UpdateListing(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/UpdateListing",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).UpdateListing(ctx, req.(*UpdateListingRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_DeleteListing_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteListingRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).DeleteListing(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/DeleteListing",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).DeleteListing(ctx, req.(*DeleteListingRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_SubscribeListing_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SubscribeListingRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).SubscribeListing(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/SubscribeListing",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).SubscribeListing(ctx, req.(*SubscribeListingRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_SubscribeDataExchange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SubscribeDataExchangeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).SubscribeDataExchange(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/SubscribeDataExchange",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).SubscribeDataExchange(ctx, req.(*SubscribeDataExchangeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_RefreshSubscription_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RefreshSubscriptionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).RefreshSubscription(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/RefreshSubscription",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).RefreshSubscription(ctx, req.(*RefreshSubscriptionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_GetSubscription_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetSubscriptionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).GetSubscription(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/GetSubscription",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).GetSubscription(ctx, req.(*GetSubscriptionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_ListSubscriptions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListSubscriptionsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).ListSubscriptions(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/ListSubscriptions",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).ListSubscriptions(ctx, req.(*ListSubscriptionsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_ListSharedResourceSubscriptions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListSharedResourceSubscriptionsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).ListSharedResourceSubscriptions(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/ListSharedResourceSubscriptions",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).ListSharedResourceSubscriptions(ctx, req.(*ListSharedResourceSubscriptionsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_RevokeSubscription_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RevokeSubscriptionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).RevokeSubscription(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/RevokeSubscription",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).RevokeSubscription(ctx, req.(*RevokeSubscriptionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_DeleteSubscription_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteSubscriptionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).DeleteSubscription(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/DeleteSubscription",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).DeleteSubscription(ctx, req.(*DeleteSubscriptionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_GetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(iampb.GetIamPolicyRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).GetIamPolicy(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/GetIamPolicy",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).GetIamPolicy(ctx, req.(*iampb.GetIamPolicyRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_SetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(iampb.SetIamPolicyRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).SetIamPolicy(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/SetIamPolicy",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).SetIamPolicy(ctx, req.(*iampb.SetIamPolicyRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_TestIamPermissions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(iampb.TestIamPermissionsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).TestIamPermissions(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/TestIamPermissions",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).TestIamPermissions(ctx, req.(*iampb.TestIamPermissionsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_CreateQueryTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateQueryTemplateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).CreateQueryTemplate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/CreateQueryTemplate",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).CreateQueryTemplate(ctx, req.(*CreateQueryTemplateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_GetQueryTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetQueryTemplateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).GetQueryTemplate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/GetQueryTemplate",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).GetQueryTemplate(ctx, req.(*GetQueryTemplateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_ListQueryTemplates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListQueryTemplatesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).ListQueryTemplates(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/ListQueryTemplates",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).ListQueryTemplates(ctx, req.(*ListQueryTemplatesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_UpdateQueryTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateQueryTemplateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).UpdateQueryTemplate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/UpdateQueryTemplate",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).UpdateQueryTemplate(ctx, req.(*UpdateQueryTemplateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_DeleteQueryTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteQueryTemplateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).DeleteQueryTemplate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/DeleteQueryTemplate",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).DeleteQueryTemplate(ctx, req.(*DeleteQueryTemplateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_SubmitQueryTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SubmitQueryTemplateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).SubmitQueryTemplate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/SubmitQueryTemplate",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).SubmitQueryTemplate(ctx, req.(*SubmitQueryTemplateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _AnalyticsHubService_ApproveQueryTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ApproveQueryTemplateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AnalyticsHubServiceServer).ApproveQueryTemplate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.bigquery.analyticshub.v1.AnalyticsHubService/ApproveQueryTemplate",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AnalyticsHubServiceServer).ApproveQueryTemplate(ctx, req.(*ApproveQueryTemplateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _AnalyticsHubService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "google.cloud.bigquery.analyticshub.v1.AnalyticsHubService",
	HandlerType: (*AnalyticsHubServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "ListDataExchanges",
			Handler:    _AnalyticsHubService_ListDataExchanges_Handler,
		},
		{
			MethodName: "ListOrgDataExchanges",
			Handler:    _AnalyticsHubService_ListOrgDataExchanges_Handler,
		},
		{
			MethodName: "GetDataExchange",
			Handler:    _AnalyticsHubService_GetDataExchange_Handler,
		},
		{
			MethodName: "CreateDataExchange",
			Handler:    _AnalyticsHubService_CreateDataExchange_Handler,
		},
		{
			MethodName: "UpdateDataExchange",
			Handler:    _AnalyticsHubService_UpdateDataExchange_Handler,
		},
		{
			MethodName: "DeleteDataExchange",
			Handler:    _AnalyticsHubService_DeleteDataExchange_Handler,
		},
		{
			MethodName: "ListListings",
			Handler:    _AnalyticsHubService_ListListings_Handler,
		},
		{
			MethodName: "GetListing",
			Handler:    _AnalyticsHubService_GetListing_Handler,
		},
		{
			MethodName: "CreateListing",
			Handler:    _AnalyticsHubService_CreateListing_Handler,
		},
		{
			MethodName: "UpdateListing",
			Handler:    _AnalyticsHubService_UpdateListing_Handler,
		},
		{
			MethodName: "DeleteListing",
			Handler:    _AnalyticsHubService_DeleteListing_Handler,
		},
		{
			MethodName: "SubscribeListing",
			Handler:    _AnalyticsHubService_SubscribeListing_Handler,
		},
		{
			MethodName: "SubscribeDataExchange",
			Handler:    _AnalyticsHubService_SubscribeDataExchange_Handler,
		},
		{
			MethodName: "RefreshSubscription",
			Handler:    _AnalyticsHubService_RefreshSubscription_Handler,
		},
		{
			MethodName: "GetSubscription",
			Handler:    _AnalyticsHubService_GetSubscription_Handler,
		},
		{
			MethodName: "ListSubscriptions",
			Handler:    _AnalyticsHubService_ListSubscriptions_Handler,
		},
		{
			MethodName: "ListSharedResourceSubscriptions",
			Handler:    _AnalyticsHubService_ListSharedResourceSubscriptions_Handler,
		},
		{
			MethodName: "RevokeSubscription",
			Handler:    _AnalyticsHubService_RevokeSubscription_Handler,
		},
		{
			MethodName: "DeleteSubscription",
			Handler:    _AnalyticsHubService_DeleteSubscription_Handler,
		},
		{
			MethodName: "GetIamPolicy",
			Handler:    _AnalyticsHubService_GetIamPolicy_Handler,
		},
		{
			MethodName: "SetIamPolicy",
			Handler:    _AnalyticsHubService_SetIamPolicy_Handler,
		},
		{
			MethodName: "TestIamPermissions",
			Handler:    _AnalyticsHubService_TestIamPermissions_Handler,
		},
		{
			MethodName: "CreateQueryTemplate",
			Handler:    _AnalyticsHubService_CreateQueryTemplate_Handler,
		},
		{
			MethodName: "GetQueryTemplate",
			Handler:    _AnalyticsHubService_GetQueryTemplate_Handler,
		},
		{
			MethodName: "ListQueryTemplates",
			Handler:    _AnalyticsHubService_ListQueryTemplates_Handler,
		},
		{
			MethodName: "UpdateQueryTemplate",
			Handler:    _AnalyticsHubService_UpdateQueryTemplate_Handler,
		},
		{
			MethodName: "DeleteQueryTemplate",
			Handler:    _AnalyticsHubService_DeleteQueryTemplate_Handler,
		},
		{
			MethodName: "SubmitQueryTemplate",
			Handler:    _AnalyticsHubService_SubmitQueryTemplate_Handler,
		},
		{
			MethodName: "ApproveQueryTemplate",
			Handler:    _AnalyticsHubService_ApproveQueryTemplate_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "google/cloud/bigquery/analyticshub/v1/analyticshub.proto",
}
