| // 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.33.0 |
| // protoc v4.25.3 |
| // source: google/cloud/discoveryengine/v1/search_service.proto |
| |
| package discoveryenginepb |
| |
| import ( |
| context "context" |
| reflect "reflect" |
| sync "sync" |
| |
| _ "google.golang.org/genproto/googleapis/api/annotations" |
| grpc "google.golang.org/grpc" |
| codes "google.golang.org/grpc/codes" |
| status "google.golang.org/grpc/status" |
| protoreflect "google.golang.org/protobuf/reflect/protoreflect" |
| protoimpl "google.golang.org/protobuf/runtime/protoimpl" |
| structpb "google.golang.org/protobuf/types/known/structpb" |
| ) |
| |
| 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) |
| ) |
| |
| // Enum describing under which condition query expansion should occur. |
| type SearchRequest_QueryExpansionSpec_Condition int32 |
| |
| const ( |
| // Unspecified query expansion condition. In this case, server behavior |
| // defaults to |
| // [Condition.DISABLED][google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec.Condition.DISABLED]. |
| SearchRequest_QueryExpansionSpec_CONDITION_UNSPECIFIED SearchRequest_QueryExpansionSpec_Condition = 0 |
| // Disabled query expansion. Only the exact search query is used, even if |
| // [SearchResponse.total_size][google.cloud.discoveryengine.v1.SearchResponse.total_size] |
| // is zero. |
| SearchRequest_QueryExpansionSpec_DISABLED SearchRequest_QueryExpansionSpec_Condition = 1 |
| // Automatic query expansion built by the Search API. |
| SearchRequest_QueryExpansionSpec_AUTO SearchRequest_QueryExpansionSpec_Condition = 2 |
| ) |
| |
| // Enum value maps for SearchRequest_QueryExpansionSpec_Condition. |
| var ( |
| SearchRequest_QueryExpansionSpec_Condition_name = map[int32]string{ |
| 0: "CONDITION_UNSPECIFIED", |
| 1: "DISABLED", |
| 2: "AUTO", |
| } |
| SearchRequest_QueryExpansionSpec_Condition_value = map[string]int32{ |
| "CONDITION_UNSPECIFIED": 0, |
| "DISABLED": 1, |
| "AUTO": 2, |
| } |
| ) |
| |
| func (x SearchRequest_QueryExpansionSpec_Condition) Enum() *SearchRequest_QueryExpansionSpec_Condition { |
| p := new(SearchRequest_QueryExpansionSpec_Condition) |
| *p = x |
| return p |
| } |
| |
| func (x SearchRequest_QueryExpansionSpec_Condition) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (SearchRequest_QueryExpansionSpec_Condition) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_enumTypes[0].Descriptor() |
| } |
| |
| func (SearchRequest_QueryExpansionSpec_Condition) Type() protoreflect.EnumType { |
| return &file_google_cloud_discoveryengine_v1_search_service_proto_enumTypes[0] |
| } |
| |
| func (x SearchRequest_QueryExpansionSpec_Condition) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use SearchRequest_QueryExpansionSpec_Condition.Descriptor instead. |
| func (SearchRequest_QueryExpansionSpec_Condition) EnumDescriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{0, 4, 0} |
| } |
| |
| // Enum describing under which mode spell correction should occur. |
| type SearchRequest_SpellCorrectionSpec_Mode int32 |
| |
| const ( |
| // Unspecified spell correction mode. In this case, server behavior |
| // defaults to |
| // [Mode.AUTO][google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. |
| SearchRequest_SpellCorrectionSpec_MODE_UNSPECIFIED SearchRequest_SpellCorrectionSpec_Mode = 0 |
| // Search API will try to find a spell suggestion if there |
| // is any and put in the |
| // [SearchResponse.corrected_query][google.cloud.discoveryengine.v1.SearchResponse.corrected_query]. |
| // The spell suggestion will not be used as the search query. |
| SearchRequest_SpellCorrectionSpec_SUGGESTION_ONLY SearchRequest_SpellCorrectionSpec_Mode = 1 |
| // Automatic spell correction built by the Search API. Search will |
| // be based on the corrected query if found. |
| SearchRequest_SpellCorrectionSpec_AUTO SearchRequest_SpellCorrectionSpec_Mode = 2 |
| ) |
| |
| // Enum value maps for SearchRequest_SpellCorrectionSpec_Mode. |
| var ( |
| SearchRequest_SpellCorrectionSpec_Mode_name = map[int32]string{ |
| 0: "MODE_UNSPECIFIED", |
| 1: "SUGGESTION_ONLY", |
| 2: "AUTO", |
| } |
| SearchRequest_SpellCorrectionSpec_Mode_value = map[string]int32{ |
| "MODE_UNSPECIFIED": 0, |
| "SUGGESTION_ONLY": 1, |
| "AUTO": 2, |
| } |
| ) |
| |
| func (x SearchRequest_SpellCorrectionSpec_Mode) Enum() *SearchRequest_SpellCorrectionSpec_Mode { |
| p := new(SearchRequest_SpellCorrectionSpec_Mode) |
| *p = x |
| return p |
| } |
| |
| func (x SearchRequest_SpellCorrectionSpec_Mode) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (SearchRequest_SpellCorrectionSpec_Mode) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_enumTypes[1].Descriptor() |
| } |
| |
| func (SearchRequest_SpellCorrectionSpec_Mode) Type() protoreflect.EnumType { |
| return &file_google_cloud_discoveryengine_v1_search_service_proto_enumTypes[1] |
| } |
| |
| func (x SearchRequest_SpellCorrectionSpec_Mode) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use SearchRequest_SpellCorrectionSpec_Mode.Descriptor instead. |
| func (SearchRequest_SpellCorrectionSpec_Mode) EnumDescriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{0, 5, 0} |
| } |
| |
| // An Enum for summary-skipped reasons. |
| type SearchResponse_Summary_SummarySkippedReason int32 |
| |
| const ( |
| // Default value. The summary skipped reason is not specified. |
| SearchResponse_Summary_SUMMARY_SKIPPED_REASON_UNSPECIFIED SearchResponse_Summary_SummarySkippedReason = 0 |
| // The adversarial query ignored case. |
| // |
| // Only populated when |
| // [SummarySpec.ignore_adversarial_query][google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.ignore_adversarial_query] |
| // is set to `true`. |
| SearchResponse_Summary_ADVERSARIAL_QUERY_IGNORED SearchResponse_Summary_SummarySkippedReason = 1 |
| // The non-summary seeking query ignored case. |
| // |
| // Only populated when |
| // [SummarySpec.ignore_non_summary_seeking_query][google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.ignore_non_summary_seeking_query] |
| // is set to `true`. |
| SearchResponse_Summary_NON_SUMMARY_SEEKING_QUERY_IGNORED SearchResponse_Summary_SummarySkippedReason = 2 |
| // The out-of-domain query ignored case. |
| // |
| // Google skips the summary if there are no high-relevance search results. |
| // For example, the data store contains facts about company A but the |
| // user query is asking questions about company B. |
| SearchResponse_Summary_OUT_OF_DOMAIN_QUERY_IGNORED SearchResponse_Summary_SummarySkippedReason = 3 |
| // The potential policy violation case. |
| // |
| // Google skips the summary if there is a potential policy violation |
| // detected. This includes content that may be violent or toxic. |
| SearchResponse_Summary_POTENTIAL_POLICY_VIOLATION SearchResponse_Summary_SummarySkippedReason = 4 |
| // The LLM addon not enabled case. |
| // |
| // Google skips the summary if the LLM addon is not enabled. |
| SearchResponse_Summary_LLM_ADDON_NOT_ENABLED SearchResponse_Summary_SummarySkippedReason = 5 |
| ) |
| |
| // Enum value maps for SearchResponse_Summary_SummarySkippedReason. |
| var ( |
| SearchResponse_Summary_SummarySkippedReason_name = map[int32]string{ |
| 0: "SUMMARY_SKIPPED_REASON_UNSPECIFIED", |
| 1: "ADVERSARIAL_QUERY_IGNORED", |
| 2: "NON_SUMMARY_SEEKING_QUERY_IGNORED", |
| 3: "OUT_OF_DOMAIN_QUERY_IGNORED", |
| 4: "POTENTIAL_POLICY_VIOLATION", |
| 5: "LLM_ADDON_NOT_ENABLED", |
| } |
| SearchResponse_Summary_SummarySkippedReason_value = map[string]int32{ |
| "SUMMARY_SKIPPED_REASON_UNSPECIFIED": 0, |
| "ADVERSARIAL_QUERY_IGNORED": 1, |
| "NON_SUMMARY_SEEKING_QUERY_IGNORED": 2, |
| "OUT_OF_DOMAIN_QUERY_IGNORED": 3, |
| "POTENTIAL_POLICY_VIOLATION": 4, |
| "LLM_ADDON_NOT_ENABLED": 5, |
| } |
| ) |
| |
| func (x SearchResponse_Summary_SummarySkippedReason) Enum() *SearchResponse_Summary_SummarySkippedReason { |
| p := new(SearchResponse_Summary_SummarySkippedReason) |
| *p = x |
| return p |
| } |
| |
| func (x SearchResponse_Summary_SummarySkippedReason) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (SearchResponse_Summary_SummarySkippedReason) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_enumTypes[2].Descriptor() |
| } |
| |
| func (SearchResponse_Summary_SummarySkippedReason) Type() protoreflect.EnumType { |
| return &file_google_cloud_discoveryengine_v1_search_service_proto_enumTypes[2] |
| } |
| |
| func (x SearchResponse_Summary_SummarySkippedReason) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use SearchResponse_Summary_SummarySkippedReason.Descriptor instead. |
| func (SearchResponse_Summary_SummarySkippedReason) EnumDescriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{1, 2, 0} |
| } |
| |
| // Request message for |
| // [SearchService.Search][google.cloud.discoveryengine.v1.SearchService.Search] |
| // method. |
| type SearchRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The resource name of the Search serving config, such as |
| // `projects/*/locations/global/collections/default_collection/engines/*/servingConfigs/default_serving_config`, |
| // or |
| // `projects/*/locations/global/collections/default_collection/dataStores/default_data_store/servingConfigs/default_serving_config`. |
| // This field is used to identify the serving configuration name, set |
| // of models used to make the search. |
| ServingConfig string `protobuf:"bytes,1,opt,name=serving_config,json=servingConfig,proto3" json:"serving_config,omitempty"` |
| // The branch resource name, such as |
| // `projects/*/locations/global/collections/default_collection/dataStores/default_data_store/branches/0`. |
| // |
| // Use `default_branch` as the branch ID or leave this field empty, to search |
| // documents under the default branch. |
| Branch string `protobuf:"bytes,2,opt,name=branch,proto3" json:"branch,omitempty"` |
| // Raw search query. |
| Query string `protobuf:"bytes,3,opt,name=query,proto3" json:"query,omitempty"` |
| // Raw image query. |
| ImageQuery *SearchRequest_ImageQuery `protobuf:"bytes,19,opt,name=image_query,json=imageQuery,proto3" json:"image_query,omitempty"` |
| // Maximum number of [Document][google.cloud.discoveryengine.v1.Document]s to |
| // return. The maximum allowed value depends on the data type. Values above |
| // the maximum value are coerced to the maximum value. |
| // |
| // * Websites with basic indexing: Default `10`, Maximum `25`. |
| // * Websites with advanced indexing: Default `25`, Maximum `50`. |
| // * Other: Default `50`, Maximum `100`. |
| // |
| // If this field is negative, an `INVALID_ARGUMENT` is returned. |
| PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` |
| // A page token received from a previous |
| // [SearchService.Search][google.cloud.discoveryengine.v1.SearchService.Search] |
| // call. Provide this to retrieve the subsequent page. |
| // |
| // When paginating, all other parameters provided to |
| // [SearchService.Search][google.cloud.discoveryengine.v1.SearchService.Search] |
| // must match the call that provided the page token. Otherwise, an |
| // |
| // `INVALID_ARGUMENT` error is returned. |
| PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` |
| // A 0-indexed integer that specifies the current offset (that is, starting |
| // result location, amongst the |
| // [Document][google.cloud.discoveryengine.v1.Document]s deemed by the API as |
| // relevant) in search results. This field is only considered if |
| // [page_token][google.cloud.discoveryengine.v1.SearchRequest.page_token] is |
| // unset. |
| // |
| // If this field is negative, an `INVALID_ARGUMENT` is returned. |
| Offset int32 `protobuf:"varint,6,opt,name=offset,proto3" json:"offset,omitempty"` |
| // A list of data store specs to apply on a search call. |
| DataStoreSpecs []*SearchRequest_DataStoreSpec `protobuf:"bytes,32,rep,name=data_store_specs,json=dataStoreSpecs,proto3" json:"data_store_specs,omitempty"` |
| // The filter syntax consists of an expression language for constructing a |
| // predicate from one or more fields of the documents being filtered. Filter |
| // expression is case-sensitive. |
| // |
| // If this field is unrecognizable, an `INVALID_ARGUMENT` is returned. |
| // |
| // Filtering in Vertex AI Search is done by mapping the LHS filter key to a |
| // key property defined in the Vertex AI Search backend -- this mapping is |
| // defined by the customer in their schema. For example a media customer might |
| // have a field 'name' in their schema. In this case the filter would look |
| // like this: filter --> name:'ANY("king kong")' |
| // |
| // For more information about filtering including syntax and filter |
| // operators, see |
| // [Filter](https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata) |
| Filter string `protobuf:"bytes,7,opt,name=filter,proto3" json:"filter,omitempty"` |
| // The default filter that is applied when a user performs a search without |
| // checking any filters on the search page. |
| // |
| // The filter applied to every search request when quality improvement such as |
| // query expansion is needed. In the case a query does not have a sufficient |
| // amount of results this filter will be used to determine whether or not to |
| // enable the query expansion flow. The original filter will still be used for |
| // the query expanded search. |
| // This field is strongly recommended to achieve high search quality. |
| // |
| // For more information about filter syntax, see |
| // [SearchRequest.filter][google.cloud.discoveryengine.v1.SearchRequest.filter]. |
| CanonicalFilter string `protobuf:"bytes,29,opt,name=canonical_filter,json=canonicalFilter,proto3" json:"canonical_filter,omitempty"` |
| // The order in which documents are returned. Documents can be ordered by |
| // a field in an [Document][google.cloud.discoveryengine.v1.Document] object. |
| // Leave it unset if ordered by relevance. `order_by` expression is |
| // case-sensitive. For more information on ordering, see |
| // [Ordering](https://cloud.google.com/retail/docs/filter-and-order#order) |
| // |
| // If this field is unrecognizable, an `INVALID_ARGUMENT` is returned. |
| OrderBy string `protobuf:"bytes,8,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` |
| // Information about the end user. |
| // Highly recommended for analytics. |
| // [UserInfo.user_agent][google.cloud.discoveryengine.v1.UserInfo.user_agent] |
| // is used to deduce `device_type` for analytics. |
| UserInfo *UserInfo `protobuf:"bytes,21,opt,name=user_info,json=userInfo,proto3" json:"user_info,omitempty"` |
| // Facet specifications for faceted search. If empty, no facets are returned. |
| // |
| // A maximum of 100 values are allowed. Otherwise, an `INVALID_ARGUMENT` |
| // error is returned. |
| FacetSpecs []*SearchRequest_FacetSpec `protobuf:"bytes,9,rep,name=facet_specs,json=facetSpecs,proto3" json:"facet_specs,omitempty"` |
| // Boost specification to boost certain documents. |
| // For more information on boosting, see |
| // [Boosting](https://cloud.google.com/retail/docs/boosting#boost) |
| BoostSpec *SearchRequest_BoostSpec `protobuf:"bytes,10,opt,name=boost_spec,json=boostSpec,proto3" json:"boost_spec,omitempty"` |
| // Additional search parameters. |
| // |
| // For public website search only, supported values are: |
| // |
| // - `user_country_code`: string. Default empty. If set to non-empty, results |
| // are restricted or boosted based on the location provided. |
| // Example: |
| // user_country_code: "au" |
| // |
| // For available codes see [Country |
| // Codes](https://developers.google.com/custom-search/docs/json_api_reference#countryCodes) |
| // |
| // - `search_type`: double. Default empty. Enables non-webpage searching |
| // depending on the value. The only valid non-default value is 1, |
| // which enables image searching. |
| // Example: |
| // search_type: 1 |
| Params map[string]*structpb.Value `protobuf:"bytes,11,rep,name=params,proto3" json:"params,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // The query expansion specification that specifies the conditions under which |
| // query expansion occurs. |
| QueryExpansionSpec *SearchRequest_QueryExpansionSpec `protobuf:"bytes,13,opt,name=query_expansion_spec,json=queryExpansionSpec,proto3" json:"query_expansion_spec,omitempty"` |
| // The spell correction specification that specifies the mode under |
| // which spell correction takes effect. |
| SpellCorrectionSpec *SearchRequest_SpellCorrectionSpec `protobuf:"bytes,14,opt,name=spell_correction_spec,json=spellCorrectionSpec,proto3" json:"spell_correction_spec,omitempty"` |
| // A unique identifier for tracking visitors. For example, this could be |
| // implemented with an HTTP cookie, which should be able to uniquely identify |
| // a visitor on a single device. This unique identifier should not change if |
| // the visitor logs in or out of the website. |
| // |
| // This field should NOT have a fixed value such as `unknown_visitor`. |
| // |
| // This should be the same identifier as |
| // [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1.UserEvent.user_pseudo_id] |
| // and |
| // [CompleteQueryRequest.user_pseudo_id][google.cloud.discoveryengine.v1.CompleteQueryRequest.user_pseudo_id] |
| // |
| // The field must be a UTF-8 encoded string with a length limit of 128 |
| // characters. Otherwise, an `INVALID_ARGUMENT` error is returned. |
| UserPseudoId string `protobuf:"bytes,15,opt,name=user_pseudo_id,json=userPseudoId,proto3" json:"user_pseudo_id,omitempty"` |
| // A specification for configuring the behavior of content search. |
| ContentSearchSpec *SearchRequest_ContentSearchSpec `protobuf:"bytes,24,opt,name=content_search_spec,json=contentSearchSpec,proto3" json:"content_search_spec,omitempty"` |
| // Whether to turn on safe search. This is only supported for |
| // website search. |
| SafeSearch bool `protobuf:"varint,20,opt,name=safe_search,json=safeSearch,proto3" json:"safe_search,omitempty"` |
| // The user labels applied to a resource must meet the following requirements: |
| // |
| // - Each resource can have multiple labels, up to a maximum of 64. |
| // - Each label must be a key-value pair. |
| // - Keys have a minimum length of 1 character and a maximum length of 63 |
| // characters and cannot be empty. Values can be empty and have a maximum |
| // length of 63 characters. |
| // - Keys and values can contain only lowercase letters, numeric characters, |
| // underscores, and dashes. All characters must use UTF-8 encoding, and |
| // international characters are allowed. |
| // - The key portion of a label must be unique. However, you can use the same |
| // key with multiple resources. |
| // - Keys must start with a lowercase letter or international character. |
| // |
| // See [Google Cloud |
| // Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) |
| // for more details. |
| UserLabels map[string]string `protobuf:"bytes,22,rep,name=user_labels,json=userLabels,proto3" json:"user_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| } |
| |
| func (x *SearchRequest) Reset() { |
| *x = SearchRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[0] |
| 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_discoveryengine_v1_search_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 SearchRequest.ProtoReflect.Descriptor instead. |
| func (*SearchRequest) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{0} |
| } |
| |
| func (x *SearchRequest) GetServingConfig() string { |
| if x != nil { |
| return x.ServingConfig |
| } |
| return "" |
| } |
| |
| func (x *SearchRequest) GetBranch() string { |
| if x != nil { |
| return x.Branch |
| } |
| return "" |
| } |
| |
| func (x *SearchRequest) GetQuery() string { |
| if x != nil { |
| return x.Query |
| } |
| return "" |
| } |
| |
| func (x *SearchRequest) GetImageQuery() *SearchRequest_ImageQuery { |
| if x != nil { |
| return x.ImageQuery |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest) GetPageSize() int32 { |
| if x != nil { |
| return x.PageSize |
| } |
| return 0 |
| } |
| |
| func (x *SearchRequest) GetPageToken() string { |
| if x != nil { |
| return x.PageToken |
| } |
| return "" |
| } |
| |
| func (x *SearchRequest) GetOffset() int32 { |
| if x != nil { |
| return x.Offset |
| } |
| return 0 |
| } |
| |
| func (x *SearchRequest) GetDataStoreSpecs() []*SearchRequest_DataStoreSpec { |
| if x != nil { |
| return x.DataStoreSpecs |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest) GetFilter() string { |
| if x != nil { |
| return x.Filter |
| } |
| return "" |
| } |
| |
| func (x *SearchRequest) GetCanonicalFilter() string { |
| if x != nil { |
| return x.CanonicalFilter |
| } |
| return "" |
| } |
| |
| func (x *SearchRequest) GetOrderBy() string { |
| if x != nil { |
| return x.OrderBy |
| } |
| return "" |
| } |
| |
| func (x *SearchRequest) GetUserInfo() *UserInfo { |
| if x != nil { |
| return x.UserInfo |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest) GetFacetSpecs() []*SearchRequest_FacetSpec { |
| if x != nil { |
| return x.FacetSpecs |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest) GetBoostSpec() *SearchRequest_BoostSpec { |
| if x != nil { |
| return x.BoostSpec |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest) GetParams() map[string]*structpb.Value { |
| if x != nil { |
| return x.Params |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest) GetQueryExpansionSpec() *SearchRequest_QueryExpansionSpec { |
| if x != nil { |
| return x.QueryExpansionSpec |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest) GetSpellCorrectionSpec() *SearchRequest_SpellCorrectionSpec { |
| if x != nil { |
| return x.SpellCorrectionSpec |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest) GetUserPseudoId() string { |
| if x != nil { |
| return x.UserPseudoId |
| } |
| return "" |
| } |
| |
| func (x *SearchRequest) GetContentSearchSpec() *SearchRequest_ContentSearchSpec { |
| if x != nil { |
| return x.ContentSearchSpec |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest) GetSafeSearch() bool { |
| if x != nil { |
| return x.SafeSearch |
| } |
| return false |
| } |
| |
| func (x *SearchRequest) GetUserLabels() map[string]string { |
| if x != nil { |
| return x.UserLabels |
| } |
| return nil |
| } |
| |
| // Response message for |
| // [SearchService.Search][google.cloud.discoveryengine.v1.SearchService.Search] |
| // method. |
| type SearchResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // A list of matched documents. The order represents the ranking. |
| Results []*SearchResponse_SearchResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` |
| // Results of facets requested by user. |
| Facets []*SearchResponse_Facet `protobuf:"bytes,2,rep,name=facets,proto3" json:"facets,omitempty"` |
| // The estimated total count of matched items irrespective of pagination. The |
| // count of [results][google.cloud.discoveryengine.v1.SearchResponse.results] |
| // returned by pagination may be less than the |
| // [total_size][google.cloud.discoveryengine.v1.SearchResponse.total_size] |
| // that matches. |
| TotalSize int32 `protobuf:"varint,3,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"` |
| // A unique search token. This should be included in the |
| // [UserEvent][google.cloud.discoveryengine.v1.UserEvent] logs resulting from |
| // this search, which enables accurate attribution of search model |
| // performance. |
| AttributionToken string `protobuf:"bytes,4,opt,name=attribution_token,json=attributionToken,proto3" json:"attribution_token,omitempty"` |
| // The URI of a customer-defined redirect page. If redirect action is |
| // triggered, no search is performed, and only |
| // [redirect_uri][google.cloud.discoveryengine.v1.SearchResponse.redirect_uri] |
| // and |
| // [attribution_token][google.cloud.discoveryengine.v1.SearchResponse.attribution_token] |
| // are set in the response. |
| RedirectUri string `protobuf:"bytes,12,opt,name=redirect_uri,json=redirectUri,proto3" json:"redirect_uri,omitempty"` |
| // A token that can be sent as |
| // [SearchRequest.page_token][google.cloud.discoveryengine.v1.SearchRequest.page_token] |
| // to retrieve the next page. If this field is omitted, there are no |
| // subsequent pages. |
| NextPageToken string `protobuf:"bytes,5,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` |
| // Contains the spell corrected query, if found. If the spell correction type |
| // is AUTOMATIC, then the search results are based on corrected_query. |
| // Otherwise the original query is used for search. |
| CorrectedQuery string `protobuf:"bytes,7,opt,name=corrected_query,json=correctedQuery,proto3" json:"corrected_query,omitempty"` |
| // A summary as part of the search results. |
| // This field is only returned if |
| // [SearchRequest.ContentSearchSpec.summary_spec][google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.summary_spec] |
| // is set. |
| Summary *SearchResponse_Summary `protobuf:"bytes,9,opt,name=summary,proto3" json:"summary,omitempty"` |
| // Query expansion information for the returned results. |
| QueryExpansionInfo *SearchResponse_QueryExpansionInfo `protobuf:"bytes,14,opt,name=query_expansion_info,json=queryExpansionInfo,proto3" json:"query_expansion_info,omitempty"` |
| } |
| |
| func (x *SearchResponse) Reset() { |
| *x = SearchResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[1] |
| 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_discoveryengine_v1_search_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 SearchResponse.ProtoReflect.Descriptor instead. |
| func (*SearchResponse) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{1} |
| } |
| |
| func (x *SearchResponse) GetResults() []*SearchResponse_SearchResult { |
| if x != nil { |
| return x.Results |
| } |
| return nil |
| } |
| |
| func (x *SearchResponse) GetFacets() []*SearchResponse_Facet { |
| if x != nil { |
| return x.Facets |
| } |
| return nil |
| } |
| |
| func (x *SearchResponse) GetTotalSize() int32 { |
| if x != nil { |
| return x.TotalSize |
| } |
| return 0 |
| } |
| |
| func (x *SearchResponse) GetAttributionToken() string { |
| if x != nil { |
| return x.AttributionToken |
| } |
| return "" |
| } |
| |
| func (x *SearchResponse) GetRedirectUri() string { |
| if x != nil { |
| return x.RedirectUri |
| } |
| return "" |
| } |
| |
| func (x *SearchResponse) GetNextPageToken() string { |
| if x != nil { |
| return x.NextPageToken |
| } |
| return "" |
| } |
| |
| func (x *SearchResponse) GetCorrectedQuery() string { |
| if x != nil { |
| return x.CorrectedQuery |
| } |
| return "" |
| } |
| |
| func (x *SearchResponse) GetSummary() *SearchResponse_Summary { |
| if x != nil { |
| return x.Summary |
| } |
| return nil |
| } |
| |
| func (x *SearchResponse) GetQueryExpansionInfo() *SearchResponse_QueryExpansionInfo { |
| if x != nil { |
| return x.QueryExpansionInfo |
| } |
| return nil |
| } |
| |
| // Specifies the image query input. |
| type SearchRequest_ImageQuery struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Types that are assignable to Image: |
| // |
| // *SearchRequest_ImageQuery_ImageBytes |
| Image isSearchRequest_ImageQuery_Image `protobuf_oneof:"image"` |
| } |
| |
| func (x *SearchRequest_ImageQuery) Reset() { |
| *x = SearchRequest_ImageQuery{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[2] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchRequest_ImageQuery) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchRequest_ImageQuery) ProtoMessage() {} |
| |
| func (x *SearchRequest_ImageQuery) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchRequest_ImageQuery.ProtoReflect.Descriptor instead. |
| func (*SearchRequest_ImageQuery) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{0, 0} |
| } |
| |
| func (m *SearchRequest_ImageQuery) GetImage() isSearchRequest_ImageQuery_Image { |
| if m != nil { |
| return m.Image |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest_ImageQuery) GetImageBytes() string { |
| if x, ok := x.GetImage().(*SearchRequest_ImageQuery_ImageBytes); ok { |
| return x.ImageBytes |
| } |
| return "" |
| } |
| |
| type isSearchRequest_ImageQuery_Image interface { |
| isSearchRequest_ImageQuery_Image() |
| } |
| |
| type SearchRequest_ImageQuery_ImageBytes struct { |
| // Base64 encoded image bytes. Supported image formats: JPEG, PNG, and |
| // BMP. |
| ImageBytes string `protobuf:"bytes,1,opt,name=image_bytes,json=imageBytes,proto3,oneof"` |
| } |
| |
| func (*SearchRequest_ImageQuery_ImageBytes) isSearchRequest_ImageQuery_Image() {} |
| |
| // A struct to define data stores to filter on in a search call. |
| type SearchRequest_DataStoreSpec struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Full resource name of |
| // [DataStore][google.cloud.discoveryengine.v1.DataStore], such as |
| // `projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}`. |
| DataStore string `protobuf:"bytes,1,opt,name=data_store,json=dataStore,proto3" json:"data_store,omitempty"` |
| } |
| |
| func (x *SearchRequest_DataStoreSpec) Reset() { |
| *x = SearchRequest_DataStoreSpec{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[3] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchRequest_DataStoreSpec) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchRequest_DataStoreSpec) ProtoMessage() {} |
| |
| func (x *SearchRequest_DataStoreSpec) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchRequest_DataStoreSpec.ProtoReflect.Descriptor instead. |
| func (*SearchRequest_DataStoreSpec) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{0, 1} |
| } |
| |
| func (x *SearchRequest_DataStoreSpec) GetDataStore() string { |
| if x != nil { |
| return x.DataStore |
| } |
| return "" |
| } |
| |
| // A facet specification to perform faceted search. |
| type SearchRequest_FacetSpec struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The facet key specification. |
| FacetKey *SearchRequest_FacetSpec_FacetKey `protobuf:"bytes,1,opt,name=facet_key,json=facetKey,proto3" json:"facet_key,omitempty"` |
| // Maximum of facet values that should be returned for this facet. If |
| // unspecified, defaults to 20. The maximum allowed value is 300. Values |
| // above 300 are coerced to 300. |
| // |
| // If this field is negative, an `INVALID_ARGUMENT` is returned. |
| Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` |
| // List of keys to exclude when faceting. |
| // |
| // By default, |
| // [FacetKey.key][google.cloud.discoveryengine.v1.SearchRequest.FacetSpec.FacetKey.key] |
| // is not excluded from the filter unless it is listed in this field. |
| // |
| // Listing a facet key in this field allows its values to appear as facet |
| // results, even when they are filtered out of search results. Using this |
| // field does not affect what search results are returned. |
| // |
| // For example, suppose there are 100 documents with the color facet "Red" |
| // and 200 documents with the color facet "Blue". A query containing the |
| // filter "color:ANY("Red")" and having "color" as |
| // [FacetKey.key][google.cloud.discoveryengine.v1.SearchRequest.FacetSpec.FacetKey.key] |
| // would by default return only "Red" documents in the search results, and |
| // also return "Red" with count 100 as the only color facet. Although there |
| // are also blue documents available, "Blue" would not be shown as an |
| // available facet value. |
| // |
| // If "color" is listed in "excludedFilterKeys", then the query returns the |
| // facet values "Red" with count 100 and "Blue" with count 200, because the |
| // "color" key is now excluded from the filter. Because this field doesn't |
| // affect search results, the search results are still correctly filtered to |
| // return only "Red" documents. |
| // |
| // A maximum of 100 values are allowed. Otherwise, an `INVALID_ARGUMENT` |
| // error is returned. |
| ExcludedFilterKeys []string `protobuf:"bytes,3,rep,name=excluded_filter_keys,json=excludedFilterKeys,proto3" json:"excluded_filter_keys,omitempty"` |
| // Enables dynamic position for this facet. If set to true, the position of |
| // this facet among all facets in the response is determined automatically. |
| // If dynamic facets are enabled, it is ordered together. |
| // If set to false, the position of this facet in the |
| // response is the same as in the request, and it is ranked before |
| // the facets with dynamic position enable and all dynamic facets. |
| // |
| // For example, you may always want to have rating facet returned in |
| // the response, but it's not necessarily to always display the rating facet |
| // at the top. In that case, you can set enable_dynamic_position to true so |
| // that the position of rating facet in response is determined |
| // automatically. |
| // |
| // Another example, assuming you have the following facets in the request: |
| // |
| // * "rating", enable_dynamic_position = true |
| // |
| // * "price", enable_dynamic_position = false |
| // |
| // * "brands", enable_dynamic_position = false |
| // |
| // And also you have a dynamic facets enabled, which generates a facet |
| // `gender`. Then the final order of the facets in the response can be |
| // ("price", "brands", "rating", "gender") or ("price", "brands", "gender", |
| // "rating") depends on how API orders "gender" and "rating" facets. |
| // However, notice that "price" and "brands" are always |
| // ranked at first and second position because their enable_dynamic_position |
| // is false. |
| EnableDynamicPosition bool `protobuf:"varint,4,opt,name=enable_dynamic_position,json=enableDynamicPosition,proto3" json:"enable_dynamic_position,omitempty"` |
| } |
| |
| func (x *SearchRequest_FacetSpec) Reset() { |
| *x = SearchRequest_FacetSpec{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[4] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchRequest_FacetSpec) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchRequest_FacetSpec) ProtoMessage() {} |
| |
| func (x *SearchRequest_FacetSpec) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchRequest_FacetSpec.ProtoReflect.Descriptor instead. |
| func (*SearchRequest_FacetSpec) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{0, 2} |
| } |
| |
| func (x *SearchRequest_FacetSpec) GetFacetKey() *SearchRequest_FacetSpec_FacetKey { |
| if x != nil { |
| return x.FacetKey |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest_FacetSpec) GetLimit() int32 { |
| if x != nil { |
| return x.Limit |
| } |
| return 0 |
| } |
| |
| func (x *SearchRequest_FacetSpec) GetExcludedFilterKeys() []string { |
| if x != nil { |
| return x.ExcludedFilterKeys |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest_FacetSpec) GetEnableDynamicPosition() bool { |
| if x != nil { |
| return x.EnableDynamicPosition |
| } |
| return false |
| } |
| |
| // Boost specification to boost certain documents. |
| type SearchRequest_BoostSpec struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Condition boost specifications. If a document matches multiple conditions |
| // in the specifictions, boost scores from these specifications are all |
| // applied and combined in a non-linear way. Maximum number of |
| // specifications is 20. |
| ConditionBoostSpecs []*SearchRequest_BoostSpec_ConditionBoostSpec `protobuf:"bytes,1,rep,name=condition_boost_specs,json=conditionBoostSpecs,proto3" json:"condition_boost_specs,omitempty"` |
| } |
| |
| func (x *SearchRequest_BoostSpec) Reset() { |
| *x = SearchRequest_BoostSpec{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[5] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchRequest_BoostSpec) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchRequest_BoostSpec) ProtoMessage() {} |
| |
| func (x *SearchRequest_BoostSpec) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchRequest_BoostSpec.ProtoReflect.Descriptor instead. |
| func (*SearchRequest_BoostSpec) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{0, 3} |
| } |
| |
| func (x *SearchRequest_BoostSpec) GetConditionBoostSpecs() []*SearchRequest_BoostSpec_ConditionBoostSpec { |
| if x != nil { |
| return x.ConditionBoostSpecs |
| } |
| return nil |
| } |
| |
| // Specification to determine under which conditions query expansion should |
| // occur. |
| type SearchRequest_QueryExpansionSpec struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The condition under which query expansion should occur. Default to |
| // [Condition.DISABLED][google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec.Condition.DISABLED]. |
| Condition SearchRequest_QueryExpansionSpec_Condition `protobuf:"varint,1,opt,name=condition,proto3,enum=google.cloud.discoveryengine.v1.SearchRequest_QueryExpansionSpec_Condition" json:"condition,omitempty"` |
| // Whether to pin unexpanded results. If this field is set to true, |
| // unexpanded products are always at the top of the search results, followed |
| // by the expanded results. |
| PinUnexpandedResults bool `protobuf:"varint,2,opt,name=pin_unexpanded_results,json=pinUnexpandedResults,proto3" json:"pin_unexpanded_results,omitempty"` |
| } |
| |
| func (x *SearchRequest_QueryExpansionSpec) Reset() { |
| *x = SearchRequest_QueryExpansionSpec{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[6] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchRequest_QueryExpansionSpec) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchRequest_QueryExpansionSpec) ProtoMessage() {} |
| |
| func (x *SearchRequest_QueryExpansionSpec) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchRequest_QueryExpansionSpec.ProtoReflect.Descriptor instead. |
| func (*SearchRequest_QueryExpansionSpec) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{0, 4} |
| } |
| |
| func (x *SearchRequest_QueryExpansionSpec) GetCondition() SearchRequest_QueryExpansionSpec_Condition { |
| if x != nil { |
| return x.Condition |
| } |
| return SearchRequest_QueryExpansionSpec_CONDITION_UNSPECIFIED |
| } |
| |
| func (x *SearchRequest_QueryExpansionSpec) GetPinUnexpandedResults() bool { |
| if x != nil { |
| return x.PinUnexpandedResults |
| } |
| return false |
| } |
| |
| // The specification for query spell correction. |
| type SearchRequest_SpellCorrectionSpec struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The mode under which spell correction should take effect to |
| // replace the original search query. Default to |
| // [Mode.AUTO][google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec.Mode.AUTO]. |
| Mode SearchRequest_SpellCorrectionSpec_Mode `protobuf:"varint,1,opt,name=mode,proto3,enum=google.cloud.discoveryengine.v1.SearchRequest_SpellCorrectionSpec_Mode" json:"mode,omitempty"` |
| } |
| |
| func (x *SearchRequest_SpellCorrectionSpec) Reset() { |
| *x = SearchRequest_SpellCorrectionSpec{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[7] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchRequest_SpellCorrectionSpec) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchRequest_SpellCorrectionSpec) ProtoMessage() {} |
| |
| func (x *SearchRequest_SpellCorrectionSpec) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchRequest_SpellCorrectionSpec.ProtoReflect.Descriptor instead. |
| func (*SearchRequest_SpellCorrectionSpec) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{0, 5} |
| } |
| |
| func (x *SearchRequest_SpellCorrectionSpec) GetMode() SearchRequest_SpellCorrectionSpec_Mode { |
| if x != nil { |
| return x.Mode |
| } |
| return SearchRequest_SpellCorrectionSpec_MODE_UNSPECIFIED |
| } |
| |
| // A specification for configuring the behavior of content search. |
| type SearchRequest_ContentSearchSpec struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // If `snippetSpec` is not specified, snippets are not included in the |
| // search response. |
| SnippetSpec *SearchRequest_ContentSearchSpec_SnippetSpec `protobuf:"bytes,1,opt,name=snippet_spec,json=snippetSpec,proto3" json:"snippet_spec,omitempty"` |
| // If `summarySpec` is not specified, summaries are not included in the |
| // search response. |
| SummarySpec *SearchRequest_ContentSearchSpec_SummarySpec `protobuf:"bytes,2,opt,name=summary_spec,json=summarySpec,proto3" json:"summary_spec,omitempty"` |
| // If there is no extractive_content_spec provided, there will be no |
| // extractive answer in the search response. |
| ExtractiveContentSpec *SearchRequest_ContentSearchSpec_ExtractiveContentSpec `protobuf:"bytes,3,opt,name=extractive_content_spec,json=extractiveContentSpec,proto3" json:"extractive_content_spec,omitempty"` |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec) Reset() { |
| *x = SearchRequest_ContentSearchSpec{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[8] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchRequest_ContentSearchSpec) ProtoMessage() {} |
| |
| func (x *SearchRequest_ContentSearchSpec) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchRequest_ContentSearchSpec.ProtoReflect.Descriptor instead. |
| func (*SearchRequest_ContentSearchSpec) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{0, 6} |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec) GetSnippetSpec() *SearchRequest_ContentSearchSpec_SnippetSpec { |
| if x != nil { |
| return x.SnippetSpec |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec) GetSummarySpec() *SearchRequest_ContentSearchSpec_SummarySpec { |
| if x != nil { |
| return x.SummarySpec |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec) GetExtractiveContentSpec() *SearchRequest_ContentSearchSpec_ExtractiveContentSpec { |
| if x != nil { |
| return x.ExtractiveContentSpec |
| } |
| return nil |
| } |
| |
| // Specifies how a facet is computed. |
| type SearchRequest_FacetSpec_FacetKey struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Supported textual and numerical facet keys in |
| // [Document][google.cloud.discoveryengine.v1.Document] object, over which |
| // the facet values are computed. Facet key is case-sensitive. |
| Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` |
| // Set only if values should be bucketed into intervals. Must be set |
| // for facets with numerical values. Must not be set for facet with text |
| // values. Maximum number of intervals is 30. |
| Intervals []*Interval `protobuf:"bytes,2,rep,name=intervals,proto3" json:"intervals,omitempty"` |
| // Only get facet for the given restricted values. Only supported on |
| // textual fields. For example, suppose "category" has three values |
| // "Action > 2022", "Action > 2021" and "Sci-Fi > 2022". If set |
| // "restricted_values" to "Action > 2022", the "category" facet only |
| // contains "Action > 2022". Only supported on textual fields. Maximum |
| // is 10. |
| RestrictedValues []string `protobuf:"bytes,3,rep,name=restricted_values,json=restrictedValues,proto3" json:"restricted_values,omitempty"` |
| // Only get facet values that start with the given string prefix. For |
| // example, suppose "category" has three values "Action > 2022", |
| // "Action > 2021" and "Sci-Fi > 2022". If set "prefixes" to "Action", the |
| // "category" facet only contains "Action > 2022" and "Action > 2021". |
| // Only supported on textual fields. Maximum is 10. |
| Prefixes []string `protobuf:"bytes,4,rep,name=prefixes,proto3" json:"prefixes,omitempty"` |
| // Only get facet values that contains the given strings. For example, |
| // suppose "category" has three values "Action > 2022", |
| // "Action > 2021" and "Sci-Fi > 2022". If set "contains" to "2022", the |
| // "category" facet only contains "Action > 2022" and "Sci-Fi > 2022". |
| // Only supported on textual fields. Maximum is 10. |
| Contains []string `protobuf:"bytes,5,rep,name=contains,proto3" json:"contains,omitempty"` |
| // True to make facet keys case insensitive when getting faceting |
| // values with prefixes or contains; false otherwise. |
| CaseInsensitive bool `protobuf:"varint,6,opt,name=case_insensitive,json=caseInsensitive,proto3" json:"case_insensitive,omitempty"` |
| // The order in which documents are returned. |
| // |
| // Allowed values are: |
| // |
| // * "count desc", which means order by |
| // [SearchResponse.Facet.values.count][google.cloud.discoveryengine.v1.SearchResponse.Facet.FacetValue.count] |
| // descending. |
| // |
| // * "value desc", which means order by |
| // [SearchResponse.Facet.values.value][google.cloud.discoveryengine.v1.SearchResponse.Facet.FacetValue.value] |
| // descending. |
| // |
| // Only applies to textual facets. |
| // |
| // If not set, textual values are sorted in [natural |
| // order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical |
| // intervals are sorted in the order given by |
| // [FacetSpec.FacetKey.intervals][google.cloud.discoveryengine.v1.SearchRequest.FacetSpec.FacetKey.intervals]. |
| OrderBy string `protobuf:"bytes,7,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` |
| } |
| |
| func (x *SearchRequest_FacetSpec_FacetKey) Reset() { |
| *x = SearchRequest_FacetSpec_FacetKey{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[11] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchRequest_FacetSpec_FacetKey) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchRequest_FacetSpec_FacetKey) ProtoMessage() {} |
| |
| func (x *SearchRequest_FacetSpec_FacetKey) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchRequest_FacetSpec_FacetKey.ProtoReflect.Descriptor instead. |
| func (*SearchRequest_FacetSpec_FacetKey) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{0, 2, 0} |
| } |
| |
| func (x *SearchRequest_FacetSpec_FacetKey) GetKey() string { |
| if x != nil { |
| return x.Key |
| } |
| return "" |
| } |
| |
| func (x *SearchRequest_FacetSpec_FacetKey) GetIntervals() []*Interval { |
| if x != nil { |
| return x.Intervals |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest_FacetSpec_FacetKey) GetRestrictedValues() []string { |
| if x != nil { |
| return x.RestrictedValues |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest_FacetSpec_FacetKey) GetPrefixes() []string { |
| if x != nil { |
| return x.Prefixes |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest_FacetSpec_FacetKey) GetContains() []string { |
| if x != nil { |
| return x.Contains |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest_FacetSpec_FacetKey) GetCaseInsensitive() bool { |
| if x != nil { |
| return x.CaseInsensitive |
| } |
| return false |
| } |
| |
| func (x *SearchRequest_FacetSpec_FacetKey) GetOrderBy() string { |
| if x != nil { |
| return x.OrderBy |
| } |
| return "" |
| } |
| |
| // Boost applies to documents which match a condition. |
| type SearchRequest_BoostSpec_ConditionBoostSpec struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // An expression which specifies a boost condition. The syntax and |
| // supported fields are the same as a filter expression. See |
| // [SearchRequest.filter][google.cloud.discoveryengine.v1.SearchRequest.filter] |
| // for detail syntax and limitations. |
| // |
| // Examples: |
| // |
| // * To boost documents with document ID "doc_1" or "doc_2", and |
| // color "Red" or "Blue": |
| // `(document_id: ANY("doc_1", "doc_2")) AND (color: ANY("Red", "Blue"))` |
| Condition string `protobuf:"bytes,1,opt,name=condition,proto3" json:"condition,omitempty"` |
| // Strength of the condition boost, which should be in [-1, 1]. Negative |
| // boost means demotion. Default is 0.0. |
| // |
| // Setting to 1.0 gives the document a big promotion. However, it does |
| // not necessarily mean that the boosted document will be the top result |
| // at all times, nor that other documents will be excluded. Results |
| // could still be shown even when none of them matches the condition. |
| // And results that are significantly more relevant to the search query |
| // can still trump your heavily favored but irrelevant documents. |
| // |
| // Setting to -1.0 gives the document a big demotion. However, results |
| // that are deeply relevant might still be shown. The document will have |
| // an upstream battle to get a fairly high ranking, but it is not |
| // blocked out completely. |
| // |
| // Setting to 0.0 means no boost applied. The boosting condition is |
| // ignored. Only one of the (condition, boost) combination or the |
| // boost_control_spec below are set. If both are set then the global boost |
| // is ignored and the more fine-grained boost_control_spec is applied. |
| Boost float32 `protobuf:"fixed32,2,opt,name=boost,proto3" json:"boost,omitempty"` |
| } |
| |
| func (x *SearchRequest_BoostSpec_ConditionBoostSpec) Reset() { |
| *x = SearchRequest_BoostSpec_ConditionBoostSpec{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[12] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchRequest_BoostSpec_ConditionBoostSpec) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchRequest_BoostSpec_ConditionBoostSpec) ProtoMessage() {} |
| |
| func (x *SearchRequest_BoostSpec_ConditionBoostSpec) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchRequest_BoostSpec_ConditionBoostSpec.ProtoReflect.Descriptor instead. |
| func (*SearchRequest_BoostSpec_ConditionBoostSpec) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{0, 3, 0} |
| } |
| |
| func (x *SearchRequest_BoostSpec_ConditionBoostSpec) GetCondition() string { |
| if x != nil { |
| return x.Condition |
| } |
| return "" |
| } |
| |
| func (x *SearchRequest_BoostSpec_ConditionBoostSpec) GetBoost() float32 { |
| if x != nil { |
| return x.Boost |
| } |
| return 0 |
| } |
| |
| // A specification for configuring snippets in a search response. |
| type SearchRequest_ContentSearchSpec_SnippetSpec struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // [DEPRECATED] This field is deprecated. To control snippet return, use |
| // `return_snippet` field. For backwards compatibility, we will return |
| // snippet if max_snippet_count > 0. |
| // |
| // Deprecated: Marked as deprecated in google/cloud/discoveryengine/v1/search_service.proto. |
| MaxSnippetCount int32 `protobuf:"varint,1,opt,name=max_snippet_count,json=maxSnippetCount,proto3" json:"max_snippet_count,omitempty"` |
| // [DEPRECATED] This field is deprecated and will have no affect on the |
| // snippet. |
| // |
| // Deprecated: Marked as deprecated in google/cloud/discoveryengine/v1/search_service.proto. |
| ReferenceOnly bool `protobuf:"varint,2,opt,name=reference_only,json=referenceOnly,proto3" json:"reference_only,omitempty"` |
| // If `true`, then return snippet. If no snippet can be generated, we |
| // return "No snippet is available for this page." A `snippet_status` with |
| // `SUCCESS` or `NO_SNIPPET_AVAILABLE` will also be returned. |
| ReturnSnippet bool `protobuf:"varint,3,opt,name=return_snippet,json=returnSnippet,proto3" json:"return_snippet,omitempty"` |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SnippetSpec) Reset() { |
| *x = SearchRequest_ContentSearchSpec_SnippetSpec{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[13] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SnippetSpec) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchRequest_ContentSearchSpec_SnippetSpec) ProtoMessage() {} |
| |
| func (x *SearchRequest_ContentSearchSpec_SnippetSpec) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchRequest_ContentSearchSpec_SnippetSpec.ProtoReflect.Descriptor instead. |
| func (*SearchRequest_ContentSearchSpec_SnippetSpec) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{0, 6, 0} |
| } |
| |
| // Deprecated: Marked as deprecated in google/cloud/discoveryengine/v1/search_service.proto. |
| func (x *SearchRequest_ContentSearchSpec_SnippetSpec) GetMaxSnippetCount() int32 { |
| if x != nil { |
| return x.MaxSnippetCount |
| } |
| return 0 |
| } |
| |
| // Deprecated: Marked as deprecated in google/cloud/discoveryengine/v1/search_service.proto. |
| func (x *SearchRequest_ContentSearchSpec_SnippetSpec) GetReferenceOnly() bool { |
| if x != nil { |
| return x.ReferenceOnly |
| } |
| return false |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SnippetSpec) GetReturnSnippet() bool { |
| if x != nil { |
| return x.ReturnSnippet |
| } |
| return false |
| } |
| |
| // A specification for configuring a summary returned in a search |
| // response. |
| type SearchRequest_ContentSearchSpec_SummarySpec struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The number of top results to generate the summary from. If the number |
| // of results returned is less than `summaryResultCount`, the summary is |
| // generated from all of the results. |
| // |
| // At most 10 results for documents mode, or 50 for chunks mode, can be |
| // used to generate a summary. The chunks mode is used when |
| // [SearchRequest.ContentSearchSpec.search_result_mode][] is set to |
| // [CHUNKS][SearchRequest.ContentSearchSpec.SearchResultMode.CHUNKS]. |
| SummaryResultCount int32 `protobuf:"varint,1,opt,name=summary_result_count,json=summaryResultCount,proto3" json:"summary_result_count,omitempty"` |
| // Specifies whether to include citations in the summary. The default |
| // value is `false`. |
| // |
| // When this field is set to `true`, summaries include in-line citation |
| // numbers. |
| // |
| // Example summary including citations: |
| // |
| // BigQuery is Google Cloud's fully managed and completely serverless |
| // enterprise data warehouse [1]. BigQuery supports all data types, works |
| // across clouds, and has built-in machine learning and business |
| // intelligence, all within a unified platform [2, 3]. |
| // |
| // The citation numbers refer to the returned search results and are |
| // 1-indexed. For example, [1] means that the sentence is attributed to |
| // the first search result. [2, 3] means that the sentence is attributed |
| // to both the second and third search results. |
| IncludeCitations bool `protobuf:"varint,2,opt,name=include_citations,json=includeCitations,proto3" json:"include_citations,omitempty"` |
| // Specifies whether to filter out adversarial queries. The default value |
| // is `false`. |
| // |
| // Google employs search-query classification to detect adversarial |
| // queries. No summary is returned if the search query is classified as an |
| // adversarial query. For example, a user might ask a question regarding |
| // negative comments about the company or submit a query designed to |
| // generate unsafe, policy-violating output. If this field is set to |
| // `true`, we skip generating summaries for adversarial queries and return |
| // fallback messages instead. |
| IgnoreAdversarialQuery bool `protobuf:"varint,3,opt,name=ignore_adversarial_query,json=ignoreAdversarialQuery,proto3" json:"ignore_adversarial_query,omitempty"` |
| // Specifies whether to filter out queries that are not summary-seeking. |
| // The default value is `false`. |
| // |
| // Google employs search-query classification to detect summary-seeking |
| // queries. No summary is returned if the search query is classified as a |
| // non-summary seeking query. For example, `why is the sky blue` and `Who |
| // is the best soccer player in the world?` are summary-seeking queries, |
| // but `SFO airport` and `world cup 2026` are not. They are most likely |
| // navigational queries. If this field is set to `true`, we skip |
| // generating summaries for non-summary seeking queries and return |
| // fallback messages instead. |
| IgnoreNonSummarySeekingQuery bool `protobuf:"varint,4,opt,name=ignore_non_summary_seeking_query,json=ignoreNonSummarySeekingQuery,proto3" json:"ignore_non_summary_seeking_query,omitempty"` |
| // If specified, the spec will be used to modify the prompt provided to |
| // the LLM. |
| ModelPromptSpec *SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec `protobuf:"bytes,5,opt,name=model_prompt_spec,json=modelPromptSpec,proto3" json:"model_prompt_spec,omitempty"` |
| // Language code for Summary. Use language tags defined by |
| // [BCP47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). |
| // Note: This is an experimental feature. |
| LanguageCode string `protobuf:"bytes,6,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` |
| // If specified, the spec will be used to modify the model specification |
| // provided to the LLM. |
| ModelSpec *SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec `protobuf:"bytes,7,opt,name=model_spec,json=modelSpec,proto3" json:"model_spec,omitempty"` |
| // If true, answer will be generated from most relevant chunks from top |
| // search results. This feature will improve summary quality. |
| // Note that with this feature enabled, not all top search results |
| // will be referenced and included in the reference list, so the citation |
| // source index only points to the search results listed in the reference |
| // list. |
| UseSemanticChunks bool `protobuf:"varint,8,opt,name=use_semantic_chunks,json=useSemanticChunks,proto3" json:"use_semantic_chunks,omitempty"` |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec) Reset() { |
| *x = SearchRequest_ContentSearchSpec_SummarySpec{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[14] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchRequest_ContentSearchSpec_SummarySpec) ProtoMessage() {} |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchRequest_ContentSearchSpec_SummarySpec.ProtoReflect.Descriptor instead. |
| func (*SearchRequest_ContentSearchSpec_SummarySpec) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{0, 6, 1} |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec) GetSummaryResultCount() int32 { |
| if x != nil { |
| return x.SummaryResultCount |
| } |
| return 0 |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec) GetIncludeCitations() bool { |
| if x != nil { |
| return x.IncludeCitations |
| } |
| return false |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec) GetIgnoreAdversarialQuery() bool { |
| if x != nil { |
| return x.IgnoreAdversarialQuery |
| } |
| return false |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec) GetIgnoreNonSummarySeekingQuery() bool { |
| if x != nil { |
| return x.IgnoreNonSummarySeekingQuery |
| } |
| return false |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec) GetModelPromptSpec() *SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec { |
| if x != nil { |
| return x.ModelPromptSpec |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec) GetLanguageCode() string { |
| if x != nil { |
| return x.LanguageCode |
| } |
| return "" |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec) GetModelSpec() *SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec { |
| if x != nil { |
| return x.ModelSpec |
| } |
| return nil |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec) GetUseSemanticChunks() bool { |
| if x != nil { |
| return x.UseSemanticChunks |
| } |
| return false |
| } |
| |
| // A specification for configuring the extractive content in a search |
| // response. |
| type SearchRequest_ContentSearchSpec_ExtractiveContentSpec struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The maximum number of extractive answers returned in each search |
| // result. |
| // |
| // An extractive answer is a verbatim answer extracted from the original |
| // document, which provides a precise and contextually relevant answer to |
| // the search query. |
| // |
| // If the number of matching answers is less than the |
| // `max_extractive_answer_count`, return all of the answers. Otherwise, |
| // return the `max_extractive_answer_count`. |
| // |
| // At most five answers are returned for each |
| // [SearchResult][google.cloud.discoveryengine.v1.SearchResponse.SearchResult]. |
| MaxExtractiveAnswerCount int32 `protobuf:"varint,1,opt,name=max_extractive_answer_count,json=maxExtractiveAnswerCount,proto3" json:"max_extractive_answer_count,omitempty"` |
| // The max number of extractive segments returned in each search result. |
| // Only applied if the |
| // [DataStore][google.cloud.discoveryengine.v1.DataStore] is set to |
| // [DataStore.ContentConfig.CONTENT_REQUIRED][google.cloud.discoveryengine.v1.DataStore.ContentConfig.CONTENT_REQUIRED] |
| // or |
| // [DataStore.solution_types][google.cloud.discoveryengine.v1.DataStore.solution_types] |
| // is |
| // [SOLUTION_TYPE_CHAT][google.cloud.discoveryengine.v1.SolutionType.SOLUTION_TYPE_CHAT]. |
| // |
| // An extractive segment is a text segment extracted from the original |
| // document that is relevant to the search query, and, in general, more |
| // verbose than an extractive answer. The segment could then be used as |
| // input for LLMs to generate summaries and answers. |
| // |
| // If the number of matching segments is less than |
| // `max_extractive_segment_count`, return all of the segments. Otherwise, |
| // return the `max_extractive_segment_count`. |
| MaxExtractiveSegmentCount int32 `protobuf:"varint,2,opt,name=max_extractive_segment_count,json=maxExtractiveSegmentCount,proto3" json:"max_extractive_segment_count,omitempty"` |
| // Specifies whether to return the confidence score from the extractive |
| // segments in each search result. This feature is available only for new |
| // or allowlisted data stores. To allowlist your data store, |
| // contact your Customer Engineer. The default value is `false`. |
| ReturnExtractiveSegmentScore bool `protobuf:"varint,3,opt,name=return_extractive_segment_score,json=returnExtractiveSegmentScore,proto3" json:"return_extractive_segment_score,omitempty"` |
| // Specifies whether to also include the adjacent from each selected |
| // segments. |
| // Return at most `num_previous_segments` segments before each selected |
| // segments. |
| NumPreviousSegments int32 `protobuf:"varint,4,opt,name=num_previous_segments,json=numPreviousSegments,proto3" json:"num_previous_segments,omitempty"` |
| // Return at most `num_next_segments` segments after each selected |
| // segments. |
| NumNextSegments int32 `protobuf:"varint,5,opt,name=num_next_segments,json=numNextSegments,proto3" json:"num_next_segments,omitempty"` |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_ExtractiveContentSpec) Reset() { |
| *x = SearchRequest_ContentSearchSpec_ExtractiveContentSpec{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[15] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_ExtractiveContentSpec) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchRequest_ContentSearchSpec_ExtractiveContentSpec) ProtoMessage() {} |
| |
| func (x *SearchRequest_ContentSearchSpec_ExtractiveContentSpec) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchRequest_ContentSearchSpec_ExtractiveContentSpec.ProtoReflect.Descriptor instead. |
| func (*SearchRequest_ContentSearchSpec_ExtractiveContentSpec) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{0, 6, 2} |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_ExtractiveContentSpec) GetMaxExtractiveAnswerCount() int32 { |
| if x != nil { |
| return x.MaxExtractiveAnswerCount |
| } |
| return 0 |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_ExtractiveContentSpec) GetMaxExtractiveSegmentCount() int32 { |
| if x != nil { |
| return x.MaxExtractiveSegmentCount |
| } |
| return 0 |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_ExtractiveContentSpec) GetReturnExtractiveSegmentScore() bool { |
| if x != nil { |
| return x.ReturnExtractiveSegmentScore |
| } |
| return false |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_ExtractiveContentSpec) GetNumPreviousSegments() int32 { |
| if x != nil { |
| return x.NumPreviousSegments |
| } |
| return 0 |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_ExtractiveContentSpec) GetNumNextSegments() int32 { |
| if x != nil { |
| return x.NumNextSegments |
| } |
| return 0 |
| } |
| |
| // Specification of the prompt to use with the model. |
| type SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Text at the beginning of the prompt that instructs the assistant. |
| // Examples are available in the user guide. |
| Preamble string `protobuf:"bytes,1,opt,name=preamble,proto3" json:"preamble,omitempty"` |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec) Reset() { |
| *x = SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[16] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec) ProtoMessage() {} |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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_ContentSearchSpec_SummarySpec_ModelPromptSpec.ProtoReflect.Descriptor instead. |
| func (*SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{0, 6, 1, 0} |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec) GetPreamble() string { |
| if x != nil { |
| return x.Preamble |
| } |
| return "" |
| } |
| |
| // Specification of the model. |
| type SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The model version used to generate the summary. |
| // |
| // Supported values are: |
| // |
| // - `stable`: string. Default value when no value is specified. Uses a |
| // generally available, fine-tuned model. For more information, see |
| // [Answer generation model versions and |
| // lifecycle](https://cloud.google.com/generative-ai-app-builder/docs/answer-generation-models). |
| // - `preview`: string. (Public preview) Uses a preview model. For more |
| // information, see |
| // [Answer generation model versions and |
| // lifecycle](https://cloud.google.com/generative-ai-app-builder/docs/answer-generation-models). |
| Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec) Reset() { |
| *x = SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[17] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec) ProtoMessage() {} |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec.ProtoReflect.Descriptor instead. |
| func (*SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{0, 6, 1, 1} |
| } |
| |
| func (x *SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec) GetVersion() string { |
| if x != nil { |
| return x.Version |
| } |
| return "" |
| } |
| |
| // Represents the search results. |
| type SearchResponse_SearchResult struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // [Document.id][google.cloud.discoveryengine.v1.Document.id] of the |
| // searched [Document][google.cloud.discoveryengine.v1.Document]. |
| Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` |
| // The document data snippet in the search response. Only fields that are |
| // marked as retrievable are populated. |
| Document *Document `protobuf:"bytes,2,opt,name=document,proto3" json:"document,omitempty"` |
| } |
| |
| func (x *SearchResponse_SearchResult) Reset() { |
| *x = SearchResponse_SearchResult{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[18] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchResponse_SearchResult) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchResponse_SearchResult) ProtoMessage() {} |
| |
| func (x *SearchResponse_SearchResult) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchResponse_SearchResult.ProtoReflect.Descriptor instead. |
| func (*SearchResponse_SearchResult) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{1, 0} |
| } |
| |
| func (x *SearchResponse_SearchResult) GetId() string { |
| if x != nil { |
| return x.Id |
| } |
| return "" |
| } |
| |
| func (x *SearchResponse_SearchResult) GetDocument() *Document { |
| if x != nil { |
| return x.Document |
| } |
| return nil |
| } |
| |
| // A facet result. |
| type SearchResponse_Facet struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The key for this facet. E.g., "colors" or "price". It matches |
| // [SearchRequest.FacetSpec.FacetKey.key][google.cloud.discoveryengine.v1.SearchRequest.FacetSpec.FacetKey.key]. |
| Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` |
| // The facet values for this field. |
| Values []*SearchResponse_Facet_FacetValue `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"` |
| // Whether the facet is dynamically generated. |
| DynamicFacet bool `protobuf:"varint,3,opt,name=dynamic_facet,json=dynamicFacet,proto3" json:"dynamic_facet,omitempty"` |
| } |
| |
| func (x *SearchResponse_Facet) Reset() { |
| *x = SearchResponse_Facet{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[19] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchResponse_Facet) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchResponse_Facet) ProtoMessage() {} |
| |
| func (x *SearchResponse_Facet) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchResponse_Facet.ProtoReflect.Descriptor instead. |
| func (*SearchResponse_Facet) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{1, 1} |
| } |
| |
| func (x *SearchResponse_Facet) GetKey() string { |
| if x != nil { |
| return x.Key |
| } |
| return "" |
| } |
| |
| func (x *SearchResponse_Facet) GetValues() []*SearchResponse_Facet_FacetValue { |
| if x != nil { |
| return x.Values |
| } |
| return nil |
| } |
| |
| func (x *SearchResponse_Facet) GetDynamicFacet() bool { |
| if x != nil { |
| return x.DynamicFacet |
| } |
| return false |
| } |
| |
| // Summary of the top N search result specified by the summary spec. |
| type SearchResponse_Summary struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The summary content. |
| SummaryText string `protobuf:"bytes,1,opt,name=summary_text,json=summaryText,proto3" json:"summary_text,omitempty"` |
| // Additional summary-skipped reasons. This provides the reason for ignored |
| // cases. If nothing is skipped, this field is not set. |
| SummarySkippedReasons []SearchResponse_Summary_SummarySkippedReason `protobuf:"varint,2,rep,packed,name=summary_skipped_reasons,json=summarySkippedReasons,proto3,enum=google.cloud.discoveryengine.v1.SearchResponse_Summary_SummarySkippedReason" json:"summary_skipped_reasons,omitempty"` |
| // A collection of Safety Attribute categories and their associated |
| // confidence scores. |
| SafetyAttributes *SearchResponse_Summary_SafetyAttributes `protobuf:"bytes,3,opt,name=safety_attributes,json=safetyAttributes,proto3" json:"safety_attributes,omitempty"` |
| // Summary with metadata information. |
| SummaryWithMetadata *SearchResponse_Summary_SummaryWithMetadata `protobuf:"bytes,4,opt,name=summary_with_metadata,json=summaryWithMetadata,proto3" json:"summary_with_metadata,omitempty"` |
| } |
| |
| func (x *SearchResponse_Summary) Reset() { |
| *x = SearchResponse_Summary{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[20] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchResponse_Summary) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchResponse_Summary) ProtoMessage() {} |
| |
| func (x *SearchResponse_Summary) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchResponse_Summary.ProtoReflect.Descriptor instead. |
| func (*SearchResponse_Summary) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{1, 2} |
| } |
| |
| func (x *SearchResponse_Summary) GetSummaryText() string { |
| if x != nil { |
| return x.SummaryText |
| } |
| return "" |
| } |
| |
| func (x *SearchResponse_Summary) GetSummarySkippedReasons() []SearchResponse_Summary_SummarySkippedReason { |
| if x != nil { |
| return x.SummarySkippedReasons |
| } |
| return nil |
| } |
| |
| func (x *SearchResponse_Summary) GetSafetyAttributes() *SearchResponse_Summary_SafetyAttributes { |
| if x != nil { |
| return x.SafetyAttributes |
| } |
| return nil |
| } |
| |
| func (x *SearchResponse_Summary) GetSummaryWithMetadata() *SearchResponse_Summary_SummaryWithMetadata { |
| if x != nil { |
| return x.SummaryWithMetadata |
| } |
| return nil |
| } |
| |
| // Information describing query expansion including whether expansion has |
| // occurred. |
| type SearchResponse_QueryExpansionInfo struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Bool describing whether query expansion has occurred. |
| ExpandedQuery bool `protobuf:"varint,1,opt,name=expanded_query,json=expandedQuery,proto3" json:"expanded_query,omitempty"` |
| // Number of pinned results. This field will only be set when expansion |
| // happens and |
| // [SearchRequest.QueryExpansionSpec.pin_unexpanded_results][google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec.pin_unexpanded_results] |
| // is set to true. |
| PinnedResultCount int64 `protobuf:"varint,2,opt,name=pinned_result_count,json=pinnedResultCount,proto3" json:"pinned_result_count,omitempty"` |
| } |
| |
| func (x *SearchResponse_QueryExpansionInfo) Reset() { |
| *x = SearchResponse_QueryExpansionInfo{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[21] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchResponse_QueryExpansionInfo) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchResponse_QueryExpansionInfo) ProtoMessage() {} |
| |
| func (x *SearchResponse_QueryExpansionInfo) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchResponse_QueryExpansionInfo.ProtoReflect.Descriptor instead. |
| func (*SearchResponse_QueryExpansionInfo) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{1, 3} |
| } |
| |
| func (x *SearchResponse_QueryExpansionInfo) GetExpandedQuery() bool { |
| if x != nil { |
| return x.ExpandedQuery |
| } |
| return false |
| } |
| |
| func (x *SearchResponse_QueryExpansionInfo) GetPinnedResultCount() int64 { |
| if x != nil { |
| return x.PinnedResultCount |
| } |
| return 0 |
| } |
| |
| // A facet value which contains value names and their count. |
| type SearchResponse_Facet_FacetValue struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // A facet value which contains values. |
| // |
| // Types that are assignable to FacetValue: |
| // |
| // *SearchResponse_Facet_FacetValue_Value |
| // *SearchResponse_Facet_FacetValue_Interval |
| FacetValue isSearchResponse_Facet_FacetValue_FacetValue `protobuf_oneof:"facet_value"` |
| // Number of items that have this facet value. |
| Count int64 `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"` |
| } |
| |
| func (x *SearchResponse_Facet_FacetValue) Reset() { |
| *x = SearchResponse_Facet_FacetValue{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[22] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchResponse_Facet_FacetValue) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchResponse_Facet_FacetValue) ProtoMessage() {} |
| |
| func (x *SearchResponse_Facet_FacetValue) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchResponse_Facet_FacetValue.ProtoReflect.Descriptor instead. |
| func (*SearchResponse_Facet_FacetValue) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{1, 1, 0} |
| } |
| |
| func (m *SearchResponse_Facet_FacetValue) GetFacetValue() isSearchResponse_Facet_FacetValue_FacetValue { |
| if m != nil { |
| return m.FacetValue |
| } |
| return nil |
| } |
| |
| func (x *SearchResponse_Facet_FacetValue) GetValue() string { |
| if x, ok := x.GetFacetValue().(*SearchResponse_Facet_FacetValue_Value); ok { |
| return x.Value |
| } |
| return "" |
| } |
| |
| func (x *SearchResponse_Facet_FacetValue) GetInterval() *Interval { |
| if x, ok := x.GetFacetValue().(*SearchResponse_Facet_FacetValue_Interval); ok { |
| return x.Interval |
| } |
| return nil |
| } |
| |
| func (x *SearchResponse_Facet_FacetValue) GetCount() int64 { |
| if x != nil { |
| return x.Count |
| } |
| return 0 |
| } |
| |
| type isSearchResponse_Facet_FacetValue_FacetValue interface { |
| isSearchResponse_Facet_FacetValue_FacetValue() |
| } |
| |
| type SearchResponse_Facet_FacetValue_Value struct { |
| // Text value of a facet, such as "Black" for facet "colors". |
| Value string `protobuf:"bytes,1,opt,name=value,proto3,oneof"` |
| } |
| |
| type SearchResponse_Facet_FacetValue_Interval struct { |
| // Interval value for a facet, such as [10, 20) for facet "price". It |
| // matches |
| // [SearchRequest.FacetSpec.FacetKey.intervals][google.cloud.discoveryengine.v1.SearchRequest.FacetSpec.FacetKey.intervals]. |
| Interval *Interval `protobuf:"bytes,2,opt,name=interval,proto3,oneof"` |
| } |
| |
| func (*SearchResponse_Facet_FacetValue_Value) isSearchResponse_Facet_FacetValue_FacetValue() {} |
| |
| func (*SearchResponse_Facet_FacetValue_Interval) isSearchResponse_Facet_FacetValue_FacetValue() {} |
| |
| // Safety Attribute categories and their associated confidence scores. |
| type SearchResponse_Summary_SafetyAttributes struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The display names of Safety Attribute categories associated with the |
| // generated content. Order matches the Scores. |
| Categories []string `protobuf:"bytes,1,rep,name=categories,proto3" json:"categories,omitempty"` |
| // The confidence scores of the each category, higher |
| // value means higher confidence. Order matches the Categories. |
| Scores []float32 `protobuf:"fixed32,2,rep,packed,name=scores,proto3" json:"scores,omitempty"` |
| } |
| |
| func (x *SearchResponse_Summary_SafetyAttributes) Reset() { |
| *x = SearchResponse_Summary_SafetyAttributes{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[23] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchResponse_Summary_SafetyAttributes) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchResponse_Summary_SafetyAttributes) ProtoMessage() {} |
| |
| func (x *SearchResponse_Summary_SafetyAttributes) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_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 SearchResponse_Summary_SafetyAttributes.ProtoReflect.Descriptor instead. |
| func (*SearchResponse_Summary_SafetyAttributes) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{1, 2, 0} |
| } |
| |
| func (x *SearchResponse_Summary_SafetyAttributes) GetCategories() []string { |
| if x != nil { |
| return x.Categories |
| } |
| return nil |
| } |
| |
| func (x *SearchResponse_Summary_SafetyAttributes) GetScores() []float32 { |
| if x != nil { |
| return x.Scores |
| } |
| return nil |
| } |
| |
| // Citation metadata. |
| type SearchResponse_Summary_CitationMetadata struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Citations for segments. |
| Citations []*SearchResponse_Summary_Citation `protobuf:"bytes,1,rep,name=citations,proto3" json:"citations,omitempty"` |
| } |
| |
| func (x *SearchResponse_Summary_CitationMetadata) Reset() { |
| *x = SearchResponse_Summary_CitationMetadata{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[24] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchResponse_Summary_CitationMetadata) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchResponse_Summary_CitationMetadata) ProtoMessage() {} |
| |
| func (x *SearchResponse_Summary_CitationMetadata) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[24] |
| 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_Summary_CitationMetadata.ProtoReflect.Descriptor instead. |
| func (*SearchResponse_Summary_CitationMetadata) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{1, 2, 1} |
| } |
| |
| func (x *SearchResponse_Summary_CitationMetadata) GetCitations() []*SearchResponse_Summary_Citation { |
| if x != nil { |
| return x.Citations |
| } |
| return nil |
| } |
| |
| // Citation info for a segment. |
| type SearchResponse_Summary_Citation struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Index indicates the start of the segment, measured in bytes/unicode. |
| StartIndex int64 `protobuf:"varint,1,opt,name=start_index,json=startIndex,proto3" json:"start_index,omitempty"` |
| // End of the attributed segment, exclusive. |
| EndIndex int64 `protobuf:"varint,2,opt,name=end_index,json=endIndex,proto3" json:"end_index,omitempty"` |
| // Citation sources for the attributed segment. |
| Sources []*SearchResponse_Summary_CitationSource `protobuf:"bytes,3,rep,name=sources,proto3" json:"sources,omitempty"` |
| } |
| |
| func (x *SearchResponse_Summary_Citation) Reset() { |
| *x = SearchResponse_Summary_Citation{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[25] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchResponse_Summary_Citation) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchResponse_Summary_Citation) ProtoMessage() {} |
| |
| func (x *SearchResponse_Summary_Citation) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[25] |
| 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_Summary_Citation.ProtoReflect.Descriptor instead. |
| func (*SearchResponse_Summary_Citation) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{1, 2, 2} |
| } |
| |
| func (x *SearchResponse_Summary_Citation) GetStartIndex() int64 { |
| if x != nil { |
| return x.StartIndex |
| } |
| return 0 |
| } |
| |
| func (x *SearchResponse_Summary_Citation) GetEndIndex() int64 { |
| if x != nil { |
| return x.EndIndex |
| } |
| return 0 |
| } |
| |
| func (x *SearchResponse_Summary_Citation) GetSources() []*SearchResponse_Summary_CitationSource { |
| if x != nil { |
| return x.Sources |
| } |
| return nil |
| } |
| |
| // Citation source. |
| type SearchResponse_Summary_CitationSource struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Document reference index from SummaryWithMetadata.references. |
| // It is 0-indexed and the value will be zero if the reference_index is |
| // not set explicitly. |
| ReferenceIndex int64 `protobuf:"varint,4,opt,name=reference_index,json=referenceIndex,proto3" json:"reference_index,omitempty"` |
| } |
| |
| func (x *SearchResponse_Summary_CitationSource) Reset() { |
| *x = SearchResponse_Summary_CitationSource{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[26] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchResponse_Summary_CitationSource) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchResponse_Summary_CitationSource) ProtoMessage() {} |
| |
| func (x *SearchResponse_Summary_CitationSource) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[26] |
| 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_Summary_CitationSource.ProtoReflect.Descriptor instead. |
| func (*SearchResponse_Summary_CitationSource) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{1, 2, 3} |
| } |
| |
| func (x *SearchResponse_Summary_CitationSource) GetReferenceIndex() int64 { |
| if x != nil { |
| return x.ReferenceIndex |
| } |
| return 0 |
| } |
| |
| // Document reference. |
| type SearchResponse_Summary_Reference struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Title of the document. |
| Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` |
| // Required. |
| // [Document.name][google.cloud.discoveryengine.v1.Document.name] of the |
| // document. Full resource name of the referenced document, in the format |
| // `projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*`. |
| Document string `protobuf:"bytes,2,opt,name=document,proto3" json:"document,omitempty"` |
| // Cloud Storage or HTTP uri for the document. |
| Uri string `protobuf:"bytes,3,opt,name=uri,proto3" json:"uri,omitempty"` |
| // List of cited chunk contents derived from document content. |
| ChunkContents []*SearchResponse_Summary_Reference_ChunkContent `protobuf:"bytes,4,rep,name=chunk_contents,json=chunkContents,proto3" json:"chunk_contents,omitempty"` |
| } |
| |
| func (x *SearchResponse_Summary_Reference) Reset() { |
| *x = SearchResponse_Summary_Reference{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[27] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchResponse_Summary_Reference) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchResponse_Summary_Reference) ProtoMessage() {} |
| |
| func (x *SearchResponse_Summary_Reference) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[27] |
| 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_Summary_Reference.ProtoReflect.Descriptor instead. |
| func (*SearchResponse_Summary_Reference) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{1, 2, 4} |
| } |
| |
| func (x *SearchResponse_Summary_Reference) GetTitle() string { |
| if x != nil { |
| return x.Title |
| } |
| return "" |
| } |
| |
| func (x *SearchResponse_Summary_Reference) GetDocument() string { |
| if x != nil { |
| return x.Document |
| } |
| return "" |
| } |
| |
| func (x *SearchResponse_Summary_Reference) GetUri() string { |
| if x != nil { |
| return x.Uri |
| } |
| return "" |
| } |
| |
| func (x *SearchResponse_Summary_Reference) GetChunkContents() []*SearchResponse_Summary_Reference_ChunkContent { |
| if x != nil { |
| return x.ChunkContents |
| } |
| return nil |
| } |
| |
| // Summary with metadata information. |
| type SearchResponse_Summary_SummaryWithMetadata struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Summary text with no citation information. |
| Summary string `protobuf:"bytes,1,opt,name=summary,proto3" json:"summary,omitempty"` |
| // Citation metadata for given summary. |
| CitationMetadata *SearchResponse_Summary_CitationMetadata `protobuf:"bytes,2,opt,name=citation_metadata,json=citationMetadata,proto3" json:"citation_metadata,omitempty"` |
| // Document References. |
| References []*SearchResponse_Summary_Reference `protobuf:"bytes,3,rep,name=references,proto3" json:"references,omitempty"` |
| } |
| |
| func (x *SearchResponse_Summary_SummaryWithMetadata) Reset() { |
| *x = SearchResponse_Summary_SummaryWithMetadata{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[28] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchResponse_Summary_SummaryWithMetadata) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchResponse_Summary_SummaryWithMetadata) ProtoMessage() {} |
| |
| func (x *SearchResponse_Summary_SummaryWithMetadata) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[28] |
| 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_Summary_SummaryWithMetadata.ProtoReflect.Descriptor instead. |
| func (*SearchResponse_Summary_SummaryWithMetadata) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{1, 2, 5} |
| } |
| |
| func (x *SearchResponse_Summary_SummaryWithMetadata) GetSummary() string { |
| if x != nil { |
| return x.Summary |
| } |
| return "" |
| } |
| |
| func (x *SearchResponse_Summary_SummaryWithMetadata) GetCitationMetadata() *SearchResponse_Summary_CitationMetadata { |
| if x != nil { |
| return x.CitationMetadata |
| } |
| return nil |
| } |
| |
| func (x *SearchResponse_Summary_SummaryWithMetadata) GetReferences() []*SearchResponse_Summary_Reference { |
| if x != nil { |
| return x.References |
| } |
| return nil |
| } |
| |
| // Chunk content. |
| type SearchResponse_Summary_Reference_ChunkContent struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Chunk textual content. |
| Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` |
| // Page identifier. |
| PageIdentifier string `protobuf:"bytes,2,opt,name=page_identifier,json=pageIdentifier,proto3" json:"page_identifier,omitempty"` |
| } |
| |
| func (x *SearchResponse_Summary_Reference_ChunkContent) Reset() { |
| *x = SearchResponse_Summary_Reference_ChunkContent{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[29] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SearchResponse_Summary_Reference_ChunkContent) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SearchResponse_Summary_Reference_ChunkContent) ProtoMessage() {} |
| |
| func (x *SearchResponse_Summary_Reference_ChunkContent) ProtoReflect() protoreflect.Message { |
| mi := &file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[29] |
| 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_Summary_Reference_ChunkContent.ProtoReflect.Descriptor instead. |
| func (*SearchResponse_Summary_Reference_ChunkContent) Descriptor() ([]byte, []int) { |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP(), []int{1, 2, 4, 0} |
| } |
| |
| func (x *SearchResponse_Summary_Reference_ChunkContent) GetContent() string { |
| if x != nil { |
| return x.Content |
| } |
| return "" |
| } |
| |
| func (x *SearchResponse_Summary_Reference_ChunkContent) GetPageIdentifier() string { |
| if x != nil { |
| return x.PageIdentifier |
| } |
| return "" |
| } |
| |
| var File_google_cloud_discoveryengine_v1_search_service_proto protoreflect.FileDescriptor |
| |
| var file_google_cloud_discoveryengine_v1_search_service_proto_rawDesc = []byte{ |
| 0x0a, 0x34, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, |
| 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2f, 0x76, |
| 0x31, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, |
| 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, |
| 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, |
| 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, |
| 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, |
| 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, |
| 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, |
| 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, |
| 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, |
| 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, |
| 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, |
| 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, |
| 0x6e, 0x74, 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, 0x22, 0xc9, 0x22, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, |
| 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5b, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, |
| 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, |
| 0x42, 0x34, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2e, 0x0a, 0x2c, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, |
| 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, |
| 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x43, |
| 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x42, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x64, 0x69, 0x73, 0x63, |
| 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x72, 0x61, 0x6e, 0x63, |
| 0x68, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, |
| 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, |
| 0x5a, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x13, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, |
| 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, |
| 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, |
| 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, |
| 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x70, |
| 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 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, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, |
| 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, |
| 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, |
| 0x66, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x70, |
| 0x65, 0x63, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, |
| 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, |
| 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, |
| 0x6f, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, |
| 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, |
| 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, |
| 0x29, 0x0a, 0x10, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6c, |
| 0x74, 0x65, 0x72, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x61, 0x6e, 0x6f, 0x6e, |
| 0x69, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, |
| 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, |
| 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x46, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, |
| 0x66, 0x6f, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, |
| 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, |
| 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x59, 0x0a, |
| 0x0b, 0x66, 0x61, 0x63, 0x65, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x09, 0x20, 0x03, |
| 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, |
| 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, |
| 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, |
| 0x73, 0x74, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0a, 0x66, 0x61, |
| 0x63, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x57, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x73, |
| 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, |
| 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, |
| 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x6f, |
| 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x53, 0x70, 0x65, |
| 0x63, 0x12, 0x52, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, |
| 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, |
| 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, |
| 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, |
| 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x70, |
| 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x73, 0x0a, 0x14, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, |
| 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0d, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, |
| 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, |
| 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, |
| 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x12, 0x71, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, |
| 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x76, 0x0a, 0x15, 0x73, 0x70, |
| 0x65, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, |
| 0x70, 0x65, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, |
| 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, |
| 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x70, 0x65, 0x6c, 0x6c, 0x43, |
| 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x13, 0x73, |
| 0x70, 0x65, 0x6c, 0x6c, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, |
| 0x65, 0x63, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x73, 0x65, 0x75, 0x64, |
| 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, |
| 0x50, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x49, 0x64, 0x12, 0x70, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, |
| 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, |
| 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, |
| 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, |
| 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, |
| 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x61, |
| 0x72, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, |
| 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x61, |
| 0x66, 0x65, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, |
| 0x0a, 0x73, 0x61, 0x66, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x5f, 0x0a, 0x0b, 0x75, |
| 0x73, 0x65, 0x72, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, |
| 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, |
| 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, |
| 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, |
| 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, |
| 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x38, 0x0a, 0x0a, |
| 0x49, 0x6d, 0x61, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6d, |
| 0x61, 0x67, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, |
| 0x00, 0x52, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x42, 0x07, 0x0a, |
| 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x1a, 0x60, 0x0a, 0x0d, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, |
| 0x6f, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x4f, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x5f, |
| 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, |
| 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, |
| 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, |
| 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x09, 0x64, |
| 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x1a, 0x88, 0x04, 0x0a, 0x09, 0x46, 0x61, 0x63, |
| 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x63, 0x0a, 0x09, 0x66, 0x61, 0x63, 0x65, 0x74, 0x5f, |
| 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, |
| 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, |
| 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x53, |
| 0x70, 0x65, 0x63, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, |
| 0x02, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6c, |
| 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, |
| 0x74, 0x12, 0x30, 0x0a, 0x14, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x5f, 0x66, 0x69, |
| 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, |
| 0x12, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4b, |
| 0x65, 0x79, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x79, |
| 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, |
| 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x79, 0x6e, 0x61, |
| 0x6d, 0x69, 0x63, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x95, 0x02, 0x0a, 0x08, |
| 0x46, 0x61, 0x63, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x15, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, |
| 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, |
| 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, |
| 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, |
| 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x52, 0x09, 0x69, |
| 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x74, |
| 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, |
| 0x03, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x56, |
| 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, |
| 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, |
| 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x05, 0x20, |
| 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x29, 0x0a, |
| 0x10, 0x63, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, |
| 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x73, |
| 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, |
| 0x72, 0x5f, 0x62, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, |
| 0x72, 0x42, 0x79, 0x1a, 0xd6, 0x01, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x53, 0x70, 0x65, |
| 0x63, 0x12, 0x7f, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, |
| 0x6f, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, |
| 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, |
| 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, |
| 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, |
| 0x2e, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, |
| 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x13, 0x63, |
| 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x53, 0x70, 0x65, |
| 0x63, 0x73, 0x1a, 0x48, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, |
| 0x6f, 0x6f, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, |
| 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, |
| 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x1a, 0xf5, 0x01, 0x0a, |
| 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, |
| 0x70, 0x65, 0x63, 0x12, 0x69, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, |
| 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, |
| 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x61, |
| 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, |
| 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, |
| 0x0a, 0x16, 0x70, 0x69, 0x6e, 0x5f, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, |
| 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, |
| 0x70, 0x69, 0x6e, 0x55, 0x6e, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x52, 0x65, 0x73, |
| 0x75, 0x6c, 0x74, 0x73, 0x22, 0x3e, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, |
| 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, |
| 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, |
| 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x55, |
| 0x54, 0x4f, 0x10, 0x02, 0x1a, 0xaf, 0x01, 0x0a, 0x13, 0x53, 0x70, 0x65, 0x6c, 0x6c, 0x43, 0x6f, |
| 0x72, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5b, 0x0a, 0x04, |
| 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, |
| 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, |
| 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x70, 0x65, 0x6c, 0x6c, |
| 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, |
| 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x3b, 0x0a, 0x04, 0x4d, 0x6f, 0x64, |
| 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, |
| 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x55, 0x47, 0x47, 0x45, |
| 0x53, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, |
| 0x41, 0x55, 0x54, 0x4f, 0x10, 0x02, 0x1a, 0xf7, 0x0b, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x65, |
| 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6f, 0x0a, 0x0c, |
| 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, |
| 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, |
| 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, |
| 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, |
| 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, |
| 0x52, 0x0b, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6f, 0x0a, |
| 0x0c, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, |
| 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, |
| 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, |
| 0x68, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x70, 0x65, |
| 0x63, 0x52, 0x0b, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x8e, |
| 0x01, 0x0a, 0x17, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f, |
| 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x56, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, |
| 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, |
| 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, |
| 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x70, |
| 0x65, 0x63, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, |
| 0x74, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x15, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, |
| 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x1a, |
| 0x8f, 0x01, 0x0a, 0x0b, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, |
| 0x2e, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x5f, 0x63, |
| 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, |
| 0x6d, 0x61, 0x78, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, |
| 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, |
| 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x66, |
| 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, |
| 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, |
| 0x28, 0x08, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, |
| 0x74, 0x1a, 0x9b, 0x05, 0x0a, 0x0b, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x70, 0x65, |
| 0x63, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, |
| 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, |
| 0x12, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, |
| 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, |
| 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, |
| 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x43, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, |
| 0x12, 0x38, 0x0a, 0x18, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, |
| 0x73, 0x61, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, |
| 0x28, 0x08, 0x52, 0x16, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x73, |
| 0x61, 0x72, 0x69, 0x61, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x46, 0x0a, 0x20, 0x69, 0x67, |
| 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, |
| 0x5f, 0x73, 0x65, 0x65, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x04, |
| 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4e, 0x6f, 0x6e, 0x53, |
| 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x65, 0x65, 0x6b, 0x69, 0x6e, 0x67, 0x51, 0x75, 0x65, |
| 0x72, 0x79, 0x12, 0x88, 0x01, 0x0a, 0x11, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x70, 0x72, 0x6f, |
| 0x6d, 0x70, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5c, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, |
| 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, |
| 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, |
| 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, |
| 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x6f, 0x64, |
| 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0f, 0x6d, 0x6f, |
| 0x64, 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x23, 0x0a, |
| 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, |
| 0x64, 0x65, 0x12, 0x75, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, |
| 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, |
| 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, |
| 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x65, |
| 0x61, 0x72, 0x63, 0x68, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, |
| 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x52, 0x09, |
| 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x73, 0x65, |
| 0x5f, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x5f, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x73, |
| 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x73, 0x65, 0x53, 0x65, 0x6d, 0x61, 0x6e, |
| 0x74, 0x69, 0x63, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x1a, 0x2d, 0x0a, 0x0f, 0x4d, 0x6f, 0x64, |
| 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, |
| 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, |
| 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x1a, 0x25, 0x0a, 0x09, 0x4d, 0x6f, 0x64, 0x65, |
| 0x6c, 0x53, 0x70, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, |
| 0xbe, 0x02, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, |
| 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x3d, 0x0a, 0x1b, 0x6d, 0x61, 0x78, |
| 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x6e, 0x73, 0x77, |
| 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, |
| 0x6d, 0x61, 0x78, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x73, |
| 0x77, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x1c, 0x6d, 0x61, 0x78, 0x5f, |
| 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, |
| 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x19, |
| 0x6d, 0x61, 0x78, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x65, 0x67, |
| 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x1f, 0x72, 0x65, 0x74, |
| 0x75, 0x72, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, |
| 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, |
| 0x28, 0x08, 0x52, 0x1c, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, |
| 0x74, 0x69, 0x76, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, |
| 0x12, 0x32, 0x0a, 0x15, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, |
| 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, |
| 0x13, 0x6e, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x53, 0x65, 0x67, 0x6d, |
| 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x5f, 0x6e, 0x65, 0x78, 0x74, |
| 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, |
| 0x0f, 0x6e, 0x75, 0x6d, 0x4e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, |
| 0x1a, 0x51, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, |
| 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, |
| 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 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, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, |
| 0x02, 0x38, 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, |
| 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, |
| 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, |
| 0x38, 0x01, 0x22, 0xd6, 0x15, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, |
| 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, |
| 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, |
| 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, |
| 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, |
| 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x4d, 0x0a, |
| 0x06, 0x66, 0x61, 0x63, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, |
| 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, |
| 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, |
| 0x61, 0x63, 0x65, 0x74, 0x52, 0x06, 0x66, 0x61, 0x63, 0x65, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, |
| 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, |
| 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, |
| 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, |
| 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, |
| 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x69, |
| 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, |
| 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x69, 0x12, 0x26, 0x0a, 0x0f, 0x6e, |
| 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, |
| 0x6b, 0x65, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, |
| 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, |
| 0x72, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x51, 0x0a, 0x07, |
| 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, |
| 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, |
| 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, |
| 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, |
| 0x74, 0x0a, 0x14, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, |
| 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, |
| 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, |
| 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x51, |
| 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, |
| 0x6f, 0x52, 0x12, 0x71, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, |
| 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x65, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, |
| 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x45, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, |
| 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, |
| 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, |
| 0x6e, 0x74, 0x52, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0xad, 0x02, 0x0a, |
| 0x05, 0x46, 0x61, 0x63, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x58, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, |
| 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, |
| 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, |
| 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x2e, |
| 0x46, 0x61, 0x63, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, |
| 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x66, 0x61, |
| 0x63, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x79, 0x6e, 0x61, 0x6d, |
| 0x69, 0x63, 0x46, 0x61, 0x63, 0x65, 0x74, 0x1a, 0x92, 0x01, 0x0a, 0x0a, 0x46, 0x61, 0x63, 0x65, |
| 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x47, |
| 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, |
| 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, |
| 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x69, |
| 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, |
| 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0d, 0x0a, |
| 0x0b, 0x66, 0x61, 0x63, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x8f, 0x0d, 0x0a, |
| 0x07, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x75, 0x6d, 0x6d, |
| 0x61, 0x72, 0x79, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, |
| 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x54, 0x65, 0x78, 0x74, 0x12, 0x84, 0x01, 0x0a, 0x17, |
| 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x5f, |
| 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x4c, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, |
| 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, |
| 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, |
| 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x6b, |
| 0x69, 0x70, 0x70, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x15, 0x73, 0x75, 0x6d, |
| 0x6d, 0x61, 0x72, 0x79, 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, |
| 0x6e, 0x73, 0x12, 0x75, 0x0a, 0x11, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x61, 0x74, 0x74, |
| 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, |
| 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, |
| 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, |
| 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x41, 0x74, 0x74, |
| 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x10, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x41, |
| 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x7f, 0x0a, 0x15, 0x73, 0x75, 0x6d, |
| 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, |
| 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, |
| 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, |
| 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, |
| 0x79, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x57, 0x69, 0x74, 0x68, 0x4d, 0x65, 0x74, |
| 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x13, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x57, 0x69, |
| 0x74, 0x68, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x4a, 0x0a, 0x10, 0x53, 0x61, |
| 0x66, 0x65, 0x74, 0x79, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x1e, |
| 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, |
| 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x16, |
| 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x02, 0x52, 0x06, |
| 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x1a, 0x72, 0x0a, 0x10, 0x43, 0x69, 0x74, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5e, 0x0a, 0x09, 0x63, 0x69, |
| 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, |
| 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, |
| 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, |
| 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x43, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, |
| 0x09, 0x63, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xaa, 0x01, 0x0a, 0x08, 0x43, |
| 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, |
| 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x74, |
| 0x61, 0x72, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x5f, |
| 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x65, 0x6e, 0x64, |
| 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x60, 0x0a, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, |
| 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, |
| 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, |
| 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, |
| 0x43, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x07, |
| 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0e, 0x43, 0x69, 0x74, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x66, |
| 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, |
| 0x28, 0x03, 0x52, 0x0e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x64, |
| 0x65, 0x78, 0x1a, 0xca, 0x02, 0x0a, 0x09, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, |
| 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x4b, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, |
| 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, |
| 0x0a, 0x27, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, |
| 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, |
| 0x2f, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, |
| 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x75, 0x0a, 0x0e, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x5f, 0x63, |
| 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, |
| 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, |
| 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, |
| 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, |
| 0x2e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x0d, 0x63, |
| 0x68, 0x75, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x51, 0x0a, 0x0c, |
| 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, |
| 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, |
| 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x69, |
| 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x0e, 0x70, 0x61, 0x67, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x1a, |
| 0x89, 0x02, 0x0a, 0x13, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x57, 0x69, 0x74, 0x68, 0x4d, |
| 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, |
| 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, |
| 0x79, 0x12, 0x75, 0x0a, 0x11, 0x63, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, |
| 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, |
| 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, |
| 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x75, |
| 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x43, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, |
| 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x10, 0x63, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x61, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, |
| 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, |
| 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, |
| 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x75, |
| 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, |
| 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0xe0, 0x01, 0x0a, 0x14, |
| 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x52, 0x65, |
| 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x55, 0x4d, 0x4d, 0x41, 0x52, 0x59, 0x5f, |
| 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, |
| 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, |
| 0x41, 0x44, 0x56, 0x45, 0x52, 0x53, 0x41, 0x52, 0x49, 0x41, 0x4c, 0x5f, 0x51, 0x55, 0x45, 0x52, |
| 0x59, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x4e, |
| 0x4f, 0x4e, 0x5f, 0x53, 0x55, 0x4d, 0x4d, 0x41, 0x52, 0x59, 0x5f, 0x53, 0x45, 0x45, 0x4b, 0x49, |
| 0x4e, 0x47, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x44, |
| 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x44, 0x4f, 0x4d, |
| 0x41, 0x49, 0x4e, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, |
| 0x44, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, |
| 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x56, 0x49, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, |
| 0x4e, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4c, 0x4d, 0x5f, 0x41, 0x44, 0x44, 0x4f, 0x4e, |
| 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x1a, 0x6b, |
| 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, |
| 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, |
| 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x78, |
| 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x70, |
| 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x6f, 0x75, |
| 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, |
| 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0xf5, 0x03, 0x0a, 0x0d, |
| 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8f, 0x03, |
| 0x0a, 0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, |
| 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, |
| 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, |
| 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, |
| 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa3, 0x02, 0x82, 0xd3, 0xe4, 0x93, |
| 0x02, 0x9c, 0x02, 0x3a, 0x01, 0x2a, 0x5a, 0x63, 0x3a, 0x01, 0x2a, 0x22, 0x5e, 0x2f, 0x76, 0x31, |
| 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, |
| 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, |
| 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, |
| 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, |
| 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5a, 0x60, 0x3a, 0x01, 0x2a, |
| 0x22, 0x5b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x63, |
| 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, |
| 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, |
| 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x67, 0x69, 0x6e, |
| 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, |
| 0x69, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0x50, 0x2f, |
| 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, |
| 0x69, 0x67, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, |
| 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, |
| 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x43, 0x6f, |
| 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x1a, |
| 0x52, 0xca, 0x41, 0x1e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, |
| 0x69, 0x6e, 0x65, 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, 0x85, 0x02, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, |
| 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x12, 0x53, 0x65, 0x61, |
| 0x72, 0x63, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, |
| 0x01, 0x5a, 0x4d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, |
| 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x64, 0x69, 0x73, |
| 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x70, 0x62, 0x3b, 0x64, |
| 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x70, 0x62, |
| 0xa2, 0x02, 0x0f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x59, 0x45, 0x4e, 0x47, 0x49, |
| 0x4e, 0x45, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, |
| 0x64, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x45, 0x6e, 0x67, 0x69, 0x6e, |
| 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, |
| 0x6f, 0x75, 0x64, 0x5c, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x45, 0x6e, 0x67, |
| 0x69, 0x6e, 0x65, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, |
| 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, |
| 0x79, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, |
| 0x74, 0x6f, 0x33, |
| } |
| |
| var ( |
| file_google_cloud_discoveryengine_v1_search_service_proto_rawDescOnce sync.Once |
| file_google_cloud_discoveryengine_v1_search_service_proto_rawDescData = file_google_cloud_discoveryengine_v1_search_service_proto_rawDesc |
| ) |
| |
| func file_google_cloud_discoveryengine_v1_search_service_proto_rawDescGZIP() []byte { |
| file_google_cloud_discoveryengine_v1_search_service_proto_rawDescOnce.Do(func() { |
| file_google_cloud_discoveryengine_v1_search_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_discoveryengine_v1_search_service_proto_rawDescData) |
| }) |
| return file_google_cloud_discoveryengine_v1_search_service_proto_rawDescData |
| } |
| |
| var file_google_cloud_discoveryengine_v1_search_service_proto_enumTypes = make([]protoimpl.EnumInfo, 3) |
| var file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes = make([]protoimpl.MessageInfo, 30) |
| var file_google_cloud_discoveryengine_v1_search_service_proto_goTypes = []interface{}{ |
| (SearchRequest_QueryExpansionSpec_Condition)(0), // 0: google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec.Condition |
| (SearchRequest_SpellCorrectionSpec_Mode)(0), // 1: google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec.Mode |
| (SearchResponse_Summary_SummarySkippedReason)(0), // 2: google.cloud.discoveryengine.v1.SearchResponse.Summary.SummarySkippedReason |
| (*SearchRequest)(nil), // 3: google.cloud.discoveryengine.v1.SearchRequest |
| (*SearchResponse)(nil), // 4: google.cloud.discoveryengine.v1.SearchResponse |
| (*SearchRequest_ImageQuery)(nil), // 5: google.cloud.discoveryengine.v1.SearchRequest.ImageQuery |
| (*SearchRequest_DataStoreSpec)(nil), // 6: google.cloud.discoveryengine.v1.SearchRequest.DataStoreSpec |
| (*SearchRequest_FacetSpec)(nil), // 7: google.cloud.discoveryengine.v1.SearchRequest.FacetSpec |
| (*SearchRequest_BoostSpec)(nil), // 8: google.cloud.discoveryengine.v1.SearchRequest.BoostSpec |
| (*SearchRequest_QueryExpansionSpec)(nil), // 9: google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec |
| (*SearchRequest_SpellCorrectionSpec)(nil), // 10: google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec |
| (*SearchRequest_ContentSearchSpec)(nil), // 11: google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec |
| nil, // 12: google.cloud.discoveryengine.v1.SearchRequest.ParamsEntry |
| nil, // 13: google.cloud.discoveryengine.v1.SearchRequest.UserLabelsEntry |
| (*SearchRequest_FacetSpec_FacetKey)(nil), // 14: google.cloud.discoveryengine.v1.SearchRequest.FacetSpec.FacetKey |
| (*SearchRequest_BoostSpec_ConditionBoostSpec)(nil), // 15: google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec |
| (*SearchRequest_ContentSearchSpec_SnippetSpec)(nil), // 16: google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SnippetSpec |
| (*SearchRequest_ContentSearchSpec_SummarySpec)(nil), // 17: google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec |
| (*SearchRequest_ContentSearchSpec_ExtractiveContentSpec)(nil), // 18: google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.ExtractiveContentSpec |
| (*SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec)(nil), // 19: google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec |
| (*SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec)(nil), // 20: google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec |
| (*SearchResponse_SearchResult)(nil), // 21: google.cloud.discoveryengine.v1.SearchResponse.SearchResult |
| (*SearchResponse_Facet)(nil), // 22: google.cloud.discoveryengine.v1.SearchResponse.Facet |
| (*SearchResponse_Summary)(nil), // 23: google.cloud.discoveryengine.v1.SearchResponse.Summary |
| (*SearchResponse_QueryExpansionInfo)(nil), // 24: google.cloud.discoveryengine.v1.SearchResponse.QueryExpansionInfo |
| (*SearchResponse_Facet_FacetValue)(nil), // 25: google.cloud.discoveryengine.v1.SearchResponse.Facet.FacetValue |
| (*SearchResponse_Summary_SafetyAttributes)(nil), // 26: google.cloud.discoveryengine.v1.SearchResponse.Summary.SafetyAttributes |
| (*SearchResponse_Summary_CitationMetadata)(nil), // 27: google.cloud.discoveryengine.v1.SearchResponse.Summary.CitationMetadata |
| (*SearchResponse_Summary_Citation)(nil), // 28: google.cloud.discoveryengine.v1.SearchResponse.Summary.Citation |
| (*SearchResponse_Summary_CitationSource)(nil), // 29: google.cloud.discoveryengine.v1.SearchResponse.Summary.CitationSource |
| (*SearchResponse_Summary_Reference)(nil), // 30: google.cloud.discoveryengine.v1.SearchResponse.Summary.Reference |
| (*SearchResponse_Summary_SummaryWithMetadata)(nil), // 31: google.cloud.discoveryengine.v1.SearchResponse.Summary.SummaryWithMetadata |
| (*SearchResponse_Summary_Reference_ChunkContent)(nil), // 32: google.cloud.discoveryengine.v1.SearchResponse.Summary.Reference.ChunkContent |
| (*UserInfo)(nil), // 33: google.cloud.discoveryengine.v1.UserInfo |
| (*structpb.Value)(nil), // 34: google.protobuf.Value |
| (*Interval)(nil), // 35: google.cloud.discoveryengine.v1.Interval |
| (*Document)(nil), // 36: google.cloud.discoveryengine.v1.Document |
| } |
| var file_google_cloud_discoveryengine_v1_search_service_proto_depIdxs = []int32{ |
| 5, // 0: google.cloud.discoveryengine.v1.SearchRequest.image_query:type_name -> google.cloud.discoveryengine.v1.SearchRequest.ImageQuery |
| 6, // 1: google.cloud.discoveryengine.v1.SearchRequest.data_store_specs:type_name -> google.cloud.discoveryengine.v1.SearchRequest.DataStoreSpec |
| 33, // 2: google.cloud.discoveryengine.v1.SearchRequest.user_info:type_name -> google.cloud.discoveryengine.v1.UserInfo |
| 7, // 3: google.cloud.discoveryengine.v1.SearchRequest.facet_specs:type_name -> google.cloud.discoveryengine.v1.SearchRequest.FacetSpec |
| 8, // 4: google.cloud.discoveryengine.v1.SearchRequest.boost_spec:type_name -> google.cloud.discoveryengine.v1.SearchRequest.BoostSpec |
| 12, // 5: google.cloud.discoveryengine.v1.SearchRequest.params:type_name -> google.cloud.discoveryengine.v1.SearchRequest.ParamsEntry |
| 9, // 6: google.cloud.discoveryengine.v1.SearchRequest.query_expansion_spec:type_name -> google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec |
| 10, // 7: google.cloud.discoveryengine.v1.SearchRequest.spell_correction_spec:type_name -> google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec |
| 11, // 8: google.cloud.discoveryengine.v1.SearchRequest.content_search_spec:type_name -> google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec |
| 13, // 9: google.cloud.discoveryengine.v1.SearchRequest.user_labels:type_name -> google.cloud.discoveryengine.v1.SearchRequest.UserLabelsEntry |
| 21, // 10: google.cloud.discoveryengine.v1.SearchResponse.results:type_name -> google.cloud.discoveryengine.v1.SearchResponse.SearchResult |
| 22, // 11: google.cloud.discoveryengine.v1.SearchResponse.facets:type_name -> google.cloud.discoveryengine.v1.SearchResponse.Facet |
| 23, // 12: google.cloud.discoveryengine.v1.SearchResponse.summary:type_name -> google.cloud.discoveryengine.v1.SearchResponse.Summary |
| 24, // 13: google.cloud.discoveryengine.v1.SearchResponse.query_expansion_info:type_name -> google.cloud.discoveryengine.v1.SearchResponse.QueryExpansionInfo |
| 14, // 14: google.cloud.discoveryengine.v1.SearchRequest.FacetSpec.facet_key:type_name -> google.cloud.discoveryengine.v1.SearchRequest.FacetSpec.FacetKey |
| 15, // 15: google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.condition_boost_specs:type_name -> google.cloud.discoveryengine.v1.SearchRequest.BoostSpec.ConditionBoostSpec |
| 0, // 16: google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec.condition:type_name -> google.cloud.discoveryengine.v1.SearchRequest.QueryExpansionSpec.Condition |
| 1, // 17: google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec.mode:type_name -> google.cloud.discoveryengine.v1.SearchRequest.SpellCorrectionSpec.Mode |
| 16, // 18: google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.snippet_spec:type_name -> google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SnippetSpec |
| 17, // 19: google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.summary_spec:type_name -> google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec |
| 18, // 20: google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.extractive_content_spec:type_name -> google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.ExtractiveContentSpec |
| 34, // 21: google.cloud.discoveryengine.v1.SearchRequest.ParamsEntry.value:type_name -> google.protobuf.Value |
| 35, // 22: google.cloud.discoveryengine.v1.SearchRequest.FacetSpec.FacetKey.intervals:type_name -> google.cloud.discoveryengine.v1.Interval |
| 19, // 23: google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.model_prompt_spec:type_name -> google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.ModelPromptSpec |
| 20, // 24: google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.model_spec:type_name -> google.cloud.discoveryengine.v1.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec |
| 36, // 25: google.cloud.discoveryengine.v1.SearchResponse.SearchResult.document:type_name -> google.cloud.discoveryengine.v1.Document |
| 25, // 26: google.cloud.discoveryengine.v1.SearchResponse.Facet.values:type_name -> google.cloud.discoveryengine.v1.SearchResponse.Facet.FacetValue |
| 2, // 27: google.cloud.discoveryengine.v1.SearchResponse.Summary.summary_skipped_reasons:type_name -> google.cloud.discoveryengine.v1.SearchResponse.Summary.SummarySkippedReason |
| 26, // 28: google.cloud.discoveryengine.v1.SearchResponse.Summary.safety_attributes:type_name -> google.cloud.discoveryengine.v1.SearchResponse.Summary.SafetyAttributes |
| 31, // 29: google.cloud.discoveryengine.v1.SearchResponse.Summary.summary_with_metadata:type_name -> google.cloud.discoveryengine.v1.SearchResponse.Summary.SummaryWithMetadata |
| 35, // 30: google.cloud.discoveryengine.v1.SearchResponse.Facet.FacetValue.interval:type_name -> google.cloud.discoveryengine.v1.Interval |
| 28, // 31: google.cloud.discoveryengine.v1.SearchResponse.Summary.CitationMetadata.citations:type_name -> google.cloud.discoveryengine.v1.SearchResponse.Summary.Citation |
| 29, // 32: google.cloud.discoveryengine.v1.SearchResponse.Summary.Citation.sources:type_name -> google.cloud.discoveryengine.v1.SearchResponse.Summary.CitationSource |
| 32, // 33: google.cloud.discoveryengine.v1.SearchResponse.Summary.Reference.chunk_contents:type_name -> google.cloud.discoveryengine.v1.SearchResponse.Summary.Reference.ChunkContent |
| 27, // 34: google.cloud.discoveryengine.v1.SearchResponse.Summary.SummaryWithMetadata.citation_metadata:type_name -> google.cloud.discoveryengine.v1.SearchResponse.Summary.CitationMetadata |
| 30, // 35: google.cloud.discoveryengine.v1.SearchResponse.Summary.SummaryWithMetadata.references:type_name -> google.cloud.discoveryengine.v1.SearchResponse.Summary.Reference |
| 3, // 36: google.cloud.discoveryengine.v1.SearchService.Search:input_type -> google.cloud.discoveryengine.v1.SearchRequest |
| 4, // 37: google.cloud.discoveryengine.v1.SearchService.Search:output_type -> google.cloud.discoveryengine.v1.SearchResponse |
| 37, // [37:38] is the sub-list for method output_type |
| 36, // [36:37] is the sub-list for method input_type |
| 36, // [36:36] is the sub-list for extension type_name |
| 36, // [36:36] is the sub-list for extension extendee |
| 0, // [0:36] is the sub-list for field type_name |
| } |
| |
| func init() { file_google_cloud_discoveryengine_v1_search_service_proto_init() } |
| func file_google_cloud_discoveryengine_v1_search_service_proto_init() { |
| if File_google_cloud_discoveryengine_v1_search_service_proto != nil { |
| return |
| } |
| file_google_cloud_discoveryengine_v1_common_proto_init() |
| file_google_cloud_discoveryengine_v1_document_proto_init() |
| if !protoimpl.UnsafeEnabled { |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[0].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_discoveryengine_v1_search_service_proto_msgTypes[1].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_discoveryengine_v1_search_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchRequest_ImageQuery); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchRequest_DataStoreSpec); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchRequest_FacetSpec); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchRequest_BoostSpec); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchRequest_QueryExpansionSpec); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchRequest_SpellCorrectionSpec); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchRequest_ContentSearchSpec); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchRequest_FacetSpec_FacetKey); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchRequest_BoostSpec_ConditionBoostSpec); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchRequest_ContentSearchSpec_SnippetSpec); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchRequest_ContentSearchSpec_SummarySpec); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchRequest_ContentSearchSpec_ExtractiveContentSpec); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchRequest_ContentSearchSpec_SummarySpec_ModelPromptSpec); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchRequest_ContentSearchSpec_SummarySpec_ModelSpec); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchResponse_SearchResult); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchResponse_Facet); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchResponse_Summary); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchResponse_QueryExpansionInfo); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchResponse_Facet_FacetValue); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchResponse_Summary_SafetyAttributes); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchResponse_Summary_CitationMetadata); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchResponse_Summary_Citation); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchResponse_Summary_CitationSource); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchResponse_Summary_Reference); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchResponse_Summary_SummaryWithMetadata); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SearchResponse_Summary_Reference_ChunkContent); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[2].OneofWrappers = []interface{}{ |
| (*SearchRequest_ImageQuery_ImageBytes)(nil), |
| } |
| file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes[22].OneofWrappers = []interface{}{ |
| (*SearchResponse_Facet_FacetValue_Value)(nil), |
| (*SearchResponse_Facet_FacetValue_Interval)(nil), |
| } |
| type x struct{} |
| out := protoimpl.TypeBuilder{ |
| File: protoimpl.DescBuilder{ |
| GoPackagePath: reflect.TypeOf(x{}).PkgPath(), |
| RawDescriptor: file_google_cloud_discoveryengine_v1_search_service_proto_rawDesc, |
| NumEnums: 3, |
| NumMessages: 30, |
| NumExtensions: 0, |
| NumServices: 1, |
| }, |
| GoTypes: file_google_cloud_discoveryengine_v1_search_service_proto_goTypes, |
| DependencyIndexes: file_google_cloud_discoveryengine_v1_search_service_proto_depIdxs, |
| EnumInfos: file_google_cloud_discoveryengine_v1_search_service_proto_enumTypes, |
| MessageInfos: file_google_cloud_discoveryengine_v1_search_service_proto_msgTypes, |
| }.Build() |
| File_google_cloud_discoveryengine_v1_search_service_proto = out.File |
| file_google_cloud_discoveryengine_v1_search_service_proto_rawDesc = nil |
| file_google_cloud_discoveryengine_v1_search_service_proto_goTypes = nil |
| file_google_cloud_discoveryengine_v1_search_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 |
| |
| // SearchServiceClient is the client API for SearchService service. |
| // |
| // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. |
| type SearchServiceClient interface { |
| // Performs a search. |
| Search(ctx context.Context, in *SearchRequest, opts ...grpc.CallOption) (*SearchResponse, error) |
| } |
| |
| type searchServiceClient struct { |
| cc grpc.ClientConnInterface |
| } |
| |
| func NewSearchServiceClient(cc grpc.ClientConnInterface) SearchServiceClient { |
| return &searchServiceClient{cc} |
| } |
| |
| func (c *searchServiceClient) Search(ctx context.Context, in *SearchRequest, opts ...grpc.CallOption) (*SearchResponse, error) { |
| out := new(SearchResponse) |
| err := c.cc.Invoke(ctx, "/google.cloud.discoveryengine.v1.SearchService/Search", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| // SearchServiceServer is the server API for SearchService service. |
| type SearchServiceServer interface { |
| // Performs a search. |
| Search(context.Context, *SearchRequest) (*SearchResponse, error) |
| } |
| |
| // UnimplementedSearchServiceServer can be embedded to have forward compatible implementations. |
| type UnimplementedSearchServiceServer struct { |
| } |
| |
| func (*UnimplementedSearchServiceServer) Search(context.Context, *SearchRequest) (*SearchResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method Search not implemented") |
| } |
| |
| func RegisterSearchServiceServer(s *grpc.Server, srv SearchServiceServer) { |
| s.RegisterService(&_SearchService_serviceDesc, srv) |
| } |
| |
| func _SearchService_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.(SearchServiceServer).Search(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.cloud.discoveryengine.v1.SearchService/Search", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(SearchServiceServer).Search(ctx, req.(*SearchRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| var _SearchService_serviceDesc = grpc.ServiceDesc{ |
| ServiceName: "google.cloud.discoveryengine.v1.SearchService", |
| HandlerType: (*SearchServiceServer)(nil), |
| Methods: []grpc.MethodDesc{ |
| { |
| MethodName: "Search", |
| Handler: _SearchService_Search_Handler, |
| }, |
| }, |
| Streams: []grpc.StreamDesc{}, |
| Metadata: "google/cloud/discoveryengine/v1/search_service.proto", |
| } |