// Copyright 2022 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 // protoc v3.12.2 // source: google/cloud/enterpriseknowledgegraph/v1/service.proto package enterpriseknowledgegraph import ( context "context" reflect "reflect" sync "sync" _ "google.golang.org/genproto/googleapis/api/annotations" status "google.golang.org/genproto/googleapis/rpc/status" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status1 "google.golang.org/grpc/status" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" emptypb "google.golang.org/protobuf/types/known/emptypb" structpb "google.golang.org/protobuf/types/known/structpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // The type of entities we will support. Currently, we only support people, // establishment, property, and product types. If the type is // unspecified, it will be generic type. type InputConfig_EntityType int32 const ( // The default value. InputConfig_ENTITY_TYPE_UNSPECIFIED InputConfig_EntityType = 0 // People entity. // // Deprecated: Do not use. InputConfig_PEOPLE InputConfig_EntityType = 1 // Establishment entity. // // Deprecated: Do not use. InputConfig_ESTABLISHMENT InputConfig_EntityType = 2 // Property entity. e.g. real estate property. // // Deprecated: Do not use. InputConfig_PROPERTY InputConfig_EntityType = 3 // Product entity. InputConfig_PRODUCT InputConfig_EntityType = 4 // Organization entity. InputConfig_ORGANIZATION InputConfig_EntityType = 5 // Local Business entity. InputConfig_LOCAL_BUSINESS InputConfig_EntityType = 6 // Person entity. InputConfig_PERSON InputConfig_EntityType = 7 ) // Enum value maps for InputConfig_EntityType. var ( InputConfig_EntityType_name = map[int32]string{ 0: "ENTITY_TYPE_UNSPECIFIED", 1: "PEOPLE", 2: "ESTABLISHMENT", 3: "PROPERTY", 4: "PRODUCT", 5: "ORGANIZATION", 6: "LOCAL_BUSINESS", 7: "PERSON", } InputConfig_EntityType_value = map[string]int32{ "ENTITY_TYPE_UNSPECIFIED": 0, "PEOPLE": 1, "ESTABLISHMENT": 2, "PROPERTY": 3, "PRODUCT": 4, "ORGANIZATION": 5, "LOCAL_BUSINESS": 6, "PERSON": 7, } ) func (x InputConfig_EntityType) Enum() *InputConfig_EntityType { p := new(InputConfig_EntityType) *p = x return p } func (x InputConfig_EntityType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (InputConfig_EntityType) Descriptor() protoreflect.EnumDescriptor { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_enumTypes[0].Descriptor() } func (InputConfig_EntityType) Type() protoreflect.EnumType { return &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_enumTypes[0] } func (x InputConfig_EntityType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use InputConfig_EntityType.Descriptor instead. func (InputConfig_EntityType) EnumDescriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{0, 0} } // The desired input location and metadata. type InputConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Set of input BigQuery tables. BigqueryInputConfigs []*BigQueryInputConfig `protobuf:"bytes,1,rep,name=bigquery_input_configs,json=bigqueryInputConfigs,proto3" json:"bigquery_input_configs,omitempty"` // Entity type EntityType InputConfig_EntityType `protobuf:"varint,2,opt,name=entity_type,json=entityType,proto3,enum=google.cloud.enterpriseknowledgegraph.v1.InputConfig_EntityType" json:"entity_type,omitempty"` // Optional. Provide the bigquery table containing the previous results if // cluster ID stability is desired. Format is // `projects/*/datasets/*/tables/*`. PreviousResultBigqueryTable string `protobuf:"bytes,3,opt,name=previous_result_bigquery_table,json=previousResultBigqueryTable,proto3" json:"previous_result_bigquery_table,omitempty"` } func (x *InputConfig) Reset() { *x = InputConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InputConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*InputConfig) ProtoMessage() {} func (x *InputConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InputConfig.ProtoReflect.Descriptor instead. func (*InputConfig) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{0} } func (x *InputConfig) GetBigqueryInputConfigs() []*BigQueryInputConfig { if x != nil { return x.BigqueryInputConfigs } return nil } func (x *InputConfig) GetEntityType() InputConfig_EntityType { if x != nil { return x.EntityType } return InputConfig_ENTITY_TYPE_UNSPECIFIED } func (x *InputConfig) GetPreviousResultBigqueryTable() string { if x != nil { return x.PreviousResultBigqueryTable } return "" } // The input config for BigQuery tables. type BigQueryInputConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. Format is `projects/*/datasets/*/tables/*`. BigqueryTable string `protobuf:"bytes,1,opt,name=bigquery_table,json=bigqueryTable,proto3" json:"bigquery_table,omitempty"` // Required. Schema mapping file GcsUri string `protobuf:"bytes,2,opt,name=gcs_uri,json=gcsUri,proto3" json:"gcs_uri,omitempty"` } func (x *BigQueryInputConfig) Reset() { *x = BigQueryInputConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BigQueryInputConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*BigQueryInputConfig) ProtoMessage() {} func (x *BigQueryInputConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BigQueryInputConfig.ProtoReflect.Descriptor instead. func (*BigQueryInputConfig) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{1} } func (x *BigQueryInputConfig) GetBigqueryTable() string { if x != nil { return x.BigqueryTable } return "" } func (x *BigQueryInputConfig) GetGcsUri() string { if x != nil { return x.GcsUri } return "" } // The desired output location and metadata. type OutputConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Format is “projects/*/datasets/*”. BigqueryDataset string `protobuf:"bytes,1,opt,name=bigquery_dataset,json=bigqueryDataset,proto3" json:"bigquery_dataset,omitempty"` } func (x *OutputConfig) Reset() { *x = OutputConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OutputConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*OutputConfig) ProtoMessage() {} func (x *OutputConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use OutputConfig.ProtoReflect.Descriptor instead. func (*OutputConfig) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{2} } func (x *OutputConfig) GetBigqueryDataset() string { if x != nil { return x.BigqueryDataset } return "" } // Recon configs type ReconConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Choice of clustering algorithm. Default is ConnectedComponentsConfig. // // Types that are assignable to ClusteringConfig: // // *ReconConfig_ConnectedComponentsConfig // *ReconConfig_AffinityClusteringConfig ClusteringConfig isReconConfig_ClusteringConfig `protobuf_oneof:"clustering_config"` // Extra options that affect entity clustering behavior. Options *ReconConfig_Options `protobuf:"bytes,3,opt,name=options,proto3" json:"options,omitempty"` // Model Configs ModelConfig *ReconConfig_ModelConfig `protobuf:"bytes,4,opt,name=model_config,json=modelConfig,proto3" json:"model_config,omitempty"` } func (x *ReconConfig) Reset() { *x = ReconConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReconConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReconConfig) ProtoMessage() {} func (x *ReconConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReconConfig.ProtoReflect.Descriptor instead. func (*ReconConfig) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{3} } func (m *ReconConfig) GetClusteringConfig() isReconConfig_ClusteringConfig { if m != nil { return m.ClusteringConfig } return nil } func (x *ReconConfig) GetConnectedComponentsConfig() *ConnectedComponentsConfig { if x, ok := x.GetClusteringConfig().(*ReconConfig_ConnectedComponentsConfig); ok { return x.ConnectedComponentsConfig } return nil } func (x *ReconConfig) GetAffinityClusteringConfig() *AffinityClusteringConfig { if x, ok := x.GetClusteringConfig().(*ReconConfig_AffinityClusteringConfig); ok { return x.AffinityClusteringConfig } return nil } func (x *ReconConfig) GetOptions() *ReconConfig_Options { if x != nil { return x.Options } return nil } func (x *ReconConfig) GetModelConfig() *ReconConfig_ModelConfig { if x != nil { return x.ModelConfig } return nil } type isReconConfig_ClusteringConfig interface { isReconConfig_ClusteringConfig() } type ReconConfig_ConnectedComponentsConfig struct { // Configs for connected components. ConnectedComponentsConfig *ConnectedComponentsConfig `protobuf:"bytes,1,opt,name=connected_components_config,json=connectedComponentsConfig,proto3,oneof"` } type ReconConfig_AffinityClusteringConfig struct { // Configs for affinity clustering. AffinityClusteringConfig *AffinityClusteringConfig `protobuf:"bytes,2,opt,name=affinity_clustering_config,json=affinityClusteringConfig,proto3,oneof"` } func (*ReconConfig_ConnectedComponentsConfig) isReconConfig_ClusteringConfig() {} func (*ReconConfig_AffinityClusteringConfig) isReconConfig_ClusteringConfig() {} // Options for connected components. type ConnectedComponentsConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Threshold used for connected components. Default value is 0.85. WeightThreshold float32 `protobuf:"fixed32,1,opt,name=weight_threshold,json=weightThreshold,proto3" json:"weight_threshold,omitempty"` } func (x *ConnectedComponentsConfig) Reset() { *x = ConnectedComponentsConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConnectedComponentsConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConnectedComponentsConfig) ProtoMessage() {} func (x *ConnectedComponentsConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ConnectedComponentsConfig.ProtoReflect.Descriptor instead. func (*ConnectedComponentsConfig) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{4} } func (x *ConnectedComponentsConfig) GetWeightThreshold() float32 { if x != nil { return x.WeightThreshold } return 0 } // Options for affinity clustering. type AffinityClusteringConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Number of iterations to perform. Default value is 1. CompressionRoundCount int64 `protobuf:"varint,1,opt,name=compression_round_count,json=compressionRoundCount,proto3" json:"compression_round_count,omitempty"` } func (x *AffinityClusteringConfig) Reset() { *x = AffinityClusteringConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AffinityClusteringConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*AffinityClusteringConfig) ProtoMessage() {} func (x *AffinityClusteringConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AffinityClusteringConfig.ProtoReflect.Descriptor instead. func (*AffinityClusteringConfig) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{5} } func (x *AffinityClusteringConfig) GetCompressionRoundCount() int64 { if x != nil { return x.CompressionRoundCount } return 0 } // Details of operations that perform deletes of any entities. type DeleteOperationMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The common part of the operation metadata. CommonMetadata *CommonOperationMetadata `protobuf:"bytes,1,opt,name=common_metadata,json=commonMetadata,proto3" json:"common_metadata,omitempty"` } func (x *DeleteOperationMetadata) Reset() { *x = DeleteOperationMetadata{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteOperationMetadata) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteOperationMetadata) ProtoMessage() {} func (x *DeleteOperationMetadata) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteOperationMetadata.ProtoReflect.Descriptor instead. func (*DeleteOperationMetadata) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{6} } func (x *DeleteOperationMetadata) GetCommonMetadata() *CommonOperationMetadata { if x != nil { return x.CommonMetadata } return nil } // Request message for CreateEntityReconciliationJob. type CreateEntityReconciliationJobRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The resource name of the Location to create the // EntityReconciliationJob in. Format: // `projects/{project}/locations/{location}` Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // Required. The EntityReconciliationJob to create. EntityReconciliationJob *EntityReconciliationJob `protobuf:"bytes,2,opt,name=entity_reconciliation_job,json=entityReconciliationJob,proto3" json:"entity_reconciliation_job,omitempty"` } func (x *CreateEntityReconciliationJobRequest) Reset() { *x = CreateEntityReconciliationJobRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateEntityReconciliationJobRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateEntityReconciliationJobRequest) ProtoMessage() {} func (x *CreateEntityReconciliationJobRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CreateEntityReconciliationJobRequest.ProtoReflect.Descriptor instead. func (*CreateEntityReconciliationJobRequest) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{7} } func (x *CreateEntityReconciliationJobRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *CreateEntityReconciliationJobRequest) GetEntityReconciliationJob() *EntityReconciliationJob { if x != nil { return x.EntityReconciliationJob } return nil } // Request message for GetEntityReconciliationJob. type GetEntityReconciliationJobRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the EntityReconciliationJob resource. // Format: // `projects/{project}/locations/{location}/entityReconciliationJobs/{entity_reconciliation_job}` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *GetEntityReconciliationJobRequest) Reset() { *x = GetEntityReconciliationJobRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetEntityReconciliationJobRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetEntityReconciliationJobRequest) ProtoMessage() {} func (x *GetEntityReconciliationJobRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetEntityReconciliationJobRequest.ProtoReflect.Descriptor instead. func (*GetEntityReconciliationJobRequest) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{8} } func (x *GetEntityReconciliationJobRequest) GetName() string { if x != nil { return x.Name } return "" } // Request message for // [EnterpriseKnowledgeGraphService.ListEntityReconciliationJobs][google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.ListEntityReconciliationJobs]. type ListEntityReconciliationJobsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the EntityReconciliationJob's parent resource. // Format: `projects/{project}/locations/{location}` Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // An expression for filtering the results of the request. For field names // both snake_case and camelCase are supported. Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` // The standard list page size. PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // The standard list page token. PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` } func (x *ListEntityReconciliationJobsRequest) Reset() { *x = ListEntityReconciliationJobsRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListEntityReconciliationJobsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListEntityReconciliationJobsRequest) ProtoMessage() {} func (x *ListEntityReconciliationJobsRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListEntityReconciliationJobsRequest.ProtoReflect.Descriptor instead. func (*ListEntityReconciliationJobsRequest) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{9} } func (x *ListEntityReconciliationJobsRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *ListEntityReconciliationJobsRequest) GetFilter() string { if x != nil { return x.Filter } return "" } func (x *ListEntityReconciliationJobsRequest) GetPageSize() int32 { if x != nil { return x.PageSize } return 0 } func (x *ListEntityReconciliationJobsRequest) GetPageToken() string { if x != nil { return x.PageToken } return "" } // Response message for // [EnterpriseKnowledgeGraphService.ListEntityReconciliationJobs][google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.ListEntityReconciliationJobs]. type ListEntityReconciliationJobsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A list of EntityReconciliationJobs that matches the specified filter in the // request. EntityReconciliationJobs []*EntityReconciliationJob `protobuf:"bytes,1,rep,name=entity_reconciliation_jobs,json=entityReconciliationJobs,proto3" json:"entity_reconciliation_jobs,omitempty"` // The standard List next-page token. NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` } func (x *ListEntityReconciliationJobsResponse) Reset() { *x = ListEntityReconciliationJobsResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListEntityReconciliationJobsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListEntityReconciliationJobsResponse) ProtoMessage() {} func (x *ListEntityReconciliationJobsResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListEntityReconciliationJobsResponse.ProtoReflect.Descriptor instead. func (*ListEntityReconciliationJobsResponse) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{10} } func (x *ListEntityReconciliationJobsResponse) GetEntityReconciliationJobs() []*EntityReconciliationJob { if x != nil { return x.EntityReconciliationJobs } return nil } func (x *ListEntityReconciliationJobsResponse) GetNextPageToken() string { if x != nil { return x.NextPageToken } return "" } // Request message for CancelEntityReconciliationJob. type CancelEntityReconciliationJobRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the EntityReconciliationJob resource. // Format: // `projects/{project}/locations/{location}/entityReconciliationJobs/{entity_reconciliation_job}` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *CancelEntityReconciliationJobRequest) Reset() { *x = CancelEntityReconciliationJobRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CancelEntityReconciliationJobRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CancelEntityReconciliationJobRequest) ProtoMessage() {} func (x *CancelEntityReconciliationJobRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CancelEntityReconciliationJobRequest.ProtoReflect.Descriptor instead. func (*CancelEntityReconciliationJobRequest) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{11} } func (x *CancelEntityReconciliationJobRequest) GetName() string { if x != nil { return x.Name } return "" } // Request message for DeleteEntityReconciliationJob. type DeleteEntityReconciliationJobRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the EntityReconciliationJob resource. // Format: // `projects/{project}/locations/{location}/entityReconciliationJobs/{entity_reconciliation_job}` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *DeleteEntityReconciliationJobRequest) Reset() { *x = DeleteEntityReconciliationJobRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteEntityReconciliationJobRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteEntityReconciliationJobRequest) ProtoMessage() {} func (x *DeleteEntityReconciliationJobRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteEntityReconciliationJobRequest.ProtoReflect.Descriptor instead. func (*DeleteEntityReconciliationJobRequest) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{12} } func (x *DeleteEntityReconciliationJobRequest) GetName() string { if x != nil { return x.Name } return "" } // Entity reconciliation job message. type EntityReconciliationJob struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Resource name of the EntityReconciliationJob. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Required. Information about the input BigQuery tables. InputConfig *InputConfig `protobuf:"bytes,2,opt,name=input_config,json=inputConfig,proto3" json:"input_config,omitempty"` // Required. The desired output location. OutputConfig *OutputConfig `protobuf:"bytes,3,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"` // Output only. The detailed state of the job. State JobState `protobuf:"varint,4,opt,name=state,proto3,enum=google.cloud.enterpriseknowledgegraph.v1.JobState" json:"state,omitempty"` // Output only. Only populated when the job's state is JOB_STATE_FAILED or // JOB_STATE_CANCELLED. Error *status.Status `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"` // Output only. Time when the EntityReconciliationJob was created. CreateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // Output only. Time when the EntityReconciliationJob entered any of the // following states: `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, // `JOB_STATE_CANCELLED`. EndTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // Output only. Time when the EntityReconciliationJob was most recently // updated. UpdateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` // Optional. Recon configs to adjust the clustering behavior. ReconConfig *ReconConfig `protobuf:"bytes,9,opt,name=recon_config,json=reconConfig,proto3" json:"recon_config,omitempty"` } func (x *EntityReconciliationJob) Reset() { *x = EntityReconciliationJob{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EntityReconciliationJob) String() string { return protoimpl.X.MessageStringOf(x) } func (*EntityReconciliationJob) ProtoMessage() {} func (x *EntityReconciliationJob) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EntityReconciliationJob.ProtoReflect.Descriptor instead. func (*EntityReconciliationJob) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{13} } func (x *EntityReconciliationJob) GetName() string { if x != nil { return x.Name } return "" } func (x *EntityReconciliationJob) GetInputConfig() *InputConfig { if x != nil { return x.InputConfig } return nil } func (x *EntityReconciliationJob) GetOutputConfig() *OutputConfig { if x != nil { return x.OutputConfig } return nil } func (x *EntityReconciliationJob) GetState() JobState { if x != nil { return x.State } return JobState_JOB_STATE_UNSPECIFIED } func (x *EntityReconciliationJob) GetError() *status.Status { if x != nil { return x.Error } return nil } func (x *EntityReconciliationJob) GetCreateTime() *timestamppb.Timestamp { if x != nil { return x.CreateTime } return nil } func (x *EntityReconciliationJob) GetEndTime() *timestamppb.Timestamp { if x != nil { return x.EndTime } return nil } func (x *EntityReconciliationJob) GetUpdateTime() *timestamppb.Timestamp { if x != nil { return x.UpdateTime } return nil } func (x *EntityReconciliationJob) GetReconConfig() *ReconConfig { if x != nil { return x.ReconConfig } return nil } // Request message for // [EnterpriseKnowledgeGraphService.Lookup][google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.Lookup]. type LookupRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the Entity's parent resource. // Format: // `projects/{project}/locations/{location}` Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // Required. The list of entity ids to be used for lookup. Ids []string `protobuf:"bytes,2,rep,name=ids,proto3" json:"ids,omitempty"` // The list of language codes (defined in ISO 693) to run the query with, // e.g. 'en'. Languages []string `protobuf:"bytes,3,rep,name=languages,proto3" json:"languages,omitempty"` } func (x *LookupRequest) Reset() { *x = LookupRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LookupRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*LookupRequest) ProtoMessage() {} func (x *LookupRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LookupRequest.ProtoReflect.Descriptor instead. func (*LookupRequest) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{14} } func (x *LookupRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *LookupRequest) GetIds() []string { if x != nil { return x.Ids } return nil } func (x *LookupRequest) GetLanguages() []string { if x != nil { return x.Languages } return nil } // Response message for // [EnterpriseKnowledgeGraphService.Lookup][google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.Lookup]. type LookupResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The local context applicable for the response. See more details at // http://www.w3.org/TR/json-ld/#context-definitions. Context *structpb.Value `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` // The schema type of top-level JSON-LD object, e.g. ItemList. Type *structpb.Value `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` // The item list of search results. ItemListElement *structpb.ListValue `protobuf:"bytes,3,opt,name=item_list_element,json=itemListElement,proto3" json:"item_list_element,omitempty"` } func (x *LookupResponse) Reset() { *x = LookupResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LookupResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*LookupResponse) ProtoMessage() {} func (x *LookupResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LookupResponse.ProtoReflect.Descriptor instead. func (*LookupResponse) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{15} } func (x *LookupResponse) GetContext() *structpb.Value { if x != nil { return x.Context } return nil } func (x *LookupResponse) GetType() *structpb.Value { if x != nil { return x.Type } return nil } func (x *LookupResponse) GetItemListElement() *structpb.ListValue { if x != nil { return x.ItemListElement } return nil } // Request message for // [EnterpriseKnowledgeGraphService.Search][google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.Search]. type SearchRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the Entity's parent resource. // Format: // `projects/{project}/locations/{location}` Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // Required. The literal query string for search. Query string `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"` // The list of language codes (defined in ISO 693) to run the query with, // e.g. 'en'. Languages []string `protobuf:"bytes,3,rep,name=languages,proto3" json:"languages,omitempty"` // Restricts returned entities with these types, e.g. Person // (as defined in http://schema.org/Person). If multiple types are specified, // returned entities will contain one or more of these types. Types []string `protobuf:"bytes,4,rep,name=types,proto3" json:"types,omitempty"` // Limits the number of entities to be returned. Limit *wrapperspb.Int32Value `protobuf:"bytes,6,opt,name=limit,proto3" json:"limit,omitempty"` } func (x *SearchRequest) Reset() { *x = SearchRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchRequest) ProtoMessage() {} func (x *SearchRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SearchRequest.ProtoReflect.Descriptor instead. func (*SearchRequest) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{16} } func (x *SearchRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *SearchRequest) GetQuery() string { if x != nil { return x.Query } return "" } func (x *SearchRequest) GetLanguages() []string { if x != nil { return x.Languages } return nil } func (x *SearchRequest) GetTypes() []string { if x != nil { return x.Types } return nil } func (x *SearchRequest) GetLimit() *wrapperspb.Int32Value { if x != nil { return x.Limit } return nil } // Response message for // [EnterpriseKnowledgeGraphService.Search][google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.Search]. type SearchResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The local context applicable for the response. See more details at // http://www.w3.org/TR/json-ld/#context-definitions. Context *structpb.Value `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` // The schema type of top-level JSON-LD object, e.g. ItemList. Type *structpb.Value `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` // The item list of search results. ItemListElement *structpb.ListValue `protobuf:"bytes,3,opt,name=item_list_element,json=itemListElement,proto3" json:"item_list_element,omitempty"` } func (x *SearchResponse) Reset() { *x = SearchResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchResponse) ProtoMessage() {} func (x *SearchResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SearchResponse.ProtoReflect.Descriptor instead. func (*SearchResponse) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{17} } func (x *SearchResponse) GetContext() *structpb.Value { if x != nil { return x.Context } return nil } func (x *SearchResponse) GetType() *structpb.Value { if x != nil { return x.Type } return nil } func (x *SearchResponse) GetItemListElement() *structpb.ListValue { if x != nil { return x.ItemListElement } return nil } // Request message for // [EnterpriseKnowledgeGraphService.LookupPublicKg][google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.LookupPublicKg]. type LookupPublicKgRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the Entity's parent resource. // Format: // `projects/{project}/locations/{location}` Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // Required. The list of entity ids to be used for lookup. Ids []string `protobuf:"bytes,2,rep,name=ids,proto3" json:"ids,omitempty"` // The list of language codes (defined in ISO 693) to run the query with, // e.g. 'en'. Languages []string `protobuf:"bytes,3,rep,name=languages,proto3" json:"languages,omitempty"` } func (x *LookupPublicKgRequest) Reset() { *x = LookupPublicKgRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LookupPublicKgRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*LookupPublicKgRequest) ProtoMessage() {} func (x *LookupPublicKgRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LookupPublicKgRequest.ProtoReflect.Descriptor instead. func (*LookupPublicKgRequest) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{18} } func (x *LookupPublicKgRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *LookupPublicKgRequest) GetIds() []string { if x != nil { return x.Ids } return nil } func (x *LookupPublicKgRequest) GetLanguages() []string { if x != nil { return x.Languages } return nil } // Response message for // [EnterpriseKnowledgeGraphService.LookupPublicKg][google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.LookupPublicKg]. type LookupPublicKgResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The local context applicable for the response. See more details at // http://www.w3.org/TR/json-ld/#context-definitions. Context *structpb.Value `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` // The schema type of top-level JSON-LD object, e.g. ItemList. Type *structpb.Value `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` // The item list of search results. ItemListElement *structpb.ListValue `protobuf:"bytes,3,opt,name=item_list_element,json=itemListElement,proto3" json:"item_list_element,omitempty"` } func (x *LookupPublicKgResponse) Reset() { *x = LookupPublicKgResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LookupPublicKgResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*LookupPublicKgResponse) ProtoMessage() {} func (x *LookupPublicKgResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LookupPublicKgResponse.ProtoReflect.Descriptor instead. func (*LookupPublicKgResponse) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{19} } func (x *LookupPublicKgResponse) GetContext() *structpb.Value { if x != nil { return x.Context } return nil } func (x *LookupPublicKgResponse) GetType() *structpb.Value { if x != nil { return x.Type } return nil } func (x *LookupPublicKgResponse) GetItemListElement() *structpb.ListValue { if x != nil { return x.ItemListElement } return nil } // Request message for // [EnterpriseKnowledgeGraphService.Search][google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.Search]. type SearchPublicKgRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the Entity's parent resource. // Format: // `projects/{project}/locations/{location}` Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // Required. The literal query string for search. Query string `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"` // The list of language codes (defined in ISO 693) to run the query with, // e.g. 'en'. Languages []string `protobuf:"bytes,3,rep,name=languages,proto3" json:"languages,omitempty"` // Restricts returned entities with these types, e.g. Person // (as defined in http://schema.org/Person). If multiple types are specified, // returned entities will contain one or more of these types. Types []string `protobuf:"bytes,4,rep,name=types,proto3" json:"types,omitempty"` // Limits the number of entities to be returned. Limit *wrapperspb.Int32Value `protobuf:"bytes,6,opt,name=limit,proto3" json:"limit,omitempty"` } func (x *SearchPublicKgRequest) Reset() { *x = SearchPublicKgRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchPublicKgRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchPublicKgRequest) ProtoMessage() {} func (x *SearchPublicKgRequest) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SearchPublicKgRequest.ProtoReflect.Descriptor instead. func (*SearchPublicKgRequest) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{20} } func (x *SearchPublicKgRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *SearchPublicKgRequest) GetQuery() string { if x != nil { return x.Query } return "" } func (x *SearchPublicKgRequest) GetLanguages() []string { if x != nil { return x.Languages } return nil } func (x *SearchPublicKgRequest) GetTypes() []string { if x != nil { return x.Types } return nil } func (x *SearchPublicKgRequest) GetLimit() *wrapperspb.Int32Value { if x != nil { return x.Limit } return nil } // Response message for // [EnterpriseKnowledgeGraphService.Search][google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.Search]. type SearchPublicKgResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The local context applicable for the response. See more details at // http://www.w3.org/TR/json-ld/#context-definitions. Context *structpb.Value `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` // The schema type of top-level JSON-LD object, e.g. ItemList. Type *structpb.Value `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` // The item list of search results. ItemListElement *structpb.ListValue `protobuf:"bytes,3,opt,name=item_list_element,json=itemListElement,proto3" json:"item_list_element,omitempty"` } func (x *SearchPublicKgResponse) Reset() { *x = SearchPublicKgResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SearchPublicKgResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SearchPublicKgResponse) ProtoMessage() {} func (x *SearchPublicKgResponse) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SearchPublicKgResponse.ProtoReflect.Descriptor instead. func (*SearchPublicKgResponse) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{21} } func (x *SearchPublicKgResponse) GetContext() *structpb.Value { if x != nil { return x.Context } return nil } func (x *SearchPublicKgResponse) GetType() *structpb.Value { if x != nil { return x.Type } return nil } func (x *SearchPublicKgResponse) GetItemListElement() *structpb.ListValue { if x != nil { return x.ItemListElement } return nil } // Options for experimental changes on entity clustering behavior. type ReconConfig_Options struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // If true, separate clusters by their geographic region (from geocoding). // Uses the following entity features: // // - schema.org/addressLocality // - schema.org/addressRegion // - schema.org/addressCountry // Warning: processing will no longer be regionalized! EnableGeocodingSeparation bool `protobuf:"varint,100,opt,name=enable_geocoding_separation,json=enableGeocodingSeparation,proto3" json:"enable_geocoding_separation,omitempty"` } func (x *ReconConfig_Options) Reset() { *x = ReconConfig_Options{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReconConfig_Options) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReconConfig_Options) ProtoMessage() {} func (x *ReconConfig_Options) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReconConfig_Options.ProtoReflect.Descriptor instead. func (*ReconConfig_Options) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{3, 0} } func (x *ReconConfig_Options) GetEnableGeocodingSeparation() bool { if x != nil { return x.EnableGeocodingSeparation } return false } // Model Configs type ReconConfig_ModelConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Model name. Refer to external documentation for valid names. // If unspecified, it defaults to the one mentioned in the documentation. ModelName string `protobuf:"bytes,1,opt,name=model_name,json=modelName,proto3" json:"model_name,omitempty"` // Model version tag. Refer to external documentation for valid tags. // If unspecified, it defaults to the one mentioned in the documentation. VersionTag string `protobuf:"bytes,2,opt,name=version_tag,json=versionTag,proto3" json:"version_tag,omitempty"` } func (x *ReconConfig_ModelConfig) Reset() { *x = ReconConfig_ModelConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReconConfig_ModelConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReconConfig_ModelConfig) ProtoMessage() {} func (x *ReconConfig_ModelConfig) ProtoReflect() protoreflect.Message { mi := &file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReconConfig_ModelConfig.ProtoReflect.Descriptor instead. func (*ReconConfig_ModelConfig) Descriptor() ([]byte, []int) { return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP(), []int{3, 1} } func (x *ReconConfig_ModelConfig) GetModelName() string { if x != nil { return x.ModelName } return "" } func (x *ReconConfig_ModelConfig) GetVersionTag() string { if x != nil { return x.VersionTag } return "" } var File_google_cloud_enterpriseknowledgegraph_v1_service_proto protoreflect.FileDescriptor var file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDesc = []byte{ 0x0a, 0x36, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 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, 0x38, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf5, 0x03, 0x0a, 0x0b, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x73, 0x0a, 0x16, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x14, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x61, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x6a, 0x0a, 0x1e, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x1b, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x22, 0xa1, 0x01, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x06, 0x50, 0x45, 0x4f, 0x50, 0x4c, 0x45, 0x10, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x15, 0x0a, 0x0d, 0x45, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x10, 0x0a, 0x08, 0x50, 0x52, 0x4f, 0x50, 0x45, 0x52, 0x54, 0x59, 0x10, 0x03, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x4f, 0x44, 0x55, 0x43, 0x54, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x52, 0x47, 0x41, 0x4e, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x42, 0x55, 0x53, 0x49, 0x4e, 0x45, 0x53, 0x53, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x45, 0x52, 0x53, 0x4f, 0x4e, 0x10, 0x07, 0x22, 0x81, 0x01, 0x0a, 0x13, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4c, 0x0a, 0x0e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x0d, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x67, 0x63, 0x73, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x67, 0x63, 0x73, 0x55, 0x72, 0x69, 0x22, 0x5f, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4f, 0x0a, 0x10, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 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, 0x0f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x22, 0x88, 0x05, 0x0a, 0x0b, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x85, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x19, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x82, 0x01, 0x0a, 0x1a, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x18, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x57, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x64, 0x0a, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x49, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3e, 0x0a, 0x1b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x65, 0x6f, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x64, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x65, 0x6f, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x4d, 0x0a, 0x0b, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x67, 0x42, 0x13, 0x0a, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x46, 0x0a, 0x19, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x52, 0x0a, 0x18, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x6a, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8c, 0x02, 0x0a, 0x24, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x47, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x41, 0x12, 0x3f, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x82, 0x01, 0x0a, 0x19, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x17, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x22, 0x80, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x47, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x41, 0x0a, 0x3f, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xda, 0x01, 0x0a, 0x23, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x47, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x41, 0x12, 0x3f, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 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, 0xcf, 0x01, 0x0a, 0x24, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x18, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x24, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x47, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x41, 0x0a, 0x3f, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x24, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x47, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x41, 0x0a, 0x3f, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb6, 0x06, 0x0a, 0x17, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5d, 0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x60, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 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, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x5d, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0xa3, 0x01, 0xea, 0x41, 0x9f, 0x01, 0x0a, 0x3f, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x5c, 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, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6a, 0x6f, 0x62, 0x7d, 0x22, 0xa7, 0x01, 0x0a, 0x0d, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x61, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x49, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x43, 0x12, 0x41, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x22, 0xb6, 0x01, 0x0a, 0x0e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 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, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xf4, 0x01, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x61, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x49, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x43, 0x12, 0x41, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xb6, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 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, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xb0, 0x01, 0x0a, 0x15, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x62, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x4a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x44, 0x12, 0x42, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x22, 0xbe, 0x01, 0x0a, 0x16, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 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, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xfd, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x62, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x4a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x44, 0x12, 0x42, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xbe, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 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, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x69, 0x74, 0x65, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x32, 0x9d, 0x12, 0x0a, 0x1f, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb7, 0x02, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x22, 0x82, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x59, 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, 0x7d, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x3a, 0x19, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6a, 0x6f, 0x62, 0xda, 0x41, 0x20, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6a, 0x6f, 0x62, 0x12, 0xf9, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x22, 0x4b, 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, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x8c, 0x02, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 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, 0x7d, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xde, 0x01, 0x0a, 0x1d, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x55, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x22, 0x43, 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, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xd4, 0x01, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4b, 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, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xd8, 0x01, 0x0a, 0x06, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x12, 0x46, 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, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x3a, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0xda, 0x41, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x69, 0x64, 0x73, 0x12, 0xda, 0x01, 0x0a, 0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x12, 0x46, 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, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x3a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0xda, 0x41, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0xf1, 0x01, 0x0a, 0x0e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x67, 0x12, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, 0x47, 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, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x3a, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0xda, 0x41, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x69, 0x64, 0x73, 0x12, 0xf3, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x67, 0x12, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, 0x47, 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, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x3a, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0xda, 0x41, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x71, 0x75, 0x65, 0x72, 0x79, 0x1a, 0x5b, 0xca, 0x41, 0x27, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xa0, 0x06, 0x0a, 0x2c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x60, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x76, 0x31, 0x3b, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0xaa, 0x02, 0x28, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x28, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x2b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x3a, 0x3a, 0x56, 0x31, 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, 0xa7, 0x01, 0x0a, 0x41, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x62, 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, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x7d, 0xea, 0x41, 0xaa, 0x01, 0x0a, 0x42, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x64, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x7d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescOnce sync.Once file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescData = file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDesc ) func file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescGZIP() []byte { file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescOnce.Do(func() { file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescData) }) return file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDescData } var file_google_cloud_enterpriseknowledgegraph_v1_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 24) var file_google_cloud_enterpriseknowledgegraph_v1_service_proto_goTypes = []interface{}{ (InputConfig_EntityType)(0), // 0: google.cloud.enterpriseknowledgegraph.v1.InputConfig.EntityType (*InputConfig)(nil), // 1: google.cloud.enterpriseknowledgegraph.v1.InputConfig (*BigQueryInputConfig)(nil), // 2: google.cloud.enterpriseknowledgegraph.v1.BigQueryInputConfig (*OutputConfig)(nil), // 3: google.cloud.enterpriseknowledgegraph.v1.OutputConfig (*ReconConfig)(nil), // 4: google.cloud.enterpriseknowledgegraph.v1.ReconConfig (*ConnectedComponentsConfig)(nil), // 5: google.cloud.enterpriseknowledgegraph.v1.ConnectedComponentsConfig (*AffinityClusteringConfig)(nil), // 6: google.cloud.enterpriseknowledgegraph.v1.AffinityClusteringConfig (*DeleteOperationMetadata)(nil), // 7: google.cloud.enterpriseknowledgegraph.v1.DeleteOperationMetadata (*CreateEntityReconciliationJobRequest)(nil), // 8: google.cloud.enterpriseknowledgegraph.v1.CreateEntityReconciliationJobRequest (*GetEntityReconciliationJobRequest)(nil), // 9: google.cloud.enterpriseknowledgegraph.v1.GetEntityReconciliationJobRequest (*ListEntityReconciliationJobsRequest)(nil), // 10: google.cloud.enterpriseknowledgegraph.v1.ListEntityReconciliationJobsRequest (*ListEntityReconciliationJobsResponse)(nil), // 11: google.cloud.enterpriseknowledgegraph.v1.ListEntityReconciliationJobsResponse (*CancelEntityReconciliationJobRequest)(nil), // 12: google.cloud.enterpriseknowledgegraph.v1.CancelEntityReconciliationJobRequest (*DeleteEntityReconciliationJobRequest)(nil), // 13: google.cloud.enterpriseknowledgegraph.v1.DeleteEntityReconciliationJobRequest (*EntityReconciliationJob)(nil), // 14: google.cloud.enterpriseknowledgegraph.v1.EntityReconciliationJob (*LookupRequest)(nil), // 15: google.cloud.enterpriseknowledgegraph.v1.LookupRequest (*LookupResponse)(nil), // 16: google.cloud.enterpriseknowledgegraph.v1.LookupResponse (*SearchRequest)(nil), // 17: google.cloud.enterpriseknowledgegraph.v1.SearchRequest (*SearchResponse)(nil), // 18: google.cloud.enterpriseknowledgegraph.v1.SearchResponse (*LookupPublicKgRequest)(nil), // 19: google.cloud.enterpriseknowledgegraph.v1.LookupPublicKgRequest (*LookupPublicKgResponse)(nil), // 20: google.cloud.enterpriseknowledgegraph.v1.LookupPublicKgResponse (*SearchPublicKgRequest)(nil), // 21: google.cloud.enterpriseknowledgegraph.v1.SearchPublicKgRequest (*SearchPublicKgResponse)(nil), // 22: google.cloud.enterpriseknowledgegraph.v1.SearchPublicKgResponse (*ReconConfig_Options)(nil), // 23: google.cloud.enterpriseknowledgegraph.v1.ReconConfig.Options (*ReconConfig_ModelConfig)(nil), // 24: google.cloud.enterpriseknowledgegraph.v1.ReconConfig.ModelConfig (*CommonOperationMetadata)(nil), // 25: google.cloud.enterpriseknowledgegraph.v1.CommonOperationMetadata (JobState)(0), // 26: google.cloud.enterpriseknowledgegraph.v1.JobState (*status.Status)(nil), // 27: google.rpc.Status (*timestamppb.Timestamp)(nil), // 28: google.protobuf.Timestamp (*structpb.Value)(nil), // 29: google.protobuf.Value (*structpb.ListValue)(nil), // 30: google.protobuf.ListValue (*wrapperspb.Int32Value)(nil), // 31: google.protobuf.Int32Value (*emptypb.Empty)(nil), // 32: google.protobuf.Empty } var file_google_cloud_enterpriseknowledgegraph_v1_service_proto_depIdxs = []int32{ 2, // 0: google.cloud.enterpriseknowledgegraph.v1.InputConfig.bigquery_input_configs:type_name -> google.cloud.enterpriseknowledgegraph.v1.BigQueryInputConfig 0, // 1: google.cloud.enterpriseknowledgegraph.v1.InputConfig.entity_type:type_name -> google.cloud.enterpriseknowledgegraph.v1.InputConfig.EntityType 5, // 2: google.cloud.enterpriseknowledgegraph.v1.ReconConfig.connected_components_config:type_name -> google.cloud.enterpriseknowledgegraph.v1.ConnectedComponentsConfig 6, // 3: google.cloud.enterpriseknowledgegraph.v1.ReconConfig.affinity_clustering_config:type_name -> google.cloud.enterpriseknowledgegraph.v1.AffinityClusteringConfig 23, // 4: google.cloud.enterpriseknowledgegraph.v1.ReconConfig.options:type_name -> google.cloud.enterpriseknowledgegraph.v1.ReconConfig.Options 24, // 5: google.cloud.enterpriseknowledgegraph.v1.ReconConfig.model_config:type_name -> google.cloud.enterpriseknowledgegraph.v1.ReconConfig.ModelConfig 25, // 6: google.cloud.enterpriseknowledgegraph.v1.DeleteOperationMetadata.common_metadata:type_name -> google.cloud.enterpriseknowledgegraph.v1.CommonOperationMetadata 14, // 7: google.cloud.enterpriseknowledgegraph.v1.CreateEntityReconciliationJobRequest.entity_reconciliation_job:type_name -> google.cloud.enterpriseknowledgegraph.v1.EntityReconciliationJob 14, // 8: google.cloud.enterpriseknowledgegraph.v1.ListEntityReconciliationJobsResponse.entity_reconciliation_jobs:type_name -> google.cloud.enterpriseknowledgegraph.v1.EntityReconciliationJob 1, // 9: google.cloud.enterpriseknowledgegraph.v1.EntityReconciliationJob.input_config:type_name -> google.cloud.enterpriseknowledgegraph.v1.InputConfig 3, // 10: google.cloud.enterpriseknowledgegraph.v1.EntityReconciliationJob.output_config:type_name -> google.cloud.enterpriseknowledgegraph.v1.OutputConfig 26, // 11: google.cloud.enterpriseknowledgegraph.v1.EntityReconciliationJob.state:type_name -> google.cloud.enterpriseknowledgegraph.v1.JobState 27, // 12: google.cloud.enterpriseknowledgegraph.v1.EntityReconciliationJob.error:type_name -> google.rpc.Status 28, // 13: google.cloud.enterpriseknowledgegraph.v1.EntityReconciliationJob.create_time:type_name -> google.protobuf.Timestamp 28, // 14: google.cloud.enterpriseknowledgegraph.v1.EntityReconciliationJob.end_time:type_name -> google.protobuf.Timestamp 28, // 15: google.cloud.enterpriseknowledgegraph.v1.EntityReconciliationJob.update_time:type_name -> google.protobuf.Timestamp 4, // 16: google.cloud.enterpriseknowledgegraph.v1.EntityReconciliationJob.recon_config:type_name -> google.cloud.enterpriseknowledgegraph.v1.ReconConfig 29, // 17: google.cloud.enterpriseknowledgegraph.v1.LookupResponse.context:type_name -> google.protobuf.Value 29, // 18: google.cloud.enterpriseknowledgegraph.v1.LookupResponse.type:type_name -> google.protobuf.Value 30, // 19: google.cloud.enterpriseknowledgegraph.v1.LookupResponse.item_list_element:type_name -> google.protobuf.ListValue 31, // 20: google.cloud.enterpriseknowledgegraph.v1.SearchRequest.limit:type_name -> google.protobuf.Int32Value 29, // 21: google.cloud.enterpriseknowledgegraph.v1.SearchResponse.context:type_name -> google.protobuf.Value 29, // 22: google.cloud.enterpriseknowledgegraph.v1.SearchResponse.type:type_name -> google.protobuf.Value 30, // 23: google.cloud.enterpriseknowledgegraph.v1.SearchResponse.item_list_element:type_name -> google.protobuf.ListValue 29, // 24: google.cloud.enterpriseknowledgegraph.v1.LookupPublicKgResponse.context:type_name -> google.protobuf.Value 29, // 25: google.cloud.enterpriseknowledgegraph.v1.LookupPublicKgResponse.type:type_name -> google.protobuf.Value 30, // 26: google.cloud.enterpriseknowledgegraph.v1.LookupPublicKgResponse.item_list_element:type_name -> google.protobuf.ListValue 31, // 27: google.cloud.enterpriseknowledgegraph.v1.SearchPublicKgRequest.limit:type_name -> google.protobuf.Int32Value 29, // 28: google.cloud.enterpriseknowledgegraph.v1.SearchPublicKgResponse.context:type_name -> google.protobuf.Value 29, // 29: google.cloud.enterpriseknowledgegraph.v1.SearchPublicKgResponse.type:type_name -> google.protobuf.Value 30, // 30: google.cloud.enterpriseknowledgegraph.v1.SearchPublicKgResponse.item_list_element:type_name -> google.protobuf.ListValue 8, // 31: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.CreateEntityReconciliationJob:input_type -> google.cloud.enterpriseknowledgegraph.v1.CreateEntityReconciliationJobRequest 9, // 32: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.GetEntityReconciliationJob:input_type -> google.cloud.enterpriseknowledgegraph.v1.GetEntityReconciliationJobRequest 10, // 33: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.ListEntityReconciliationJobs:input_type -> google.cloud.enterpriseknowledgegraph.v1.ListEntityReconciliationJobsRequest 12, // 34: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.CancelEntityReconciliationJob:input_type -> google.cloud.enterpriseknowledgegraph.v1.CancelEntityReconciliationJobRequest 13, // 35: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.DeleteEntityReconciliationJob:input_type -> google.cloud.enterpriseknowledgegraph.v1.DeleteEntityReconciliationJobRequest 15, // 36: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.Lookup:input_type -> google.cloud.enterpriseknowledgegraph.v1.LookupRequest 17, // 37: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.Search:input_type -> google.cloud.enterpriseknowledgegraph.v1.SearchRequest 19, // 38: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.LookupPublicKg:input_type -> google.cloud.enterpriseknowledgegraph.v1.LookupPublicKgRequest 21, // 39: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.SearchPublicKg:input_type -> google.cloud.enterpriseknowledgegraph.v1.SearchPublicKgRequest 14, // 40: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.CreateEntityReconciliationJob:output_type -> google.cloud.enterpriseknowledgegraph.v1.EntityReconciliationJob 14, // 41: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.GetEntityReconciliationJob:output_type -> google.cloud.enterpriseknowledgegraph.v1.EntityReconciliationJob 11, // 42: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.ListEntityReconciliationJobs:output_type -> google.cloud.enterpriseknowledgegraph.v1.ListEntityReconciliationJobsResponse 32, // 43: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.CancelEntityReconciliationJob:output_type -> google.protobuf.Empty 32, // 44: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.DeleteEntityReconciliationJob:output_type -> google.protobuf.Empty 16, // 45: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.Lookup:output_type -> google.cloud.enterpriseknowledgegraph.v1.LookupResponse 18, // 46: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.Search:output_type -> google.cloud.enterpriseknowledgegraph.v1.SearchResponse 20, // 47: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.LookupPublicKg:output_type -> google.cloud.enterpriseknowledgegraph.v1.LookupPublicKgResponse 22, // 48: google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService.SearchPublicKg:output_type -> google.cloud.enterpriseknowledgegraph.v1.SearchPublicKgResponse 40, // [40:49] is the sub-list for method output_type 31, // [31:40] is the sub-list for method input_type 31, // [31:31] is the sub-list for extension type_name 31, // [31:31] is the sub-list for extension extendee 0, // [0:31] is the sub-list for field type_name } func init() { file_google_cloud_enterpriseknowledgegraph_v1_service_proto_init() } func file_google_cloud_enterpriseknowledgegraph_v1_service_proto_init() { if File_google_cloud_enterpriseknowledgegraph_v1_service_proto != nil { return } file_google_cloud_enterpriseknowledgegraph_v1_job_state_proto_init() file_google_cloud_enterpriseknowledgegraph_v1_operation_metadata_proto_init() if !protoimpl.UnsafeEnabled { file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InputConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BigQueryInputConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OutputConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReconConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConnectedComponentsConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AffinityClusteringConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteOperationMetadata); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateEntityReconciliationJobRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetEntityReconciliationJobRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEntityReconciliationJobsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEntityReconciliationJobsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CancelEntityReconciliationJobRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteEntityReconciliationJobRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EntityReconciliationJob); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LookupRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LookupResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LookupPublicKgRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LookupPublicKgResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchPublicKgRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchPublicKgResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReconConfig_Options); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReconConfig_ModelConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes[3].OneofWrappers = []interface{}{ (*ReconConfig_ConnectedComponentsConfig)(nil), (*ReconConfig_AffinityClusteringConfig)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDesc, NumEnums: 1, NumMessages: 24, NumExtensions: 0, NumServices: 1, }, GoTypes: file_google_cloud_enterpriseknowledgegraph_v1_service_proto_goTypes, DependencyIndexes: file_google_cloud_enterpriseknowledgegraph_v1_service_proto_depIdxs, EnumInfos: file_google_cloud_enterpriseknowledgegraph_v1_service_proto_enumTypes, MessageInfos: file_google_cloud_enterpriseknowledgegraph_v1_service_proto_msgTypes, }.Build() File_google_cloud_enterpriseknowledgegraph_v1_service_proto = out.File file_google_cloud_enterpriseknowledgegraph_v1_service_proto_rawDesc = nil file_google_cloud_enterpriseknowledgegraph_v1_service_proto_goTypes = nil file_google_cloud_enterpriseknowledgegraph_v1_service_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. const _ = grpc.SupportPackageIsVersion6 // EnterpriseKnowledgeGraphServiceClient is the client API for EnterpriseKnowledgeGraphService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type EnterpriseKnowledgeGraphServiceClient interface { // Creates a EntityReconciliationJob. A EntityReconciliationJob once created // will right away be attempted to start. CreateEntityReconciliationJob(ctx context.Context, in *CreateEntityReconciliationJobRequest, opts ...grpc.CallOption) (*EntityReconciliationJob, error) // Gets a EntityReconciliationJob. GetEntityReconciliationJob(ctx context.Context, in *GetEntityReconciliationJobRequest, opts ...grpc.CallOption) (*EntityReconciliationJob, error) // Lists Entity Reconciliation Jobs. ListEntityReconciliationJobs(ctx context.Context, in *ListEntityReconciliationJobsRequest, opts ...grpc.CallOption) (*ListEntityReconciliationJobsResponse, error) // Cancels a EntityReconciliationJob. Success of cancellation is not // guaranteed. CancelEntityReconciliationJob(ctx context.Context, in *CancelEntityReconciliationJobRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) // Deletes a EntityReconciliationJob. // It only deletes the job when the job state is in FAILED, SUCCEEDED, and // CANCELLED. DeleteEntityReconciliationJob(ctx context.Context, in *DeleteEntityReconciliationJobRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) // Finds the Cloud KG entities with CKG ID(s). Lookup(ctx context.Context, in *LookupRequest, opts ...grpc.CallOption) (*LookupResponse, error) // Searches the Cloud KG entities with entity name. Search(ctx context.Context, in *SearchRequest, opts ...grpc.CallOption) (*SearchResponse, error) // Finds the public KG entities with public KG ID(s). LookupPublicKg(ctx context.Context, in *LookupPublicKgRequest, opts ...grpc.CallOption) (*LookupPublicKgResponse, error) // Searches the public KG entities with entity name. SearchPublicKg(ctx context.Context, in *SearchPublicKgRequest, opts ...grpc.CallOption) (*SearchPublicKgResponse, error) } type enterpriseKnowledgeGraphServiceClient struct { cc grpc.ClientConnInterface } func NewEnterpriseKnowledgeGraphServiceClient(cc grpc.ClientConnInterface) EnterpriseKnowledgeGraphServiceClient { return &enterpriseKnowledgeGraphServiceClient{cc} } func (c *enterpriseKnowledgeGraphServiceClient) CreateEntityReconciliationJob(ctx context.Context, in *CreateEntityReconciliationJobRequest, opts ...grpc.CallOption) (*EntityReconciliationJob, error) { out := new(EntityReconciliationJob) err := c.cc.Invoke(ctx, "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/CreateEntityReconciliationJob", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *enterpriseKnowledgeGraphServiceClient) GetEntityReconciliationJob(ctx context.Context, in *GetEntityReconciliationJobRequest, opts ...grpc.CallOption) (*EntityReconciliationJob, error) { out := new(EntityReconciliationJob) err := c.cc.Invoke(ctx, "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/GetEntityReconciliationJob", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *enterpriseKnowledgeGraphServiceClient) ListEntityReconciliationJobs(ctx context.Context, in *ListEntityReconciliationJobsRequest, opts ...grpc.CallOption) (*ListEntityReconciliationJobsResponse, error) { out := new(ListEntityReconciliationJobsResponse) err := c.cc.Invoke(ctx, "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/ListEntityReconciliationJobs", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *enterpriseKnowledgeGraphServiceClient) CancelEntityReconciliationJob(ctx context.Context, in *CancelEntityReconciliationJobRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) err := c.cc.Invoke(ctx, "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/CancelEntityReconciliationJob", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *enterpriseKnowledgeGraphServiceClient) DeleteEntityReconciliationJob(ctx context.Context, in *DeleteEntityReconciliationJobRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) err := c.cc.Invoke(ctx, "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/DeleteEntityReconciliationJob", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *enterpriseKnowledgeGraphServiceClient) Lookup(ctx context.Context, in *LookupRequest, opts ...grpc.CallOption) (*LookupResponse, error) { out := new(LookupResponse) err := c.cc.Invoke(ctx, "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/Lookup", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *enterpriseKnowledgeGraphServiceClient) Search(ctx context.Context, in *SearchRequest, opts ...grpc.CallOption) (*SearchResponse, error) { out := new(SearchResponse) err := c.cc.Invoke(ctx, "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/Search", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *enterpriseKnowledgeGraphServiceClient) LookupPublicKg(ctx context.Context, in *LookupPublicKgRequest, opts ...grpc.CallOption) (*LookupPublicKgResponse, error) { out := new(LookupPublicKgResponse) err := c.cc.Invoke(ctx, "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/LookupPublicKg", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *enterpriseKnowledgeGraphServiceClient) SearchPublicKg(ctx context.Context, in *SearchPublicKgRequest, opts ...grpc.CallOption) (*SearchPublicKgResponse, error) { out := new(SearchPublicKgResponse) err := c.cc.Invoke(ctx, "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/SearchPublicKg", in, out, opts...) if err != nil { return nil, err } return out, nil } // EnterpriseKnowledgeGraphServiceServer is the server API for EnterpriseKnowledgeGraphService service. type EnterpriseKnowledgeGraphServiceServer interface { // Creates a EntityReconciliationJob. A EntityReconciliationJob once created // will right away be attempted to start. CreateEntityReconciliationJob(context.Context, *CreateEntityReconciliationJobRequest) (*EntityReconciliationJob, error) // Gets a EntityReconciliationJob. GetEntityReconciliationJob(context.Context, *GetEntityReconciliationJobRequest) (*EntityReconciliationJob, error) // Lists Entity Reconciliation Jobs. ListEntityReconciliationJobs(context.Context, *ListEntityReconciliationJobsRequest) (*ListEntityReconciliationJobsResponse, error) // Cancels a EntityReconciliationJob. Success of cancellation is not // guaranteed. CancelEntityReconciliationJob(context.Context, *CancelEntityReconciliationJobRequest) (*emptypb.Empty, error) // Deletes a EntityReconciliationJob. // It only deletes the job when the job state is in FAILED, SUCCEEDED, and // CANCELLED. DeleteEntityReconciliationJob(context.Context, *DeleteEntityReconciliationJobRequest) (*emptypb.Empty, error) // Finds the Cloud KG entities with CKG ID(s). Lookup(context.Context, *LookupRequest) (*LookupResponse, error) // Searches the Cloud KG entities with entity name. Search(context.Context, *SearchRequest) (*SearchResponse, error) // Finds the public KG entities with public KG ID(s). LookupPublicKg(context.Context, *LookupPublicKgRequest) (*LookupPublicKgResponse, error) // Searches the public KG entities with entity name. SearchPublicKg(context.Context, *SearchPublicKgRequest) (*SearchPublicKgResponse, error) } // UnimplementedEnterpriseKnowledgeGraphServiceServer can be embedded to have forward compatible implementations. type UnimplementedEnterpriseKnowledgeGraphServiceServer struct { } func (*UnimplementedEnterpriseKnowledgeGraphServiceServer) CreateEntityReconciliationJob(context.Context, *CreateEntityReconciliationJobRequest) (*EntityReconciliationJob, error) { return nil, status1.Errorf(codes.Unimplemented, "method CreateEntityReconciliationJob not implemented") } func (*UnimplementedEnterpriseKnowledgeGraphServiceServer) GetEntityReconciliationJob(context.Context, *GetEntityReconciliationJobRequest) (*EntityReconciliationJob, error) { return nil, status1.Errorf(codes.Unimplemented, "method GetEntityReconciliationJob not implemented") } func (*UnimplementedEnterpriseKnowledgeGraphServiceServer) ListEntityReconciliationJobs(context.Context, *ListEntityReconciliationJobsRequest) (*ListEntityReconciliationJobsResponse, error) { return nil, status1.Errorf(codes.Unimplemented, "method ListEntityReconciliationJobs not implemented") } func (*UnimplementedEnterpriseKnowledgeGraphServiceServer) CancelEntityReconciliationJob(context.Context, *CancelEntityReconciliationJobRequest) (*emptypb.Empty, error) { return nil, status1.Errorf(codes.Unimplemented, "method CancelEntityReconciliationJob not implemented") } func (*UnimplementedEnterpriseKnowledgeGraphServiceServer) DeleteEntityReconciliationJob(context.Context, *DeleteEntityReconciliationJobRequest) (*emptypb.Empty, error) { return nil, status1.Errorf(codes.Unimplemented, "method DeleteEntityReconciliationJob not implemented") } func (*UnimplementedEnterpriseKnowledgeGraphServiceServer) Lookup(context.Context, *LookupRequest) (*LookupResponse, error) { return nil, status1.Errorf(codes.Unimplemented, "method Lookup not implemented") } func (*UnimplementedEnterpriseKnowledgeGraphServiceServer) Search(context.Context, *SearchRequest) (*SearchResponse, error) { return nil, status1.Errorf(codes.Unimplemented, "method Search not implemented") } func (*UnimplementedEnterpriseKnowledgeGraphServiceServer) LookupPublicKg(context.Context, *LookupPublicKgRequest) (*LookupPublicKgResponse, error) { return nil, status1.Errorf(codes.Unimplemented, "method LookupPublicKg not implemented") } func (*UnimplementedEnterpriseKnowledgeGraphServiceServer) SearchPublicKg(context.Context, *SearchPublicKgRequest) (*SearchPublicKgResponse, error) { return nil, status1.Errorf(codes.Unimplemented, "method SearchPublicKg not implemented") } func RegisterEnterpriseKnowledgeGraphServiceServer(s *grpc.Server, srv EnterpriseKnowledgeGraphServiceServer) { s.RegisterService(&_EnterpriseKnowledgeGraphService_serviceDesc, srv) } func _EnterpriseKnowledgeGraphService_CreateEntityReconciliationJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CreateEntityReconciliationJobRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnterpriseKnowledgeGraphServiceServer).CreateEntityReconciliationJob(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/CreateEntityReconciliationJob", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnterpriseKnowledgeGraphServiceServer).CreateEntityReconciliationJob(ctx, req.(*CreateEntityReconciliationJobRequest)) } return interceptor(ctx, in, info, handler) } func _EnterpriseKnowledgeGraphService_GetEntityReconciliationJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetEntityReconciliationJobRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnterpriseKnowledgeGraphServiceServer).GetEntityReconciliationJob(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/GetEntityReconciliationJob", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnterpriseKnowledgeGraphServiceServer).GetEntityReconciliationJob(ctx, req.(*GetEntityReconciliationJobRequest)) } return interceptor(ctx, in, info, handler) } func _EnterpriseKnowledgeGraphService_ListEntityReconciliationJobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListEntityReconciliationJobsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnterpriseKnowledgeGraphServiceServer).ListEntityReconciliationJobs(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/ListEntityReconciliationJobs", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnterpriseKnowledgeGraphServiceServer).ListEntityReconciliationJobs(ctx, req.(*ListEntityReconciliationJobsRequest)) } return interceptor(ctx, in, info, handler) } func _EnterpriseKnowledgeGraphService_CancelEntityReconciliationJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CancelEntityReconciliationJobRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnterpriseKnowledgeGraphServiceServer).CancelEntityReconciliationJob(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/CancelEntityReconciliationJob", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnterpriseKnowledgeGraphServiceServer).CancelEntityReconciliationJob(ctx, req.(*CancelEntityReconciliationJobRequest)) } return interceptor(ctx, in, info, handler) } func _EnterpriseKnowledgeGraphService_DeleteEntityReconciliationJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DeleteEntityReconciliationJobRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnterpriseKnowledgeGraphServiceServer).DeleteEntityReconciliationJob(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/DeleteEntityReconciliationJob", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnterpriseKnowledgeGraphServiceServer).DeleteEntityReconciliationJob(ctx, req.(*DeleteEntityReconciliationJobRequest)) } return interceptor(ctx, in, info, handler) } func _EnterpriseKnowledgeGraphService_Lookup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(LookupRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnterpriseKnowledgeGraphServiceServer).Lookup(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/Lookup", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnterpriseKnowledgeGraphServiceServer).Lookup(ctx, req.(*LookupRequest)) } return interceptor(ctx, in, info, handler) } func _EnterpriseKnowledgeGraphService_Search_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SearchRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnterpriseKnowledgeGraphServiceServer).Search(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/Search", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnterpriseKnowledgeGraphServiceServer).Search(ctx, req.(*SearchRequest)) } return interceptor(ctx, in, info, handler) } func _EnterpriseKnowledgeGraphService_LookupPublicKg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(LookupPublicKgRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnterpriseKnowledgeGraphServiceServer).LookupPublicKg(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/LookupPublicKg", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnterpriseKnowledgeGraphServiceServer).LookupPublicKg(ctx, req.(*LookupPublicKgRequest)) } return interceptor(ctx, in, info, handler) } func _EnterpriseKnowledgeGraphService_SearchPublicKg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SearchPublicKgRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(EnterpriseKnowledgeGraphServiceServer).SearchPublicKg(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService/SearchPublicKg", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(EnterpriseKnowledgeGraphServiceServer).SearchPublicKg(ctx, req.(*SearchPublicKgRequest)) } return interceptor(ctx, in, info, handler) } var _EnterpriseKnowledgeGraphService_serviceDesc = grpc.ServiceDesc{ ServiceName: "google.cloud.enterpriseknowledgegraph.v1.EnterpriseKnowledgeGraphService", HandlerType: (*EnterpriseKnowledgeGraphServiceServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "CreateEntityReconciliationJob", Handler: _EnterpriseKnowledgeGraphService_CreateEntityReconciliationJob_Handler, }, { MethodName: "GetEntityReconciliationJob", Handler: _EnterpriseKnowledgeGraphService_GetEntityReconciliationJob_Handler, }, { MethodName: "ListEntityReconciliationJobs", Handler: _EnterpriseKnowledgeGraphService_ListEntityReconciliationJobs_Handler, }, { MethodName: "CancelEntityReconciliationJob", Handler: _EnterpriseKnowledgeGraphService_CancelEntityReconciliationJob_Handler, }, { MethodName: "DeleteEntityReconciliationJob", Handler: _EnterpriseKnowledgeGraphService_DeleteEntityReconciliationJob_Handler, }, { MethodName: "Lookup", Handler: _EnterpriseKnowledgeGraphService_Lookup_Handler, }, { MethodName: "Search", Handler: _EnterpriseKnowledgeGraphService_Search_Handler, }, { MethodName: "LookupPublicKg", Handler: _EnterpriseKnowledgeGraphService_LookupPublicKg_Handler, }, { MethodName: "SearchPublicKg", Handler: _EnterpriseKnowledgeGraphService_SearchPublicKg_Handler, }, }, Streams: []grpc.StreamDesc{}, Metadata: "google/cloud/enterpriseknowledgegraph/v1/service.proto", }